iOS开发制作pod库 2021-05-09 前进路上 暂无评论 2782 次阅读 本文发布于2021-05-09, 文章内容或资源可能已经失效,仅供参考,谢谢。 在日常的开发过程中总会用到一些第三方的pod库,有提供网络请求的、有提供数据解析的、有UI工具等等库,今天我也来尝试制作一个pod库。经过在网上查询教程,已经成功制作出了pod库,很简单,这里记录一下过程。 # 创建pod仓库 1. 创建一个git仓库如下,仓库名MyPodDemo [![](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.png)](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.png) 2. 在此库中新建一个Xcode项目,添加代码如下,在KKPodTool目录下增加了一个KKUIColorTool类,如图所示 [![](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.1.jpg)](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.1.jpg) 3. 将添加好的代码提交后,在提交点打一个`0.0.1`的tag,并推送标签到远程仓库 # 编辑podspec文件 1.如果电脑上没有安装cocoapods,可以参考[CocoaPods安装](https://zkk.me/0x0034.html "CocoaPods安装")进行安装 2.安装好cocoapods后,来到项目的根目录下 创建podspec文件(这里命名为KKPodTool) ```shell pod spec create KKPodTool ``` 执行完这个命令后,当前目录下会多出一个`KKPodTool.podspec`文件 3.编辑这个spec文件 ```shell vi KKpodTool.podspec ``` 文件内容如下,根据自己项目的情况进行一些修改,有一些不是必填项 ```shell Pod::Spec.new do |spec| spec.name = "KKPodTool" # pod库的版本,对应于pod仓库的tag spec.version = "0.0.1" spec.summary = "summary:KKPodTool is my common tools." spec.description = <<-DESC description:KKPodTool is my common tools. DESC spec.homepage = "https://gitee.com/deepwidth/my-pod-demo" spec.license = { :type => "MIT", :file => "FILE_LICENSE" } # pod库作者信息 spec.author = { "zhangkangkang" => "zhang.kangkang@outlook.com" } # spec.platform = :ios spec.platform = :ios, "10.0" # When using multiple platforms # spec.ios.deployment_target = "10.0" # spec.osx.deployment_target = "10.7" # spec.watchos.deployment_target = "2.0" # spec.tvos.deployment_target = "9.0" # pod库代码的下载地址 spec.source = { :git => "https://gitee.com/deepwidth/my-pod-demo", :tag => "#{spec.version}" } # pod库代码的路径 spec.source_files = "KKPodTool/**/*.{h,m}" spec.exclude_files = "" # # A list of resources included with the Pod. These are copied into the # target bundle with a build phase script. Anything else will be cleaned. # You can preserve files from being cleaned, please don't preserve # non-essential files like tests, examples and documentation. # # spec.resource = "icon.png" # spec.resources = "Resources/*.png" # spec.preserve_paths = "FilesToSave", "MoreFilesToSave" # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # # # Link your library with frameworks, or libraries. Libraries do not include # the lib prefix of their name. # spec.framework = "UIKit" # spec.frameworks = "SomeFramework", "AnotherFramework" # spec.library = "iconv" # spec.libraries = "iconv", "xml2" # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # # 在ARC环境下工作 spec.requires_arc = true # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" } # 依赖的其他pod库 # spec.dependency "JSONKit", "~> 1.4" end ``` 4.编辑完podsepc文件后需要验证一下是否正确 ```shell pod spec lint KKPodTool.podspec ``` 如果有错误,会有error的提示,同时也可能会有很多警告(warning)。如果有error的话需要根据报错去解决error,如果只是有warning的话可以不进行修改,也会发布成功。 如果验证时需要忽视warning的话需要在命令后面加个参数`--allow-warnings`,如下 ```shell pod spec lint KKPodTool.podspec --allow-warnings ``` 5.验证结果如下看到一行绿色的字表示验证成功,可以发布 [![验证成功](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.3.jpg "验证成功")](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-1.3.jpg "验证成功") # 发布pod库 1. 发布pod库前需要注册账户 ```shell pod trunk register "email@example.com" username ``` 执行这个注册命令会有一个邮件发到你填写的邮箱中,点击邮件中的链接进行验证。 2. 验证通过之后就可以进行发布了 ```shell pod trunk push KKPodTool.podspec ``` 如果你的podspec文件有警告,可以在发布命令后面加上允许包含警告的参数,如下 ```shell pod trunk push KKPodTool.podspec --allow-warnings ``` 看到如下的输出则表示发布成功 [![发布成功](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-6.jpg "发布成功")](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-6.jpg "发布成功") # 遇到的问题 1. 发布完成后不能立马搜到? pod库发布成功后使用命令搜索 ```shell pod search KKPodTool ``` 搜索结果中搜不到刚刚发布成功的pod库,需要过一段时间才能搜到,尝试了网上说的几个方法都无效 2. 验证podspec文件时遇到错误如下 [![错误](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-7.jpg "错误")](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-7.jpghttp:// "错误") 报错内容: ```shell -ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devices xcrun: error: unable to find utility "simctl", not a developer tool or in PATH ``` 我的解决方法是,打开Xcode->Preferences->Locations,设置一下`Command Line Tools` [![解决问题](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-8.jpg "解决问题")](https://assets.wuwz.net/distribute/web/zkkme/img/003c/003c-8.jpg "解决问题") 3. 在制作以及使用pod库的过程中还会遇到很多其他问题,需要根据错误类型寻找解决方法。 ------------ > REFERENCE - [iOS制作cocoapods公共库以及私有库](https://juejin.cn/post/6844903871718883342 "iOS制作cocoapods公共库以及私有库") - [Swift.org issue with open source swift project. Error: xcrun: error: unable to find utility “launch-with-toolchain”, not a developer tool or in PATH](https://stackoverflow.com/questions/34089153/swift-org-issue-with-open-source-swift-project-error-xcrun-error-unable-to-f "Swift.org issue with open source swift project. Error: xcrun: error: unable to find utility “launch-with-toolchain”, not a developer tool or in PATH") 标签: iOS开发 如果您对此页面有任何问题或建议,请在本站留言,或联系邮箱me[at]zkk.me本网站部分内容转载自其他网站,如有侵权,请联系博主