使用 Cocoapods 集成框架 Operation not permitted - /usr/bin/xcodeproj,以及项目出现 Invalid bitcode signature 编译错误
这个错误纠结了比较长的时间,说下解决过程。首先说明一下我的开发环境-Xcode 8.3,Mac OS 10.12.4。
首先说一下 利用 ‘sudo gem install cocoapods’ 的时候出现
Operation not permitted - /usr/bin/xcodeproj
错误- 经过网上搜索有如下方法,但是用这个方法,我这边每回重启机器,cocoapods 会出现丢失需要重新安装的情况,而且这个修复方法一般 cocoapods 还是0.3X 版本,现在都是1.2.1,应该时间比较老
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:$HOME/Software/ruby/bin
$ pod --version - 这个错误应该主要是因为 Mac OS 在 10.11 系统上已经启用无根的安装,所以无法在这个目录下面安装
- 解决办法就是更换安装目录,使用命令‘sudo gem install -n /usr/local/bin cocoapods’
- 最后查看一下 ‘cocoapods –version’ 查看是否安装或者更新成功
- 经过网上搜索有如下方法,但是用这个方法,我这边每回重启机器,cocoapods 会出现丢失需要重新安装的情况,而且这个修复方法一般 cocoapods 还是0.3X 版本,现在都是1.2.1,应该时间比较老
‘Invalid bitcode signature’ 这个错误
- 第二个问题确实比较棘手,这个问题之所以出现,是因为先出现了
Library not found -lXXXX
(第三方库) 此类的问题,经过cocoapods 的官方 Troubleshooting 中关于-lPod 找不到的解决办法,在 ‘Building -> Scheme -> Edite Scheme -> Building’ 中加入第三方库的编译。之后就出现了‘Invalid bitcode signature’ 这个错误 - 然后就开始漫长的修复过程,其中包括了清理
DeriveData
、删除 Pods 重新安装、查看 Pods 中各个第三方库的 Bitcode 成分,都不见效 - 最后的解决办法,首先把项目还原到
Library not found -lXXXX
这一步,然后将 ‘Pods -> Build Setting -> Architectures -> Build Active Architecture Only’ 中每一项都改为‘No’,并且,吧‘Build Options -> Enable Bitcode’ 设置为 ‘No’,最后清理需要清理的东西,问题得到解决。
- 第二个问题确实比较棘手,这个问题之所以出现,是因为先出现了
初步断定因为在‘Scheme’中添加了对含有第三方库的 bitcode 编译造成的这个编译问题,具体是由 Xcode、MacOS、cocoapods 版本影响,原理还需要进一步研究,今天先提供一种解决办法供大家尝试。