具有多个目标的项目的代码签名问题

Ash*_*row 23 macos xcode code-signing objective-c

我试图让我的应用程序(在Dock中没有出现)可以选择在登录时启动.这很棘手,并且涉及创建第二个辅助应用程序,您将其添加为启动项.此帮助应用程序仅负责启动主应用程序然后退出.

我按照这里这里的说明进行操作,它就像一个魅力 - 问题当然是代码签名.我有两个目标; 辅助应用程序目标Contents/Library/LoginItems在编译时被复制到主包的子目录中.每个捆绑包都有自己的捆绑包标识符和自己的部署配置文件,但是当我为应用商店验证我的归档时,我收到以下错误:

Invalid provisioning profile. The provisioning profile included in the bundle BUNDLE NAME [BUNDLE NAME.app] is invalid. For more information, visit the Mac OS Developer Portal.
Run Code Online (Sandbox Code Playgroud)

如果我从主目标中删除辅助包,则没有问题.看起来另一个配置文件的存在正在引发错误.

如何包含两个已签名的包并通过验证?

Ash*_*row 8

我终于能够通过codesign在同事的计算机上使用来解决这个问题(我的钥匙串肯定有问题)并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
Run Code Online (Sandbox Code Playgroud)