在iOS应用中为目标依赖项指定不同的配置文件

时间:2017-11-20 17:57:12

标签: ios xcode xcode9 xcodebuild

我目前正在尝试首次使用xcconfig文件,以便更轻松地使用项目中的配置文件。我正在构建Development.xcconfigBeta.xcconfigAppStore.xcconfig

上下文

我需要能够从命令行构建我的应用程序。

我的应用还有一个今日扩展程序,其中包含不同的应用ID和配置文件。所以,我需要找到一种方法来指定两个配置文件。

xcconfig文件允许在项目中设置全局配置文件,这很棒。

但是,他们不容易在目标依赖项(即扩展名)中设置配置文件。

我想避免在扩展程序的构建设置中指向一个特殊标记(例如$(MY_EXTENSION_PROVISIONING_PROFILE)),因为只要有人编辑了扩展程序的配置文件,就会覆盖它。 (所以,解决方案here是不够的)

如何在xcconfig文件中包含所有这些设置?如果那是不可能的,那么在项目之外指定这些供应配置文件的替代解决方案是什么?

1 个答案:

答案 0 :(得分:0)

您绝对可以为包含.xcconfig文件的应用扩展程序设置配置文件或任何其他构建设置。您只需为应用扩展程序创建单独的.xcconfig文件。

为您的应用扩展程序创建单独的.xcconfig文件,每个文件对应一个开发,测试版和App Store配置。在那里定义扩展应用ID和配置文件:

PROVISIONING_PROFILE_SPECIFIER = your profile specifier

PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.TodayExtension

PRODUCT_NAME = Today Extension

然后,在“项目”设置中,设置与每个方案对应的.xcconfig文件。此处显示的示例是我的应用程序 - DevAppNew是一个应用程序目标,NotificationService是一个应用程序扩展目标。您同样会为Today分机添加一个单独的目标:

Project configurations

在命令行的构建时,指定您要构建的方案,它将使用您配置的.xcconfig文件:

xcodebuild -workspace YourApp.xcworkspace -scheme Testing