7

我有一个 Mac 应用程序的 Xcode 项目,其中包含另一个帮助程序应用程序的项目,以在登录时启动主应用程序。有没有一种方法可以将辅助应用程序的捆绑标识符从主应用程序中建立起来,并使用类似${PRODUCT_NAME}但类似的项目变量${ROOT_PRODUCT_IDENTIFIER}

所以主应用程序的包标识符将是:

com.mydomain.app

辅助应用程序的捆绑标识符将是:

${ROOT_PRODUCT_IDENTIFIER}.Helpercom.mydomain.app.Helper

我的目标是在登录助手应用程序中创建一个非常易于使用的通用启动,任何 mac 应用程序都可以使用,我已经在这个 repo 中工作了它,但它需要更改几个值:https://github。 com/kgn/LaunchAtLoginHelper

4

1 回答 1

3

恐怕您要查找的变量不存在,请查看此处此处

但是我可以通过创建自己的环境变量来想到一种解决方法,这并不困难。为了实现您想要的,为您的主项目创建一个构建脚本,该脚本提取标识符并将其保存到环境变量中。

转到主项目的目标,然后单击 Add Build Phase -> Add Run Script。在出现的外壳框中,输入以下内容:

ROOT_PRODUCT_IDENTIFIER_PLIST=`/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" $INFOPLIST_FILE`
export ROOT_PRODUCT_IDENTIFIER=`eval echo $ROOT_PRODUCT_IDENTIFIER_PLIST`

现在转到您的助手项目并在其 plist/build 设置中引用 $(ROOT_PRODUCT_IDENTIFIER) 。

请记住将您的主项目添加为后者的依赖项,以便始终在需要的时间设置该变量。

于 2012-11-21T17:42:58.067 回答