web-dev-qa-db-ja.com

WatchKitアプリがコンパイルされません:「エラー:WatchKit拡張機能にWatchKitアプリが含まれていません」

この問題に関するいくつかの投稿がありますが、私の場合、提案された解決策はどれも機能しません。私は、Appleが提供する指示に従って、WatchKitをシンプルなサンプルアプリに統合しようとしています(私は今、いくつか試しました)。コンパイルすると、次のエラーメッセージが表示されます。

「エラー:WatchKit拡張機能にWatchKitアプリが含まれていません。WatchKitアプリのInfo.plistのWKWatchKitAppの値がYESに設定されていることを確認してください。」

Apple Watch "Catalog"の例を正常にコンパイルして実行したので、iPhoneからWatchの観点から物事が機能していることがわかります。既存のものと統合しようとすると、何かが正しくないようです。 app。このトピックに関する投稿を見たことがあります(例 WatchKitアプリはシミュレーターで実行されません )が、私の場合は修正が機能しません。バンドルIDはすべて正しいようです。シミュレータではなくiPhone6でコンパイルして実行します。何か提案はありますか?

12
jamey

このエラーは、メインのiOSアプリのバンドル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)

これでエラーが修正されました。

25
anoop4real

Xcodeバージョン8.2.1でこれに気づきました。これが私がそれを修正した方法です。

「WatchKitアプリ」->ビルド設定->パッケージング->製品名に移動します

現在の文字列とは異なる文字列になるように変更します。以下のリンクで呼ばれているような奇妙な解決策であることに同意しました。

ソース: 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
nmunjal

このエラーの主な理由は、

1ウォッチキット拡張plistファイルのウォッチアプリバンドルIDが正しくありません。

  1. ウォッチキット拡張ターゲットにwatchapp.appの依存関係がありません。

カタラグの例を含むAppleドキュメントが役立つ場合があります https://developer.Apple.com/library/ios/technotes/tn2410/_index.html

3
sandy

以下の設定は私のために働いた

  • メインアプリのInfo.plist

バンドル識別子:com.domain.WatchKit-table

  • Watchkit AppInfo.plistで

WKCompanionAppBundleIdentifier:com.domain.WatchKit-テーブル

バンドル識別子:com.domain.WatchKit-table .watchkitapp

  • WatchKit拡張情報.plist

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

バンドル識別子:com.domain.WatchKit-table .watchkitapp.watchkitextension

注:私のバンドルIDには、3番目のコンポーネントとして*があります。 WatchKit-tableは私のプロジェクト名です

2

XCode Version 10.2 (10E125)でこの問題が発生しました。WatchkitAppバンドル識別子を変更したときに、watchkitapp拡張機能の1つのキーが変更されず、古いバンドル識別子のままであることに気付きました。

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が問題になったので、自分で変更しました。

ビルド番号を変更した後、xcode10.0でこれに気づきました。

ビルドフォルダをクリーンアップし、xcodeを閉じて、再度開くとうまくいきました。

1
Martin

私の場合、拡張ライブラリの構築に問題がありました。実際、ビルドされておらず、2つのエラーがありました。1。拡張ライブラリがないことについてのリンカーから。 2.NSExtensionPointIdentifierキーの「欠落」に関するXcodeから。

リンクエラーの修正もこのメッセージを修正しました。

1
AlexeyVMP