[Swift]WatchKitで”error: WatchKit Extension doesn’t contain any WatchKit apps whose bundle identifiers match 〜”と怒られた

WatchKit対応のアプリをストア公開用にビルドする際、以下のように怒られたので対処メモです。

error: WatchKit Extension doesn\'t contain any WatchKit apps whose bundle identifiers match \"xxx.xxx.xxx.watchkitapp\". Verify that the value of WKAppBundleIdentifier in your WatchKit Extension\'s Info.plist matches the value of CFBundleIdentifier in your WatchKit App\'s Info.plist.

エラーの意味と原因

WatchKit ExtensionのInfo.plistのWKAppBundleIdentifierとWatch AppのInfo.plistのCFBundleIdentifierが合ってないよ。つまり、WatchKit ExtensionとWatchKit AppのそれぞれのInfo.plistで不整合が起こっているわけです。

対応方法

それぞれのInfo.plistをチェックします。

WatchKit ExtensionのInfo.plist

XcodeのNavigation AreaからWatchKit Extension > Supporting Files > Info.plistを開きます。

確認すべきは、NSExtensionのNSExtensionAttributesのWKAppBundleIdentifierです。

これが次のWatchKit AppのInfo.plistにあるにあるBundle Identifierと一致している必要があります。

release-Info_plist_—_Edited

Info.plistをテキストエディタで編集する際は下記の箇所を確認してください。

<key>NSExtension</key>
<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>WKAppBundleIdentifier</key>
        <string>com.example.helloapp.watchkitapp</string>
    </dict>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.watchkit</string>
</dict>

WatchKit AppのInfo.plist

XcodeのNavigation AreaからWatchKit App > Supporting Files > Info.plistを開きます。

こちらの確認項目はBundle Identifierです。

02

Info.plistをテキストエディタで編集する際は下記の箇所を確認してください。

   <key>CFBundleIdentifier</key>
    <string>com.example.helloapp.watchkitapp</string>

エラーに書かれている内容をよく読めばわかるのですが、私はしばらくハマってしまいました。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です