WatchKit 的用户定义设置

User-Defined settings for WatchKit

我正在使用用户定义的设置(例如 CustomAppBundleId)来更改不同配置的包标识符。在应用程序的 plist 文件中,我将 CFBundleIdentifier 设置为 ${CustomAppBundleId}。对于发布配置,我使用 bundle:

com.yourcompany.${PRODUCT_NAME:rfc1034identifier}

对于 AdHoc,我使用:

com.yourcompany.adhoc.${PRODUCT_NAME:rfc1034identifier}

现在我添加了 WatchKit Extension 和 WatchKit App。对于 WatchKit 扩展包标识符,我可以使用相同的方法。我还必须更改 WKAppBundleIdentifier 以匹配 WatchKit 应用程序中的包标识符。同样,我可以使用用户定义的设置。现在最后一点是 WatchKit App。不幸的是,WatchKit 应用程序没有添加用户定义设置的选项,但我需要为 CFBundleIdentifierWKCompanionAppBundleIdentifier 设置正确的值(等于应用程序中的 CustomAppBundleId)。有什么办法可以做到吗?或者我应该使用不同的方法?

在项目的构建设置中而不是目标中定义您的 "User-Defined" 变量。这样,您将在 WatchKit 扩展和 App 目标中自动获得(继承)相同的用户定义变量。


顺便说一句,请确保您拥有来自 App Store 的最新 Xcode 6.3。此版本(以及最新的 Xcode 6.3 beta 4)已经允许您在构建设置中定义自定义 "User-Defined"。

以前的版本只是缺少 WatchKit App 目标中的 "Build Settings" 选项卡,但如果您足够勇敢,您可以在纯文本编辑器中手动修改这些选项卡:-)

更新至 Xcode 6.3.

在 6.3 中,您将有更多的目标配置选项卡,应该可以满足您的需要。

但我几乎可以肯定您会遇到 WatchKit 应用故事板的问题。
Scenes > Identity Inspector > Custom Class 中,您必须设置正确的模块 - 如果您有超过 1 个,那是不可能的(如果您没有超过一个,我会对您的设置更感兴趣)

我通过相应地更新故事板的动作前脚本解决了这个问题XML