63

アプリをビルドしようとしていますが、失敗しました。以下のメッセージが表示されます。

エラー: WatchKit 拡張機能には、バンドル識別子が「com.domain.appname.watchkitapp」と一致する WatchKit アプリが含まれていません。WatchKit 拡張機能の Info.plist の WKAppBundleIdentifier の値が、WatchKit アプリの Info.plist の CFBundleIdentifier の値と一致することを確認します。

最近 に変更"com.domain.appname.watchkitapp"しました"com.domain.differentappname.watchkitapp"

これを変更する場所が見つかりません。

4

5 に答える 5

203

バンドル識別子を変更するときは注意が必要です。設定方法は次のとおりです ( iPhone アプリWatchkit 拡張機能、およびWatchkitアプリの Info.plist で各識別子を変更する必要があります)。

iPhone アプリケーション Info.plist:

任意のバンドル識別子を設定します (「バンドル識別子」プロパティ)。

例:

Bundle identifier: com.fruitcompany.orange

WatchKit アプリの Info.plist

ここでのバンドル IDには、次のように iPhone アプリケーションの ID をプレフィックスとして付ける必要があります (例):

Bundle identifier: com.fruitcompany.orange.watchkit

また、次のように、iPhone アプリケーション バンドル識別子と一致する必要がある を変更する必要がありWKCompanionAppBundleIdentifierます。

WKCompanionAppBundleIdentifier: com.fruitcompany.orange

WatchKit 拡張情報 plist:

ここでのバンドル IDには、次のように iPhone アプリケーションの ID をプレフィックスとして付ける必要があります (例):

Bundle identifier: com.fruitcompany.orange.watchkit.extension

属性のWKAppBundleIdentifier下にも設定する必要があります。NSExtension

WKAppBundleIdentifier

WKAppBundleIdentifier識別子は、次のように WatchKit アプリ バンドル識別子と一致する必要があります。

WKAppBundleIdentifier: com.fruitcompany.orange.watchkit

プロジェクト ターゲットのバンドル IDが Info.plistと同じであることを確認することを忘れないでください。

于 2015-05-13T09:10:32.703 に答える
20

まず、@DejanSkledar によるこのページの優れた回答を強調させてください。回答に記載されている場所はすべて重要です。

とはいえ、その答えの正確な設定は私にとって十分ではありませんでした。この回答を補足し、watchkit 2 以降、アプリから watch アプリ、そして最後にバンドル ID の観点からアプリの拡張機能に移動するときに必要な階層があるように見えることを指摘したいと思います。

関連する問題に関する edwardmp の回答を見つけた後、対応する各 info.plist ファイルの設定を次に示します。

iPhone アプリのバンドル ID: com.domain.yourapp

Watch アプリのバンドル ID: com.domain.yourapp.watchkit

Watchkit の拡張バンドル ID: com.domain.yourapp.watchkit.extension

ご覧のとおり、iPhone アプリにはウォッチキット アプリがあり、それ自体にウォッチキット拡張機能があり、これらの各レベルはそれぞれのバンドル ID に反映されている必要があります。

関係を完了すると、時計アプリは、それが属する iPhone アプリ (WKCompanionAppBundleIdentifier) を使用してポイントする必要があり、時計拡張機能は、それが属する時計アプリ (WKAppBundleIdentifier) をポイントする必要があります。

アプリの WKCompanionAppBundleIdentifier を見る: com.domain.yourapp

Watch アプリの拡張機能 WKAppBundleIdentifier: com.domain.yourapp.watchkit

私はこれに数時間苦労しなければならなかったので、これが誰かの時間を節約できることを願っています:(

于 2016-02-02T06:56:42.043 に答える
0

したがって、テスト デバイスで実行したいだけの場合は、必ずしも何かを変更する必要はありません。ただし、watch アプリをテストするには、さらに 2 つのプロビジョニング プロファイルを要求する必要があります。これら 2 つの追加の識別子は、拡張機能のターゲットと監視アプリのターゲットから取得できます。これは、時計アプリをApp Storeにアップロードする場合も同じです。

于 2015-05-13T05:16:55.650 に答える