2

不知道目的WKAppBundleIdentifier是什么。WatchKit Extension 的包标识符是否和WKAppBundleIdentifer假设具有相同的 id?当我在 iOS 模拟器和 iWatch 模拟器之间为它们分配相同的 idcom.myProbjectName.watchkitextension共享数据(应用程序组)时,它们根本不起作用。但是,如果我更改WKAppBundleIdentifercom.myProbjectName.watchkitapp并保留 WatchKit 的捆绑标识符,则com.myProbjectName.watchkitextensioniOS 模拟器和 Apple Watch 模拟器之间共享数据的工作原理相同 ( )。WKAppBundleIdentifier为什么要这样做?和 bundle identifier ( ) 有什么区别CFBundleIdentifier

4

1 回答 1

3

CFBundleIdentifier是 WatchKit Extension 的 Bundle Identifier,其中包含 WatchKit App。因此,Bundle Identifier 对于扩展是唯一的,例如com.some.app.watchkitextension.

WKAppBundleIdentifier是扩展内捆绑的 WatchKit App 的标识符。这就是为什么这些值必须不同的原因,因为 WatchKit App 有自己的 Bundle Identifier(例如com.some.app.watchkitapp)。这个值应该是 WatchKit App 的值CFBundleIdentifier

它也与配置有关。所有三个部分(iOS 应用程序、WatchKit 扩展和 WatchKit 应用程序)都必须有自己的 Bundle Identifier 和配置文件。


WKAppBundleIdentifier实际上是 WatchKit 扩展对 WatchKit App 的规范的一部分NSExtension

<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>WKAppBundleIdentifier</key>
        <string>com.some.app.watchkitapp</string>
    </dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.watchkit</string>
</dict>
于 2015-04-17T09:08:33.487 回答