我正在尝试使用格式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上正确编码签名的任何建议?
谢谢,彼得
答案 0 :(得分:7)
在这个问题上发布赏金之后,我立刻想出来了。直接签署框架的当前版本可以解决问题:
codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current
答案 1 :(得分:2)
你的回答对我没有用,所以我发帖了。
如果您之前使用cp -r
命令复制了框架,则会出现此问题。使用cp -a
时,此问题不会出现。由于在这两个选项中解析符号链接的方式不同,这种情况正在发生。
答案 2 :(得分:0)
我正在使用电子包装程序,需要使用--no-deref-symlinks标志和bam为我工作
答案 3 :(得分:0)
我遇到了同样的问题。就我而言,问题是我尝试{。{1}}的.app文件被存储在保管箱文件夹中。
很明显,默认情况下,dropbox解析符号链接,即符号链接完全由它们指向的数据替换。阅读here。
在保管箱解析符号链接后,codesign
命令无法识别捆绑软件的格式。
解决方案是不要将要尝试codesign
的分发包存储在保管箱文件夹中。