在XCode 8 / macOS Sierra上构建Objective C应用程序时出现CodeSign错误

时间:2016-10-05 20:56:12

标签: xcode8 codesign macos-sierra

我维护了一个非常古老的Objective C,iOS应用程序。切换到Xcode 8 + Sierra后,我开始收到CodeSign错误:

  

XXXXX.app:资源分叉,Finder信息或类似的碎屑没有   允许命令/ usr / bin / codesign失败,退出代码为1

我已经浏览了文档和其他问题,并且我已经了解 { result: 'success', code: 200, data:{ ReceiptId: null, ReferenceNum: null, ResponseCode: null, ISO: null, AuthCode: null, TransTime: null, TransDate: null, TransType: null, Complete: false, Message: 'The transaction was not sent to the host because of a duplicate order id', TransAmount: null, CardType: null, TransID: null, TimedOut: false, BankTotals: null, Ticket: null, IsVisaDebit: false } } 解决方案。我还尝试使用xattr -rc .查找包含属性的单个文件。不再有ls -alR@属性的文件,加上com.apple.FinderInfo无论如何都会清除它们。

我使用El Capitan和Xcode 8设置了一个虚拟机,我可以构建并在那里签名没有问题,所以这是Sierra特有的。

我尝试过的事情:

  1. xattr -rc .ls -alR@等等。
  2. 重新启动
  3. 深层清理+杀死DerivedData
  4. 确保代码不在iCloud Drive中
  5. 同样的Xcode能够构建和签署我正在开发的更新的Swift应用程序。

    如何找到适用于我的错误案例?它是一个"资源分叉"," Finder信息",或者"类似的碎屑"?

1 个答案:

答案 0 :(得分:0)

  1. 在项目的根文件夹上运行find . -type f -name '*.png' -exec xattr -c {} \;
  2. 转到Finder,按cmd+shift+g,导航至~/Library/Developer/Xcode/DerivedData/,然后删除其中的所有文件夹。
  3. 在Xcode中,按cmd+shift+k清除项目。
  4. 你应该很好地重建并再次运行你的应用程序。

    此问题通常是由以前使用Adobe Photoshop编辑的图像文件引起的。