为 iOS 应用程序中的目标依赖项指定不同的配置文件
Posted
技术标签:
【中文标题】为 iOS 应用程序中的目标依赖项指定不同的配置文件【英文标题】:Specify different provisioning profiles for target dependencies in iOS app 【发布时间】:2017-11-20 17:57:12 【问题描述】:我目前正在尝试第一次使用 xcconfig 文件,以便更轻松地在我的项目中使用配置文件。我正在构建 Development.xcconfig
、Beta.xcconfig
和 AppStore.xcconfig
。
上下文:
我需要能够从命令行构建我的应用程序。
我的应用还有一个 Today 扩展,它具有不同的应用 ID 和配置文件。所以,我需要找到一种方法来指定这两个配置文件。
xcconfig 文件允许在项目中设置全局配置文件,这很棒。
但是,它们不允许在目标依赖项(即扩展)中设置配置文件。
我想避免在扩展程序的构建设置中指向一个特殊标志(例如 $(MY_EXTENSION_PROVISIONING_PROFILE)
),因为任何时候有人编辑扩展程序的配置文件时都会覆盖该标志。 (所以,here 的解决方案是不够的)
如何在 xcconfig 文件中包含所有这些设置?如果这不可能,那么在项目之外指定这些配置文件的替代解决方案是什么?
【问题讨论】:
【参考方案1】:您绝对可以为带有 .xcconfig 文件的应用扩展设置配置文件或任何其他构建设置。您只需为您的应用扩展创建单独的 .xcconfig 文件。
为您的应用扩展创建单独的 .xcconfig 文件,为您的开发、Beta 和 App Store 配置分别创建一个文件。在那里定义扩展应用 ID 和配置文件:
PROVISIONING_PROFILE_SPECIFIER = your profile specifier
PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.TodayExtension
PRODUCT_NAME = Today Extension
然后,在您的项目设置中,设置与每个方案对应的 .xcconfig 文件。此处显示的示例是我的应用程序 - DevAppNew 是应用程序目标,而 NotificationService 是应用程序扩展目标。同样,您的 Today 扩展程序也会有一个单独的目标:
在命令行上构建时,指定您要构建的方案,它将使用您配置的 .xcconfig 文件:
xcodebuild -workspace YourApp.xcworkspace -scheme Testing
【讨论】:
如果你和我一样不知道什么是令人震惊的,有一篇关于如何设置的文章:appcoda.com/xcconfig-guide以上是关于为 iOS 应用程序中的目标依赖项指定不同的配置文件的主要内容,如果未能解决你的问题,请参考以下文章