我最近更新到Xcode 6.3,开始有一些奇怪的代码签名问题。偶尔Xcode会开始抱怨代码签名问题。Acd也会有这样的问题:
签名格式无效或不受支持.命令/usr/bin/codesign失败,退出代码为% 1
或
.命令/usr/bin/codesign失败,退出代码为11
还找不到模式,但看起来像是Xcode代码符号的问题,因为有时在清理和重新启动Xcode后它会工作。
我没有改变任何关于代码签名的设置。项目结构相当复杂,它引用了项目和pod。
任何帮助感激不尽。
更新
删除派生数据或重新启动Xcode对我没有帮助。但如果我删除项目并从git下载新的,它确实有效。这删除了未提交到git的Xcode文件。
再次清理后,它已经停止工作。在控制台日志中,我得到了这样的东西:
codesign[4111]:卸载捆绑包CFBundle 0x 7 fb 44 a40 adc 0 <(null)>(framework,not loaded)时出现内部错误
更新
在twitter上发现有人有同样的问题。看起来这个问题是由代码签名中的--deep选项引起的。
https://github.com/atom/atom-shell/issues/1396
**解决方案是不使用--deep对应用程序和框架进行代码签名。**而是单独对每个框架进行代码签名。
2条答案
按热度按时间dohp0rv51#
在最新的Xcode更新后,我也遇到了这种情况。但是Xcode已经建议我更新我的项目设置有一段时间了,我只是没有抽出时间来。你提供的链接很好地解释了这一点。
它实际上会在导航器中显示为一个问题,当你选择这个问题时,Xcode会自动为你修复它。你只需要自己从构建设置中删除--deep选项。
这在我的两个第三方框架Sparkle和Syphon上都有效。
5rgfhyps2#
问题是由--deep代码签名选项和授权引起的。
为了解决这个问题,我不得不手动对框架进行代码签名。这需要添加新的运行脚本构建阶段,并运行类似于以下内容的脚本:
字符串
HEX_IDENTITY可通过使用shell命令获得:
型
这将显示带有十六进制数字的签名标识列表。
将应用程序导出为应用程序后,我使用以下命令验证了代码签名:
型
参考文献: