4

我正在尝试在 App Store 中提交 Mac 应用程序以供审批,但与 Growl 链接会导致验证错误。我正在尝试从命令行重新设计,但出现以下错误:

Ashs-MacBook-Pro:500px Uploader ash$ codesign -f -v -s "3rd Party Mac Developer Application: 500px Inc." ./Growl.framework/Versions/A
./Growl.framework/Versions/A: replacing existing signature
./Growl.framework/Versions/A: object file format unrecognized, invalid, or unsuitable

我试过重新下载框架,但没有运气。有人看到我做错了什么吗?

4

4 回答 4

3

真的很奇怪,我设法像这样辞职框架:

codesign -fs "3rd Party Mac Developer Application: Future Simple" Growl.framework/Versions/A/Growl
Growl.framework/Versions/A/Growl: replacing existing signature

(顺便说一句:我正在使用 Xcode 4.3.1 和 Growl 1.3.1)

于 2012-04-03T18:34:24.737 回答
2

在对框架进行代码设计时,我刚刚度过了“无法识别、无效或不合适的捆绑格式”错误。就我而言,我使用的是 XCode 4.6.1,并且我正在尝试对 Qt 框架进行代码签名。

首先请注意,Apple 文档 ( TN2206 ) 明确指出您需要对版本化框架目录而不是库可执行文件进行代码签名。

这将在此处进一步讨论: 您如何为 Mac App Store 设计框架包?

因此,基于此,Ash 原始问题中的命令行是正确的。但是我遇到了同样的错误。

我确实让它与该命令行一起工作。以下是我必须做的事情:

  • 确保您使用的是正确版本的 CODESIGN_ALLOCATE。这在此处的许多答案中都有讨论:iPhone Codesign 对象文件格式无效或不合适如果您可以让 XCode 对应用程序进行签名,那么您可以在构建日志中找到 CODESIGN_ALLOCATE 路径。

  • 确保版本化目录(上述问题中的 ./Growl.framework/Versions/A )包含 Resources/Info.plist 并且有来自 Versions/Current -> Versions/A 的链接,并且有一个链接 Resources - > 框架包顶层的版本/当前/资源。我发现如果没有 Versions/A/Resources/Info.plist,我无法签署版本化框架目录。您可以在此处此处阅读有关框架正确结构的更多信息,或者只是查看一些系统框架以了解它们应该如何构建。

  • Further to the previous point, make sure that your symlinks in your framework bundle are structured correctly (Current links to numbered version, top level links to Current) as shown in the Apple docs. This won't affect code signing but your App will be rejected if you don't get this right.

  • Make sure that CFBundleExecutable is set to the correct name (the executable name) in your framework's Info.plist

于 2013-08-09T08:59:59.290 回答
1

Would it be better if we shipped the sdk unsigned? It'd be a simple change, I'm hesitant to do so now since it's been like this for a little while.

于 2014-07-21T23:15:47.427 回答
0

看起来错误可能是试图签署一个已经签名的包;我通过下载 Growl 框架源代码并用我自己的签名编译它来解决这个问题。

如果我找到一个更好的答案,适用于您无法编译的框架,我会在这里发布。

于 2012-02-28T19:05:25.463 回答