iOS开发提效cocoapods插件cocoapods-util

这篇具有很好参考价值的文章主要介绍了iOS开发提效cocoapods插件cocoapods-util。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

cocoapods-util介绍

cocoapods-util是一个iOS开发提效的cocoapods插件。

取名util的原因是我想做一个通用的插件,把一些iOS中常用的命令或问题整理起来。

插件中除了package命令是根据cocoapods-packager插件做了修改而来,其余命令都是属于自己总结开发场景下的需求实现的,希望对各位iOSer有所帮助。

目前已支持功能有:

  1. pod repo push命令优化,解决push私有库慢、验证时间长易失败的问题
  2. 查看Pods组件安装列表(详细情况)以及各pod组件间的依赖关系
  3. 根据podspec文件打包生成二进制(.a、.framework、.xcframework)
  4. 把现有framework生成xcframework
  5. 二进制源码链接调试
  6. 去除project.pbxproj文件重复引用

好了,话不多说,看一下插件怎么安装使用吧。

安装

$ gem install cocoapods-util

使用介绍

通过此命令查看util插件支持的所有功能

$ pod util --help

iOS开发提效cocoapods插件cocoapods-util

命令介绍

1. repo push

介绍

推送私有pod仓库的命令,可以跳过验证、跳过编译过程,用于快速发布私有pod。

  • 可以通过添加--skip-validate的选项跳过验证步骤。
  • 可以通过添加--skip-build的选项跳过编译,但是会验证tag,需要确保tag已存在。
$ pod util repo push --help

iOS开发提效cocoapods插件cocoapods-util

该命令是一个提效命令,在推送自己私有仓库的时候可以通过设置--skip-validate选项跳过验证直接推送到私有仓库。

插件只是在原来的命令基础上扩展了两个参数,执行命令的时候如果不配置这两个参数,那么和原命令完全一样。

示例

只需要在正常执行pod repo push命令的时修改成pod util repo push。

$ pod util repo push [yourSpecs] [xxx.podspec] --skip-validate

2. install list

介绍

查看Pods安装的列表(详细情况)

  • 可以省去开发者自己去阅读Podfile.lock文件的时间,直接友好的提示
  • 可以清晰的看出引用的组件个数、组件依赖情况、组件被依赖的情况、组件分支tag信息、仓库地址等有效信息
  • 建议在Podfile文件所在目录执行此命令
$ pod util install list --help

iOS开发提效cocoapods插件cocoapods-util

示例

$ pod util install list --showmore

iOS开发提效cocoapods插件cocoapods-util

Tips:我在最新的插件版本中重新实现了此命令,使用cocoapods中Installer类提供的依赖解析方法来解析组件的依赖,实现更简单,可以递归的查找到所有依赖的组件。

 3. xcframework

介绍

可以把现有的framework生成xcframework。

iOS开发提效cocoapods插件cocoapods-util

该命令可以分析出是某个平台的framework(如ios、osx、watchos),直接在framework同级目录生成xcframework。

根据不同平台的framework,分别提取真机、模拟器对应架构的二进制,最终再组合成xcframework文件。

示例

把现有的Alamofire.framework生成Alamofire.xcframework

$ pod util xcframework Alamofire.framework --force 

iOS开发提效cocoapods插件cocoapods-util

 iOS开发提效cocoapods插件cocoapods-util

4. package

介绍

通过podspec文件生成library、framework、xcframework。

  • 支持swift和混编
  • 支持自定义配置dependency(如配置某个组件为branch依赖)
  • 支持排除模拟器
  • 支持多平台(ios、osx、watchos、tvos)
  • 支持自定义设置工程的build settings(如:排除ios模拟器64位架构、设置支持的架构等)
  • 支持设置modular_headers
$ pod util package --help

iOS开发提效cocoapods插件cocoapods-util

示例

生成xcfrmework、framework或library

克隆AFNetworking的源码到本地,进入AFNetworking源码的根目录下,执行下面的命令

$ pod util package AFNetworking.podspec --force --local --xcframework

$ pod util package AFNetworking.podspec --force --local --framework

$ pod util package AFNetworking.podspec --force --local --library

iOS开发提效cocoapods插件cocoapods-util

排除模拟器

如果你不需要编译模拟器架构,可以添加--exclude-sim

$ pod util package AFNetworking.podspec --force --local --xcframework --exclude-sim

平台设置

如果你只需要编译ios架构下的xcframework,可以添加--platforms=ios

$ pod util package AFNetworking.podspec --force --local --xcframework --exclude-sim --platforms=ios

build settings配置

如果你想要做一些build settings特殊配置,可以添加 --build-settings,如设置编译选项排除模拟器arm64架构。理论上来讲,可以像直接操作工程一样,灵活的配置build settings

  • 如设置排除arm64位架构
$ --build-settings='{"EXCLUDED_ARCHS[sdk=iphonesimulator*]":"arm64"}'
  • 设置编译swift生成swiftinterface文件
$ -build-settings='{"BUILD_LIBRARY_FOR_DISTRIBUTION":"YES"}'
  • 或者你想设置多个编译选项
$ -build-settings='{"EXCLUDED_ARCHS[sdk=iphonesimulator*]":"arm64","BUILD_LIBRARY_FOR_DISTRIBUTION":"YES","VALID_ARCHS":"arm64"}'

自定义dependencies

如果你依赖的组件并没有发布到私有仓库,只是分支依赖。 如果你依赖的组件和官方源有冲突,你需要修改指定source源,这时候你可以通过配置--dependency-config={}选项指定仓库分支、tag或指定source源。

$ --dependency-config='{"PodA":{"git":"xxx","branch":"xxx"},"PodB":{"source":"xxx"}}'

5. linksource

介绍

源码二进制链接功能。

$ pod util linksource --help

iOS开发提效cocoapods插件cocoapods-util

这个命令实现比较简单,但是也不太实用。简单来说就是源码路径在多台电脑上很难统一,还会有权限问题。

6. uniq

介绍

对xcodeproj --> project.pbxproj文件做重复引用的去重。

该命令的来源是我发现工程的.pbxproj文件变得非常大,最大时发现有10M的大小,在执行pod的更新时会卡在install的执行过程User Project Integration这一步很长的时间。

我检查了一下这个工程文件,发现这里面有许多重复的引用,这是由于项目长期merge代码的过程中没有很好的解决冲突,保留了相同的引用,所以才有了这个命令。

我尝试对pbxproj文件做了去重,文件大小从10M减小到了1.7M,再执行pod install安装时就不会再卡在User Project Integration这一步骤了。

$ pod util uniq --help

iOS开发提效cocoapods插件cocoapods-util

示例

$ pod util uniq project.xcodeproj

反馈

如果使用中有什么问题,可以提交评论,也可以去我的项目地址中去提交issue,我看到后会尽快回复。文章来源地址https://www.toymoban.com/news/detail-466879.html

到了这里,关于iOS开发提效cocoapods插件cocoapods-util的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IOS之 安装cocoapods问题

    1,安装cocoapods sudo gem install cocoapods 问题:ERROR:  Could not find a valid gem \\\'cocoapods\\\' (= 0) in any repository   2,升级gem 移除旧源,gem sources --remove https://gems.ruby-china.org/  添加新源,gem sources -a https://gems.ruby-china.com 检查新源,gem sources -l 问题:报错ssl证书错误 Error fetching https://gems

    2024年02月05日
    浏览(40)
  • 【iOS】Cocoapods的安装以及使用

    最近笔者在仿写天气预报App时用到了api调用数据,一般的基本数据类型我们用Xcode中自带的框架就可以转换得到。但是在和风天气api中的图标的格式为 svg 格式。 似乎iOS13之后Xcode中可以直接使用svg格式的图片,但笔者没有查到对应的资料。笔者就调用了第三方库来使用svg格式

    2024年02月15日
    浏览(41)
  • 【iOS逆向与安全】iOS插件开发入门

    前言 经过之前的学习,相信你已经能熟练的使用Frida-trace、IDA Pro等逆向工具。不过,仅仅到这肯定是不够的。接下来,学会把你逆向的结果打包成插件并运行,那iOS逆向,你也就真正的入门了。 一、目标 把逆向的结果制作成插件并运行 二、工具 mac系统 Xcode:插件开发工具

    2024年02月09日
    浏览(67)
  • 【iOS逆向与安全】iOS插件开发光速入门

    经过之前的学习,相信你已经能熟练的使用Frida-trace、IDA Pro等逆向工具。不过,仅仅到这肯定是不够的。接下来,学会把你逆向的结果打包成插件并运行,那iOS逆向,你也就真正的入门了。 把逆向的结果制作成插件并运行 mac系统 Xcode:插件开发工具 已越狱iOS设备:运行deb插

    2024年02月06日
    浏览(42)
  • MAC机器Unity接入iOS SDK安装cocoapods全攻略

    要在Unity3D里面接入iOS SDK,因此又在新mac上配置了一道环境。机器是Mac mini,芯片是M2,OS为Sonoma 14.2。 若Unity3D工程里面有EDM4U插件,且配置了Dependencies文件(文件内配置了iosPod),那么在导出XCode的工程时,会自动安装CocoaPods,但多半会失败。失败原因多是机器自带的ruby版本

    2024年04月29日
    浏览(42)
  • uniapp ios原生插件开发之module

    在文章《uniapp ios原生插件开发 (framework,cocoapods)》中我们已经介绍了Module 类型的插件及其创建过程, 却没有深入的介绍Module类型插件开发过程中所涉及到的技术点。 本文呢就将重点放在对这些技术点的使用上进行详解,算是是对上篇文章的一个补充与扩展。 在文章开始之前

    2024年02月13日
    浏览(36)
  • 【iOS逆向与安全】sms短信转发插件开发

    经过之前的分享,相信大家已经掌握了用户级的插件开发。勤奋好学的你是否对系统级的插件也有着浓厚的性趣,本篇文章将和大家一起学习如何分析并编写一款系统级的插件。 一步步分析并编写一个短信自动转发的deb插件 mac系统 已越狱iOS设备:脱壳及frida调试 IDA Pro:静态

    2024年02月10日
    浏览(43)
  • 终极解决Flutter项目运行ios项目报错Without CocoaPods, plugins will not work on iOS or macOS.

    最近在开发Flutter项目,运行ios环境的时候报错没有CocoaPods,安卓环境可以正常运行,当时一脸懵逼,网上搜索了一下,有给我讲原理的,还有让我安装这插件那插件的,最终把电脑搞得卡死,还没有解决我的问题,其实很多人和我一样只想解决问题,而不是废话一大堆的文章

    2024年01月22日
    浏览(55)
  • iOS pod install失败,提示CocoaPods could not find compatible versions for pod “***“

    1.pod install失败 在执行 pod install 的时候会失败,提示如下: 按提示执行 pod install --repo-update 之后,还是失败,提示: 造成报错的原因有两种: 一、两者的都是由于本地索引库没有更新到最新,找不到对应版本的spec文件。 二、第三方库依赖的系统版本号,高于项目的最低支

    2024年02月09日
    浏览(39)
  • XZ_iOS 之 M1 M2 M3的M系列芯片的Mac苹果电脑安装cocoapods

    安装的前提,应用程序-终端-右键-显示简介-勾选 使用Rosetta打开,如下图,然后重启终端 安装的顺序如下:Homebrew-rvm-ruby-cocoapods 1、安装Homebrew 安装的时候报了以下错误,然后我打开了VPN,就很顺滑的安装了 fatal: unable to access \\\'https://github.com/Homebrew/brew/\\\': Failed to connect to gith

    2024年01月18日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包