web-dev-qa-db-ja.com

WatchKit拡張機能バンドル識別子

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

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

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

これをどこで変更すればよいかわかりません。

50
Tom Coomer

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

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

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

例:

Bundle identifier: com.fruitcompany.orange

WatchKitアプリInfo.plist

ここのバンドル識別子mustは、次の例のように、iPhoneアプリケーションの識別子をプレフィックスとして付けます:

Bundle identifier: com.fruitcompany.orange.watchkit

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

WKCompanionAppBundleIdentifier: com.fruitcompany.orange

Watchkit Extension Info.plist:

ここのバンドル識別子mustは、次の例のように、iPhoneアプリケーションの識別子をプレフィックスとして付けます:

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

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

WKAppBundleIdentifier

WKAppBundleIdentifier識別子mustは、次のようにWatchKitアプリバンドル識別子と一致します。

WKAppBundleIdentifier: com.fruitcompany.orange.watchkit
169
Dejan Skledar

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

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

関連する問題に関するedwardmpの答え を見つけた後、私のために働いた対応するinfo.plistファイルのそれぞれの設定は次のとおりです。

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

ウォッチアプリのバンドルID:com.domain.yourapp.watchkit

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

ご覧のとおり、iPhoneアプリにはwatchkitアプリがあり、これ自体にたまたまwatchkit拡張機能があります。これらの各レベルは、それぞれのバンドルIDに反映する必要があります。

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

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

ウォッチアプリの拡張機能WKAppBundleIdentifier:com.domain.yourapp.watchkit

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

16
AdamJonR

また、プロジェクトiOSコンパニオンアプリの情報p.listのWKCompanionAppBundleidentifierキーを、ウォッチキット拡張情報info.plistのWKAppBundleIdentiferキーと一致するように変更する必要があります。以前のウォッチキットプロジェクトをコピーし、ウォッチキット拡張info.plistのWKAppBundleIdentifierをウォッチキットinfo.plistのバンドル識別子と一致するように変更したときに、この問題が見つかりましたが、プロジェクトでも同じエラーが発生しました。 Finderに移動し、iOSコンパニオンプロジェクトinfo.plistを見つけてダブルクリックし、必要に応じてWKCompanionAppBundleIdentiferキーを変更する必要があります。 Xcodeでinfo.plistを探しても、このキーを見ることができませんでした。

1
Nelson Capes

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

0
Lucas Huang