WatchKit App无法编译:“错误:WatchKit扩展不包含任何WatchKit应用程序”

时间:2015-08-18 03:28:33

标签: ios objective-c iphone apple-watch

在这个问题上有几个帖子,但提议的解决方案都不适合我的情况。我正在尝试按照Apple提供的说明将WatchKit集成到一个简单的示例应用程序中(我现在尝试了几个)。当我编译时,我收到以下错误消息:

  

“错误:WatchKit扩展程序不包含任何WatchKit应用程序。验证   在WatchKit应用程序的Info.plist中WKWatchKitApp的值是   设置为YES。“

我已成功编译并运行Apple Watch“目录”示例,因此我知道从iPhone到Watch的角度都在运行。当我尝试与现有应用程序集成时,似乎有些不对劲。 我在这里看过关于这个主题的帖子(例如WatchKit app wont run on simulator),但没有一个修复工作在我的案例中;捆绑ID似乎都是正确的。注意我正在尝试编译并在iPhone 6上运行而不是在模拟器上运行。 有什么建议吗?

8 个答案:

答案 0 :(得分:24)

当我更改主iOS App的软件包ID时,我发生了这个错误。 这就是我在项目资源管理器中所做的事情

  1. 在WatchApp下 - > plist中

    WKCompanionAppBundleIdentifier ==> Give the id of the iOS App (com.xxxx.appname)

  2. 在WatchApp扩展程序下 - > plist中 NSExtension-->NSExtensionAttributes-->WKAppBundleIdentifier ==> Give the id of your watchkit app (eg: com.xxxx.appname.watchkitapp)

  3. 这为我解决了错误。

答案 1 :(得分:3)

此错误的主要原因,

1 watchkit扩展plist文件中的监视应用程序包ID不正确。

  1. 在watchkit扩展目标中缺少watchapp.app的依赖性。
  2. 带有catalag示例的Apple文档可能有所帮助 https://developer.apple.com/library/ios/technotes/tn2410/_index.html

答案 2 :(得分:3)

我在Xcode版本8.2.1上注意到了这一点。以下是我修复它的方法。

转到" WatchKit App" - >构建设置 - >包装 - >产品名称

更改它以使任何字符串与当前字符串不同。同意这是一个奇怪的解决方案,如下面的链接所示。

来源:https://blogofpuneet.wordpress.com/2015/05/02/xcode-build-error-watchkit-extension-doesnt-contain-any-watchkit-apps-verify-that-the-value-of-wkwatchkitapp-in-your-watchkit-apps-info-plist-is-set-to-yes/

答案 3 :(得分:2)

以下设置适合我

  • 在主应用程序信息列表中

捆绑标识符:com.domain.WatchKit-table

  • 在Watchkit App Info.plist中

WKCompanionAppBundleIdentifier:com.domain.WatchKit表

捆绑标识符:com.domain.WatchKit-table。 watchkitapp

  • WatchKit Extension Info.plist

NSExtension> NSExtensionAttributes> WKAppBundleIdentifier:的 com.domain.WatchKit-table.watchkitapp

捆绑标识符:com.domain.WatchKit-table。 watchkitapp.watchkitextension

注意:我的bundle id有*作为第三个组件。 WatchKit-table是我的项目名称

答案 4 :(得分:1)

在更改内部版本号后,我使用xcode 10.0注意到了这一点。

清理构建文件夹,关闭xcode,然后重新打开对我有用。

答案 5 :(得分:0)

在我的情况下,我在构建扩展库时遇到了问题。实际上它没有构建,我有两个错误: 1.从链接器关于扩展库的缺席。 2.从Xcode关于“缺少”NSExtensionPointIdentifier密钥。

修复链接错误也修复了此消息。

答案 6 :(得分:0)

我在XCode Version 10.2 (10E125)上遇到了这个问题,我意识到当我更改WatchkitApp捆绑包标识符时,watchkitapp扩展中的一个键没有更改,并保持为旧的捆绑包标识符。

plist的路径:/ Users /.../ YourXcodeProjectFolder / Project / YourWatchkitExtensionFolder / info.plist

问题发生在这里:

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>WKAppBundleIdentifier</key>
        <string>com.applecode.water.watchkit</string>
    </dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.watchkit</string>
</dict>

WKAppBundleIdentifier出了问题,所以我自行更改了。

答案 7 :(得分:0)

我正在使用Xamarin和Visual Studio(在PC上)。我遇到了这个问题,但是以上修复都不起作用。然而,很像XCode修复,重新启动Visual Studio才是答案。 /叹气