1、创建私有的 pod 仓库,就像 GitHub 这样的仓库一样,大家都把代码托管到这个里面。

- 1、在自己公司的 git 服务器或者其他平台的 git 服务器上创建私有远程仓库,我是用公司的 git 服务器,名字叫 MySpecs ,克隆地址为:https://XXX/XXX/XXX/MySpecs.git

- 2、将私有的远程仓库copy到本地。

pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git

- 3、执行完毕后,在目录:/Users/xx/.cocoapods/repos 下会多出来一个MySpecs文件夹,至此私有的远程仓库部分就完成了。

-注意,这个私有的远程仓库生成之后,只做此一步就好。

 

2、创建私有的 pod 组件库,这里创建一个网络库为例

- 1、打开终端,执行命令来创建一个名为 MyNetworkManager 的Pod库空模板。

pod lib create MyNetworkManager

- 下面是选项的选择

- Pod库空模板就自动创建成功了。

- 2、在公司的 git 服务器上面创建 MyNetworkManager 的 git 远程仓库,克隆地址是:https://XXX/XXX/XXX/MyNetworkManager.git 。

- git 远程仓库这一步大家都很熟悉了,这里要注意的是不要创建 LICENSE 和 README.md 和 .gitignore 文件,不然下面关联远程仓库的时候有问题。

- 在终端 MyNetworkManager 目录下执行下面命令,关联本地仓库到远程仓库,推送已经创建的仓库

git remote add origin https://XXX/XXX/XXXMyNetworkManager.git
git push -u origin master

 - 更换 .gitignore 文件

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

- 提交本次修改。

- 3、删除ReplaceMe文件,将原项目中需要封装文件复制到 MyNetworkManager/MyNetworkManager/Classes中,在拖入到项目里面

- 4、修改 MyNetworkManager.podspec 文件

Pod::Spec.new do |s|
  s.name             = 'MyNetworkManager'
  s.version          = '0.1.0'
  s.summary          = '网络模块'

  s.homepage         = 'https://XXX/XXX/XXX'
  
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'szb' => 'zhongbo.shen@2339.com' }
  s.source           = { :git => 'https://XXX/XXX/XXX/MyNetworkManager.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '8.0'

  s.source_files = 'MyNetworkManager/Classes/**/*'
  
end

- 5、做正常的 git 提交命令了,这里的 tag 版本号要和上面的 s.version 版本号一致

// Example目录下
pod install

// 回到项目根目录下
git add .
git commit -am"此次内容"
git push
git tag 0.1.0
git push origin --tags

- 6、校验 MyNetworkManager.podspec 文件

pod spec lint --allow-warnings

- 检验完成发现没有错误,就说明没有问题。可以进行最后一步了。

3、上传 MyNetworkManager.podspec 文件到我们的私有远程仓库 MySpecs

pod repo push MySpecs MyNetworkManager.podspec --allow-warnings 

- 上面命令对 MyNetworkManager.podspec 文件做了两个操作:一个是将其推送到私有的远程仓库,可以去 公司的 git 上面 MySpecs 仓库中查看;另一个是将其 copy 到私有的本地仓库,这个可以去目录:/Users/xx/.cocoapods/repos/MySpecs 下查看到。

至此私有的 Pod 库也就完成了,可以在终端执行 pod search MyNetworkManager 来查询它,接下来就是在原项目中使用它了。
 
- 这里记录一下上传到 github 的方法
pod trunk push MyNetworkManager.podspec --allow-warnings

 

4、使用私有 pod 库

- 1、在项目里面,自己的 source 源放到 gitHub 源前面。这样避免有相同名字的库名字,会优先拉取自己的私有 pod 库
- 2、公司内部其他成员在使用之前需要执行下面命令,将私有的远程仓库拉到本地,然后就可以正常使用了。

pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git

5、注意问题

- 1、有时候会出现一些莫名其妙的问题,可以先试一下清楚缓存
pod cache clean MyNetworkManager --all

 - 2、.podspec错误 – source_files`模式与任何文件不匹配

- 3、项目添加Cocoapods支持遇到的坑

- 4、添加 frameworks 和

s.frameworks = "MobileCoreServices", "SystemConfiguration"

- libraries 

libz.tbd 写成 z ,规则要去除 lib 和后边的.tbd,配置系统 library 这么简写

s.libraries = "c++", "sqlite3.0", "z"

 -5、 缺少架构 normal i386/normal x86_64

  1. The following build commands failed:
  2. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/Binary/App normal x86_64
  3. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/i386/Binary/App normal i386

解决方法:
方法一:首先要检查source_files 路径有没有配置对,我的是目录分级时由于有一个路径配置跟其他的重复导致此错误。

方法二:然后尝试:
pod lib lint 后添加 --skip-import-validation

pod repo push 也添加--skip-import-validation
但可能不通过

方法三:podspec 文件添加x86_64 i386配置
s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }

 

 -6、arm64错误

The following build commands failed:
        Ld /Users/lhmac/Library/Developer/Xcode/DerivedData/App-boepallfhnkapzdeptgiragrdotp/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/ZFPlayer.build/Objects-normal/arm64/Binary/XXXX normal arm64 (in target 'XXXX' from project 'Pods')

解决方法:

  s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
  s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

 

posted on 2020-09-16 12:02  xiao孛  阅读(1581)  评论(0编辑  收藏  举报