3

我的应用程序包含两个可执行文件

  • 主应用程序可执行文件
  • 用于处理一些文件的小控制台应用程序,此可执行文件位于 Resources 文件夹中(无需 root 权限)

问题是我不知道如何将这个应用程序提交到应用商店,我收到了来自苹果的以下回复

签名无效 - 路径 appname.app 处的主应用程序包 appname 已签名,但签名无效。codesign 报告了以下错误:a seal resource is missing or invalid In architecture: i386

如果我删除帮助应用程序,它会绕过此错误,但应用程序根本无法运行。任何人都知道如何嵌入帮助应用程序并将其正确签名到应用商店的好方法或示例?

苹果文档对此并不清楚。

4

1 回答 1

8

您需要签署主应用程序和辅助控制台工具

签名 .app 已记录在案,因此我将向您描述如何对助手进行代码签名。

  • 手动创建一个权利文件并将其添加到帮助项目(您可以从主应用程序复制一个并删除不必要的权利键)
  • 创建一个 Info.plist,如将 Info.plist 添加到单文件工具中所述(此步骤不是强制性的,但如果您发现帮助程序崩溃,请尝试添加它)

如果主应用程序启动了你应该需要添加的帮助工具

com.apple.security.inherit

这在启用应用程序沙盒继承中进行了描述

如果主应用程序以其他方式与助手交互,可能您需要 XPC 通信,或者如果您很幸运,使用App Group就足够了

就像是

<key>com.apple.security.application-groups</key>
<array>
    <string>$(TeamIdentifierPrefix)my.package</string>
</array>

看看AppSandboxLoginItemXPCDemo

根据我的经验,TeamIdentifierPrefix 在开发环境中必须为空,并在您提交给 MAS 时设置为您的团队 ID,请小心处理我对 TeamIdentifierPrefix 的考虑(即尝试自己)

于 2012-11-01T16:03:19.637 回答