iOS创建私有第三方库

255 阅读3分钟

使用cocoapods安装自己第三方库

准备工作

需要一个好的cocoapods环境,可以参考这个www.jianshu.com/p/ab6411a05… 来配置环境; 其次注册一个github账户

步骤

1. 创建一个spec Repo的私有库和一个存放项目工程文件的远程仓库

specRepo库 image.png

工程文件库

image.png

2. 生成spec Repo,其中包含第三方库的podspec文件,管理pod库

pod repo add MyAppSpec https://github.com/zdh-123/MyAppSpec.git

image.png

这个时候可以去看看在.cocoapods/repods里是否生成了MyAppSpec

image.png

3. 创建三方库的工程文件并上传到远程私有库中

// 创建工程文件的命令
pod lib create MyAppTestKit

有时会因为网络问题,创建出错,我多试几次就可以了 image.png

然后可以在这个路径找到需要进行开发的地方,默认里面有一个replaceMe.m文件,直接删除然后创建自己想要的文件进行开发就可以了

“/Users/zdh/Downloads/我的App/PodProject/MyAppTestKit/MyAppTestKit/Classes”

接下来进行检查创建的工程是否可以使用 先cd到工程的Example文件下然后在pod install,如图

image.png

更改podspec文件,比如我添加AFNetworking的依赖

image.png 验证本地podspec文件的有效性

pod lib lint MyAppTestKit.podspec --allow-warnings

image.png

最后本地项目上传到远程库中

git remote add origin https://github.com/zdh-123/MyAppTestKit.git
//查看当前分支时什么
git branch --show-current
git push -u origin master或者git push -u origin main

image.png

出现了一个密码凭证错误,参考www.cnblogs.com/xuepangpang… 意思是:原先的密码凭证从2021年8月13日开始就不能用了,必须使用个人访问令牌(personal access token),就是把你的密码替换成token! 也就是说,你需要使用 token 来代替密码了。 token 在哪里生成呢? 在github个人设置页面,找到Setting ->选择开发者设置Developer setting -> 选择个人访问令牌Personal access tokens,然后选中生成令牌Generate new token -> 生成令牌Generate token 在上述位置根据提示选项,生成新的 token 之后,再次上传时,在 密码 位置输入上述 token 即可!

image.png 参考blog.csdn.net/qq_35812205… 这里注意在生成token哪里要勾选workdFlow,不然会爆403错误 终于成功了 image.png

可以在github上看到自己的项目了 image.png

接着改下tag

git tag -a 0.1.1 -m "0.1.1"
git push origin 0.1.1

image.png

当然也可以使用Sourcetree来进行可视化的代码管理 第一次提交的时候会跳出弹框让你输入账户密码,和前面操作一样使用token进行验证 image.png

4. 向私有的spec Repo远程仓库提交podspec

pod repo push MyAppSpec MyAppTestKit.podspec --allow-warnings

发现AFNetworking报错,改下MyAppTestKit.podspec,把AFNetworking先注释掉再跑

image.png

image.png

5. 检查和使用自己的三方库

新建一个工程引入cocoapods,
然后在podFile文件下加入
source 'https://github.com/zdh-123/MyAppSpec.git'

pod 'MyAppTestKit'

image.png

image.png

最后pod install image.png

在新工程里看到自己的第三方库被引用 image.png

跑下代码发现出错了 image.png

在网上找了下解决方案 解决方法
Build Setting -> Build Options -> User Script Sandboxing,默认值为 Yes 改为 No 即可。当然也可以在 Build Options 下搜索 ENABLE_USER_SCRIPT_SANDBOXING 直接定位到具体选项。

再跑通过了

image.png

有时候会出现这个错误 image.png

解决方案: 在 podfile 中:在文件末尾添加以下几行。运行后,这将自动将所有 pod 目标更改为 iOS 11。pod install您无需逐一选择每个目标。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = "11.0"
    end
  end
end

然后再跑代码就可以了

到这里就结束了。 工作很久了,本文章只为总结时做记录,无商业作用, 主要参考文章blog.csdn.net/LIUXIAOXIAO…