使用 Cocoapods 集成框架 Operation not permitted

来源:互联网 发布:法丽达官网 只有淘宝店 编辑:程序博客网 时间:2024/06/05 14:39

使用 Cocoapods 集成框架 Operation not permitted - /usr/bin/xcodeproj,以及项目出现 Invalid bitcode signature 编译错误

这个错误纠结了比较长的时间,说下解决过程。首先说明一下我的开发环境-Xcode 8.3,Mac OS 10.12.4。

  1. 首先说一下 利用 ‘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’ 查看是否安装或者更新成功
  2. ‘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 版本影响,原理还需要进一步研究,今天先提供一种解决办法供大家尝试。

0 0
原创粉丝点击