17

我真的要被这个问题抓狂了!我有一个应用程序,其中包含一个简单的 Helper 应用程序,用于管理 Main 应用程序的登录项。

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

目前,帮助应用程序是代码签名的,并且作为主应用程序被沙盒化。

错误是:

  • 配置文件无效。捆绑包中包含的配置文件无效

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

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

4

4 回答 4

20

对于遇到此问题的任何其他人,您不必再次对帮助应用程序进行代码签名,只需从 xarchive 中的帮助应用程序中删除“embedded.provisionprofile”,您就可以毫无问题地提交。

于 2012-12-07T04:07:34.460 回答
7

似乎可以解决此问题的唯一解决方案是从 Xcode 对帮助应用程序进行协同设计和沙箱化,然后:


从终端重新设计 Helper 应用程序

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



从 Helper 应用程序中删除配置文件,将“运行脚本”添加到“构建阶段”中

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

有了这个解决方案,我们已经正确提交了我们的 App。

于 2012-07-08T20:13:40.820 回答
1

当我不小心在我的目标中包含一些 3rd-party .a 文件时,我遇到了第三个错误。(非 App Store 分发需要它们,但我忘记将它们排除在 App Store 构建中)。该错误对跟踪此错误并没有太大帮助!

于 2012-11-21T02:21:36.093 回答
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
于 2014-04-09T04:01:43.970 回答