金融公司的app开发中, 都设计到代码安全的问题. 为了防止代码泄露, 在开发的过程中, 都会杜绝和互联网的链接. 为此, iOS 的开发中, 涉及到 cocoapods 私有库的搭建.
搭建私有库并不困难, 其一 cocoapods 文档足够详细; 其二有很多先例可循, 比如 使用私有cocoapods仓库. 但是作为第一次新手去做, 仍然遇到了一些棘手的问题. 特此记录, 希望能帮助到有同样需求的同学.
1 提示远程仓库分支不存在:fatal: 远程分支 0.1.1 在上游 origin 未发现
-> test (0.1.1)
- WARN | summary: The summary is not meaningful.
- WARN | url: The URL (https://github.com/uniapp10/test) is not reachable.
- ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://github.com/uniapp10/ZDRepo.git /var/folders/w9/g769hqmj30l439w36chmn4_c0000gn/T/d20201115-738-sa8opx --template= --single-branch --depth 1 --branch 0.1.1
正克隆到 '/var/folders/w9/g769hqmj30l439w36chmn4_c0000gn/T/d20201115-738-sa8opx'...
fatal: 远程分支 0.1.1 在上游 origin 未发现
其他人遇到的都是远程仓库没有标签0.1.1
. 自己去检查仓库时, 发现标签已经存在. 并且反复删添了好几遍. 最后发现是podspec 文件有问题
, s.source
中的工程地址一定要正确:
s.source = { :git => 'https://github.com/uniapp10/Repo1.git', :tag => s.version.to_s }
2 存放 spec 的私有仓库没有引用: 您的配置中指定要合并远程的引用 'refs/heads/master',
[!] /usr/local/bin/git -C /Users/highwayliu/.cocoapods/repos/ZDRepo pull
warning: 不建议在没有为偏离分支指定合并策略时执行 pull 操作。 您可以在执行下一次
pull 操作之前执行下面一条命令来抑制本消息:
git config pull.rebase false # 合并(缺省策略)
git config pull.rebase true # 变基
git config pull.ff only # 仅快进
您可以将 "git config" 替换为 "git config --global" 以便为所有仓库设置
缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase,
或者 --ff-only 参数覆盖缺省设置。
您的配置中指定要合并远程的引用 'refs/heads/master',
但是没有获取到这个引用。
这是工程 ZDRepo
项目创建后, 并没有初始化引起的. 拉取工程, 随便创建一个文件, 提交到工程. 然后删除这个文件, 再次提交, 保证存放 spec 的工程是干净的工程. 这是 pod 的要求. 如有其他文件, 会出现下面的问题.
3 repos 目录不干净: [!] The repo ZDRepo at ../../.cocoapods/repos/ZDRepo is not clean
[!] The repo `ZDRepo` at `../../.cocoapods/repos/ZDRepo` is not clean
这是因为存放 spec
的工程目录中存在其他资源或文件. 首先将存放spec
工程进行清理, 其次将本机文件夹 ~/.cocoapods/repos/私有库名
删除, 重新添加本地私有库: pod repo add [name] [url]
. 最后再次推送 spec
文件: pod repo push [repo name] [name.podspec] --verbose --allow-warnings
.
遇到问题, 首先是搜索大法; 遇到新问题, 很可能是自己忽略了某些细节, 需要回头检查并结合提示进行思考. 以上是这次私有库搭建
的两点儿心得.
网友评论