【问题标题】:Xcode: is there a way to get the bundle identifier of a parent project?Xcode:有没有办法获取父项目的包标识符?
【发布时间】:2012-04-20 08:33:24
【问题描述】:

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

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

com.mydomain.app

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

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

我的目标是创建一个非常易于使用的通用 launch at login helper app,任何 Mac 应用程序都可以使用,我已经在这个 repo 中使用它,但它需要几个值待更改:https://github.com/kgn/LaunchAtLoginHelper

【问题讨论】:

    标签: xcode xcode4


    【解决方案1】:

    恐怕你要找的变量不存在,看看herehere

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

    转到主项目的目标并单击添加构建阶段 -> 添加运行脚本。 在出现的外壳框中,输入:

    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)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多