在其捆绑包中提交带有帮助应用程序的OSX应用程序

时间:2012-06-27 15:45:27

标签: cocoa provisioning submission mac-app-store

我真的很生气这个问题!我有一个应用程序,其中包含一个简单的帮助应用程序,它管理主应用程序的登录项。

当我尝试提交应用时,我收到与配置文件和权利相关的错误。我确定问题与帮助应用程序有关,因为在我添加之前,提交工作没有问题。

目前,帮助应用程序已经过代码签名,并被沙盒化为主应用程序。

错误是:

  • 配置资料无效。包中包含的配置文件无效

  • 无效的代码签名权利。应用包标签中的权利与配置文件中包含的权利不匹配。该捆绑包含一个未包含在配置文件中的密钥&com; apple.application-identifier'在' myapp.app/Contents/Library/LoginItems/helper.app'

  • 无效的代码签名权利。应用包标签中的权利与配置文件中包含的权利不匹配。该捆绑包含一个未包含在配置文件中的密钥&com; apple.application-identifier' in' myapp.app/Contents/MacOS/myapp'

4 个答案:

答案 0 :(得分:20)

对于遇到此问题的其他人,您不必再次对辅助应用程序进行编码,只需从xarchive中的帮助应用程序中删除“embedded.provisionprofile”,即可提交无问题。

答案 1 :(得分:6)

似乎解决这个问题的唯一解决方案是从Xcode编码和沙箱化帮助应用程序然后:


从终端重新编码帮助应用

codesign -f -s "3rd Party mac Developer Application:" -i "com.bundle.YOUR.HELPER" --entitlements path/to/helper/entitlements YEOR-HELPER.app



从帮助应用中删除配置文件,在“构建阶段”中添加“运行脚本”

rm"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Library/LoginItems/YOUR-HELPER.app/Contents/embedded.provisionprofile"

通过此解决方案,我们已正确提交了我们的应用程序。

答案 2 :(得分:1)

当我意外地在目标中包含一些第三方.a文件时,我遇到了第3个错误。 (他们需要非App Store发行版,但我忘了将它们排除在App Store版本之外)。跟踪此错误对错误没有太大帮助!

答案 3 :(得分:0)

我终于能够通过添加以下运行脚本从帮助应用程序中删除embedded.provisionprofile文件来解决此问题:

if [ -f "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/embedded.provisionprofile" ];
then
    rm "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/embedded.provisionprofile"
    echo "Removed embedded provisioning profile."
else
    echo "No profile found"
fi
相关问题