【问题标题】:osx 10.9.5 code signing V2 - signing a framework with: bundle format is ambiguousosx 10.9.5 代码签名 V2 - 使用以下方式签署框架:捆绑格式不明确
【发布时间】:2014-09-22 08:46:31
【问题描述】:

我正在尝试在 osx mavericks 10.9.5 上使用 v2 格式对应用程序包进行代码签名。在之前的测试中,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 上正确对框架进行代码签名的任何建议?
谢谢,彼得

【问题讨论】:

  • 是否必须使用命令行来生成代码签名 v2?

标签: macos frameworks codesign osx-gatekeeper


【解决方案1】:

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

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

【讨论】:

  • 这是正确答案! codesign break,当符号链接被解析到目录中时。在框架中,顶级文件夹必须是指向 Versions/Current 的符号链接,并且 Current 必须是指向实际版本的符号链接。通常是“A”。如果您无法修复结构,则签署“版本/当前”可能是一种解决方法。 Apple,请修复您的代码签名者,说明错误的符号链接结构,而不是“捆绑格式不明确”。
  • 我非常感谢@JürgenWeigert - 我试图为 Catalina 代码设计我的应用程序并不断收到此错误(捆绑格式)。我在codesign docs 看到一个原因是符号链接的问题。我查看了我的应用程序,发现符号链接结构不正确,所以我手动调整它并且它工作。这是a post that suggests the structure, look for the comments by Dass
  • 感谢@JürgenWeigert 兄弟,你拯救了我的一天!
【解决方案2】:

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

codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current

【讨论】:

  • 我正面临这个问题。我没有得到你的解决方案。请问能详细说一下吗
  • @QadirHussain 我不确定还有什么要补充的细节。我只是使用 codesign 工具直接签署了框架可执行文件的当前版本,非常类似于我的答案中的示例。
  • 另外,您必须确保您的应用不使用 --deep 代码签名标志
【解决方案3】:

我使用的是 electron-packager,需要使用 --no-deref-symlinks 标志和 bam 为我工作

【讨论】:

    【解决方案4】:

    我遇到了同样的问题。在我的情况下,问题是我试图 codesign 的 .app 文件被存储在一个保管箱文件夹中。

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2022-10-04
      • 1970-01-01
      • 2021-11-07
      • 2021-09-24
      • 1970-01-01
      相关资源
      最近更新 更多