10

我正在尝试使用格式 v2 在 osx mavericks 10.9.5 上对应用程序包进行代码签名。在之前的测试中,10.9.5 (13F12) 上的签名一切顺利,所有框架都可以正确签名。现在,在 13F34 上,无法再签署框架。当我尝试使用以下命令签署第一个框架时:

codesign -f -v -s "Developer ID Application: MY AG" "My.app/Contents/Frameworks/4DJavaScript.framework"  

然后发生错误:

My.app/Contents/Frameworks/4DJavaScript.framework: bundle format is ambiguous (could be app or framework)  

当我尝试对框架的唯一版本 (A) 进行代码签名时,签名成功,但在签署主应用程序时,框架上的错误再次出现。在查看框架的 info.plist 文件时,有(在我的意义上)类型集的正确条目:

Bundle OS Type code FMWK  

关于如何在 10.9.5-13F34 上正确编码签名框架的任何建议?
谢谢,彼得

4

4 回答 4

11

你的回答对我不起作用,所以我发布了我的。

如果您之前使用cp -r命令复制了框架,您将遇到此问题。cp -a没有出现这个问题。这是因为在这两个选项中解析符号链接的方式不同。

于 2017-11-01T19:33:53.613 回答
8

在这个问题上发布赏金后,我立即想通了。直接签署框架的当前版本就可以了:

codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current
于 2014-10-04T17:09:16.363 回答
2

我正在使用电子打包程序,需要使用 --no-deref-symlinks 标志和 bam 为我工作

于 2019-04-12T18:57:36.263 回答
1

我遇到了同样的问题。就我而言,问题是我尝试使用的 .app 文件codesign被存储在一个保管箱文件夹中。

显然,dropbox 默认解析符号链接,即符号链接完全被它们指向的数据替换。在这里阅读。

Dropbox 解析符号链接后,该codesign命令无法识别捆绑包的格式。

解决方案是不要将您尝试存储的捆绑包存储codesign在保管箱文件夹中。

于 2019-09-24T23:23:41.167 回答