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と一致している必要があります。
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です。
Info.plistをテキストエディタで編集する際は下記の箇所を確認してください。
<key>CFBundleIdentifier</key> <string>com.example.helloapp.watchkitapp</string>
エラーに書かれている内容をよく読めばわかるのですが、私はしばらくハマってしまいました。。