2

我需要通过“xcodebuild”在 Today Extension 中构建一个 Xcode 项目。bundle 的主要目标是 com.myapp,而扩展的 bundle id 是 com.myapp.todayextension。我想将两个包 ID 作为 xcodebuild 的参数传递:我试图用自定义环境变量(例如 ${MAIN_TARGET_BUNDLEID} 和 ${EXTENSION_BUNDLEID})替换 xcode 项目中的包 ID,但 xcodebuild 失败。您能否帮助我了解 xcodebuild 命令的正确语法?谢谢。

4

2 回答 2

0

迟到总比没有好;我们不能直接在General选项卡中使用环境变量,您需要进入Build Settings选项卡,然后设置Product Bundle Identifier为您的环境变量,例如$(PRODUCT_NAME).

另一种方法见下文。

如何加载父项目设置的前缀?

  1. 创建一个.xcconfig文件(内容如示例)。
  2. .xcconfig在项目设置Info选项卡(不是目标选项卡)中设置文件Info
  3. 在目标Build Settings选项卡中,确保PRODUCT_BUNDLE_IDENTIFIER不是粗体(单击它并按delete)。

Podfile用户也应该看到:如何让 Xcode 使用多个 xcconfig 文件?

例子

我的extension.xcconfig文件(在MyApp/MyLib/MyExtension目录中)看起来像:

// Below loads `MyApp/config/mylib.xcconfig` file.
#include "../../config/mylib.xcconfig"

PRODUCT_BUNDLE_IDENTIFIER = $(MYLIB_BUNDLE_PREFIX).$(PRODUCT_NAME)

请注意

  1. 您想使用某些环境作为前缀,但上面我使用PRODUCT_NAME作为后缀(只需根据需要进行编辑)。
  2. mylib.xcconfig文件设置MYLIB_BUNDLE_PREFIX, 并且在我MyLib.xcodeproj的文件目录之外(在父项目的config目录中也是如此,我在 MyLibREADME.md中描述用户应该在那里创建它)。
  3. 所以,除了展示我的#include方法之外,我尝试介绍环境变量的使用。
于 2021-09-01T03:58:34.757 回答
0

PRODUCT_BUNDLE_IDENTIFIER根据文档,这就是所谓的。

于 2021-03-29T09:18:40.500 回答