一句话总结:你的电脑没有保存你的 SVN 账号密码导致 install 私有库失败
1、问题
无论如何,pod install 私有本地服务库一直失败
报错:不能安装私有库,下载私有库失败信息
2、背景
- 项目使用了 cocoapods 组件化管理
- 项目是通过 SVN 进行版本控制
- 私有库是存放在本地服务器
- 前段时间install 私有库可以
3、再三确认过的事
- 私有库 podspec 文件内容填写完全没有问题
- podfile 中的 pod 私有库使用的是通过指定 svn:路径
- 与服务器库通信完全没问题,项目代码能够通过 Cornerstone 提交及 checkout
- install 其他开源库完全没问题
4、最后原因
- 分析原因:
经上述排查后,觉得可能是通过终端执行 pod install 时候当准备通过本地服务器 库的SVN 路径下载时,因获取不了授权信息,所以被拒绝访问。而能够通过 Cornerstone 软件链接 SVN 是因为软件中缓存有账号密码。 - 执行处理:
- 为了让终端能够在链接SVN库时候再次提示账号密码,我通过在终端 从 SVN 上 checkout 一个项目,在 checkout 命令上加上 --username 参数。
可通过 命令
svn checkout --help
来查看 --username 参数使用
- 此时可能会要求你输入本机开机密码,授权本机keychain 读取权限,如果你允许的话,终端则能够通过 keychain 获取你保存至其中的 SVN 账号密码
- 如果你拒绝上一步读取 keychain 的授权,那么终端还会询问你,让你输入你的 SVN 密码,输入完成后,还会询问你是否允许将该密码不加密保存在 svn config 文件中,因为你已经拒绝通过keychain 获取,所以这里必须填 yes。
- 再次执行 pod install 安装你已更新好的本地库,success~
ps:
- SVN 的库地址不一定都带有 http:\ 的,只要地址能够 checkout 或链接上就没问题(反正我项目的就是没带的)
- 我的 SVN 库地址类似这个 svn:\192.xxx.1.100/xx/xx/xx/xxx
- svn 私有库搭建方式可参考
基于 svn 服务器及 cocoapods-repo-svn 插件进行组件化私有库的创建
利用Cocoapods创建基于SVN的私有库podspec
网友评论