由于使用Xcode自带的svn管理碰到很多问题,搞得头昏脑胀,找资料时看到小码哥这方面的视频,看完就开始折腾了。
准备:1、远程仓库地址及授权账号(用户名和密码)
2、一份项目代码,之所以要有这份代码,是因为远程仓库里没有这份代码,必须提交一份到远程仓库
开始:1、打开命令行,先检查本机svn安装情况
2、有svn ,打开~.subversion/config文件,修改文件,要求过滤掉Pods和Podfile.lock;搜 svn ignores;
3、import 这份代码 to 远程仓库,根据提示依次输入本机密码,服务器端给你账号密码,用浏览器打开远程仓库,看代码是否上次成功;
4、从远程仓库check out代码到本地,定位到check out下来的项目代码目录,使用 pod install 编译Podfile文件,命令行提示完成后,发现缺少Podfile.lock文件,编译这份代码,果然报了几个错误,怀疑是不是cocoaspod出错了,不生成Podfile.lock文件,我甚至怀疑 后缀名.xcworkspace文件都不是pod生成的,而是从远程仓库check out下来的那个文件;
5、验证猜想,新建一个项目,往里加入Pod file文件,编译,发现果然猜想是对的,pod出问题了;
6、pod --version查看pod版本号,提示这个命令有问题,又去pod官网看最新的版本号和本机安装的版本差多少,又去搜“pod 无法生成.xcworkspace”,看到有人碰到和我类似的问题,里面建议重新安装pod,但又涉及到ruby版本,查看ruby,又涉及到gem,ruby和gem相关的东西,安装位置,使用的版本,用gem安装的包等等,本来想查看使用gem安装的包的情况,想找到它们所在的目录,实在没找到,放弃了,咬牙重新安装pod,要是出问题了大不了重来
7、重新pod install 那份check out下来的代码,这下生成了Podfile.lock文件,打开项目重新编译,发现只有一个问题,“ld:library not found for -lCocoaLumberjack”,显示找不到这个库,搜这个问题,一顿排查出错的可能地方,没找到原因;又去Pods目录下找,发现果然没有这个库,又去原始代码下面找,却有这个库,比对两处的Podfile文件,内容一致,怀疑又是pod的版本不同引起的问题,又去前面的测试项目里进行测试,一样的Podfile文件编译后的结果怎么样,结果证明,在新版本的pod编译下,都缺少那个库,原始项目里使用的是老版本的pod生成的目录下有这个库,怀疑Podfile里某个库隐式调用了那个缺失的库,老版本的pod就就把它download下来了,而新版本pod没有这样做,那只好修改Podfile文件,添加那个缺失的库,让pod知道要下载那个库,重新build项目,完美通过build,总算可以舒口气了。
更新于2017-05-17
参考资料:
1、
2、