Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > AppleWatchアプリの申請

AppleWatchアプリの申請

AppleWatchアプリの申請が4月1日から始まりましたので、少しトライしてみました。ハマった箇所を共有です。 アプリをArchiveしてValidateしてから2パターンの不具合、あとはアップロードには成功したのですが、Itunesに反映されなかった 現象を共有です。

ハマった箇所#1(バージョン番号がWatchKitとメインアプリが違う)

サンプル画像

CFBundleVersion Mismatch. The CFBundleVersion value '1' of watch application..のエラー文字。これは 私が作成したいたメインアプリのアップデート版でWatchKit機能を追加したため、本体のバージョンは2.0、WatchKitは1.0になっていた為に 発生していました。バージョンは一元管理が必要なようで、本体アプリのバージョンに他も合わせる必要性があるようです。

ハマった箇所#2(アイコンが違うエラーが発生し続けた)

サンプル画像

Invalid Icon Name. Make sure that icon names follow the pattern...ここに結構ハマってしまいました。英語で検索しても同様にハマっていた人もいているようでしたが、僕のハマっていた箇所は 少し違うようでした。

参考:http://stackoverflow.com/questions/29423475/invalid-apple-watch-icon-file-names-must-match-pattern-dimensionscalex-pn

メインのAppIconと同じファイル名で利用している場合はこのエラーが発生するようでした。WatchはWatch用にアイコンを作成すれば良いの ですが、ここでもはまる要素があったので共有です。私はドラッグ&ドロップでアイコンを追加していたのですが、以前embededしていたアイコンを Watchkitのアイコンを割り当てられてしまうようでした。

やったことは、まず不要なアイコンファイルをBuild Phasesから全て削除してから、 改めてドラッグして追加したこと。あとなぜか、Target -> General -> App Iconsの App Icon SourceがWatchKitのImages.assetssにも   とメインアプリのImages.assetsに同じ名前(AppIcon)で重複していたので、Watchkit側をAppIcon-watchに変更して差別化させるとValidateに通過しました。

ハマった箇所#3(ItunesConnectのBuildに表示されない)

サンプル画像

Validateに通過したのですが、どれだけ待ってもItunesコネクトに反映されない、、、、こんなこと今までなかったのにおかしいと思ったのですが、 メールで通知が届いていました(Validateで却下して欲しかった、、、)。

どうやらアルファチャンネルが含まれるIconだったようです。 正直自分がどうやってこのファイルを作ったのかわからなかったので、改めてPhotoshopで作成しなおして解決しました。 あまり発生する現象ではないのかも しれませんが、、、、共有です。アイコンファイルの情報詳細を確認すると表示されるアルファチャンネルが「なし」ならOKです。


4月6日に申請を出して、今朝(4/9)却下通知が届いていました。。。orz アップデートとは言え3日でフィードバックが戻ってくるなんて 、Apple側もAppleWatchのアプリを早く増やしたいのかもしれないですね。ちなみに、却下理由は2.2 Details We discovered one or more bugs in your app when reviewed on Apple Watch. Specifically, when your Apple Watch app is launched, 。。。修正しつつまたアップデートしていきます


2015/4/13アップデート

AppleWatch対応アプリの却下事例は世界各国で議論されているようです。私もBundle Display Nameが該当名では無い、、、とか記載されているのに 却下し続けられる現象に、こちらはどうやらBundle Display NameでなくBundle Nameの変更でcampagin appの表示に対応(iPhoneシュミレータ上に表示されrているAppleWatchアイコンをクリックした 時に表示されるApp名称)できるようです。再申請中です。以下参考になったApple申請却下のサイトを共有します。

参考:iPhone WatchKit Companion App Display Name - Stack Overflow
参考:Submitting Your WatchKit App — Five Minute WatchKit
参考:iOS - Apple Watchアプリ申請時にハマったこと - Qiita
参考:iOS AppleWatch対応アプリの審査提出までの手順


リジェクト(第一回目)2015/4/9

最初にアプリ申請したのは4/6日、2日後の4/8にはReviewが開始されて4/9にはRejectされました。リジェクトの文章を部分的にですが公開します(最初に以下3つの理由でリジェクトさてました)。


2.2 - Apps that exhibit bugs will be rejected
3.4 - App names in iTunes Connect and as displayed on a device should be similar, so as not to cause confusion
8.1 - Apps must comply with all terms and conditions explained in the Guidelines for Using Apple Trademarks and Copyrights and the Apple Trademark List

2.2 Details

We discovered one or more bugs in your app when reviewed on Apple Watch.

Specifically, when your Apple Watch app is launched, it displays no content.

AppleWatchのアプリを起動しても何も表示されないよ ー> 私のアプリはメインアプリを起動させてサンプルデータを追加してからじゃないと
AppleWatch側で動作しませんでしたので、このメッセージが。データがないときは「メインアプリを起動してね」との文章を
英語でAppleWatch側に追加して解決。

Next Steps

Please run your app on a device to identify the issue(s), then revise and resubmit your app for review.

For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue(s). For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue(s).

If we misunderstood the intended behavior of your app, please reply to this message in the Resolution Center to provide information on how these features were intended to work.

Resources

3.4 Details

We noticed the app name to be displayed on the App Store and the app name displayed on a device do not sufficiently match, which makes it difficult for users to find the app they just downloaded. The application names are:

AppStoreの名前とAppleWatchの名前が違うよ、とのエラー。以下にBundle Display Nameを変えたら良いとの流れなのですが、
Bundle Display Nameを変えてもエラーは解決できず、最終的にBundle Nameを変更する方向で申請中(2015/4/16)

Next Steps

Please change one or both names so they are more similar and the user can easily locate the app they just downloaded. It is important NOT to change your Bundle Identifier, which is used to uniquely identify your application in the App Store. Changing the Bundle Identifier will prevent users from upgrading, and will effectively introduce a new application rather than an update.

To change the name appearing underneath your app icon, modify the CFBundleDisplayName key in your Info.plist. Please follow these steps to modify CFBundleDisplayName:

1. In Xcode, click the disclosure triangle next to your app folder in the project navigator to reveal its content.
2. Click the disclosure triangle next to the “Supporting Files” subfolder to reveal its content.
3. Select the Info.plist file to reveal a property list editor of keys and values.
4. By default, Xcode displays a human-readable string of a key rather than its actual name. So, search the property list for “Bundle display name.” Skip to step 5 if your property list already shows Bundle display name. If it doesn’t, add it to your list as follows:
a. Click on any entry in your list, then click the “+” button.
b. Choose Bundle display name from the ensuing pop-up menu.
c. Note: To display the actual key names, control-click anywhere in the property list editor, then choose Show Raw Keys/Values from the appearing contextual menu. 
5. Double-click in the Value column of Bundle display name.
6. Enter a new value for Bundle display name.
7. If your app has multiple localizations, be sure to localize your app’s bundle name by adding it to all your language specific InfoPlist.strings files:
a. Create a string resource file for the container app, and name it “InfoPlist.strings”
b. Make sure InfoPlist.strings is localized for all the supported languages. To do this, you can select the InfoPlist.strings file in Xcode Project Navigator and check all the languages (including “Base”) in the “Localization” section in Xcode Utilities panel. (To add a new localization, you can go to Xcode’s Project and Target List, select the project, then click “+” in the “Localizations” section of the info tab). 
c. Specify the localized bundle name for the container app by adding the following line in the InfoPlist.strings file for all languages:
CFBundleName = “"; 

Resources

For additional information on how to revise your device name, please see Technical Q&A QA1823: Updating the Display Name of Your App.

8.1 Details

Your app does not comply with the Guidelines for Using Apple's Trademarks and Copyrights. Specifically, your app includes: one or more Apple trademark images - or likenesses of Apple trademark images. 

Specifically, your submitted screenshots display the Apple Watch device.

AppleWatch関連の表示がスクリーンショットに記載されているからダメよとの指摘。
これは私はAppleWatchの実機を表示していたので、イラスト的な模倣した「時計」にしたのですが
それも却下、結局AppleWatch連携を匂わすスクリーンショットは全て削除しました。

Next Steps

Please revise your app and its metadata to address these trademark issues.

For your convenience, we've provided the relevant sections of the Guidelines for Using Apple's Trademarks and Copyrights:

Apple Logo and Apple-owned Graphic Symbols

You may not use the Apple Logo or any other Apple-owned graphic symbol, logo, or icon on or in connection with web sites, products, packaging, manuals, promotional/advertising materials, or for any other purpose except pursuant to an express written trademark license from Apple, such as a reseller agreement.

If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log


リジェクト(第2回目)2015/4/12

2回目は、10日にアプリ申請して二日後に却下されました。... orz 理由は以下2点。



3.4 - App names in iTunes Connect and as displayed on a device should be similar, so as not to cause confusion
8.1 - Apps must comply with all terms and conditions explained in the Guidelines for Using Apple Trademarks and Copyrights and the Apple Trademark List

3.4 Details

We still noticed the app name to be displayed on the App Store and the app name displayed in the Apple Watch companion app do not sufficiently match, which makes it difficult for users to find the app they just downloaded. The application names are:

第一回目の対応に記載しましたが、最初にBundle Display Nameを変更したのに、
このリジェクトで改めてリジェクトされたので調べたらBundle Nameを変えるとの記事が、、、
現在その後の申請をしていてリジェクトはまだされていない(Reviewが始まりましたが
すぐ拒否はされていない)状態ですので、おそらくBundle Nameで調整する方法でOKなのかと思います。


Next Steps

Please change one or both names so they are more similar and the user can easily locate the app they just downloaded. It is important NOT to change your Bundle Identifier, which is used to uniquely identify your application in the App Store. Changing the Bundle Identifier will prevent users from upgrading, and will effectively introduce a new application rather than an update.

To change the name appearing underneath your app icon, modify the CFBundleDisplayName key in your Info.plist. Please follow these steps to modify CFBundleDisplayName:

1. In Xcode, click the disclosure triangle next to your app folder in the project navigator to reveal its content.
2. Click the disclosure triangle next to the “Supporting Files” subfolder to reveal its content. 
3. Select the Info.plist file to reveal a property list editor of keys and values.
4. By default, Xcode displays a human-readable string of a key rather than its actual name. So, search the property list for “Bundle display name.” Skip to step 5 if your property list already shows Bundle display name. If it doesn’t, add it to your list as follows:
a. Click on any entry in your list, then click the “+” button.
b. Choose Bundle display name from the ensuing pop-up menu.
c. Note: To display the actual key names, control-click anywhere in the property list editor, then choose Show Raw Keys/Values from the appearing contextual menu. 
5. Double-click in the Value column of Bundle display name.
6. Enter a new value for Bundle display name.
7. If your app has multiple localizations, be sure to localize your app’s bundle name by adding it to all your language specific InfoPlist.strings files:
a. Create a string resource file for the container app, and name it “InfoPlist.strings”
b. Make sure InfoPlist.strings is localized for all the supported languages. To do this, you can select the InfoPlist.strings file in Xcode Project Navigator and check all the languages (including “Base”) in the “Localization” section in Xcode Utilities panel. (To add a new localization, you can go to Xcode’s Project and Target List, select the project, then click “+” in the “Localizations” section of the info tab). 
c. Specify the localized bundle name for the container app by adding the following line in the InfoPlist.strings file for all languages:
CFBundleName = “"; 

Resources

For additional information on how to revise your device name, please see Technical Q&A QA1823: Updating the Display Name of Your App.

***

8.1 Details

Your app does not comply with the Guidelines for Using Apple's Trademarks and Copyrights. Specifically, your app includes:

- one or more Apple trademark images - or likenesses of Apple trademark images.

Specifically, your app references Apple Watch device imagery and ' WATCH.' We’ve attached screenshot(s) for your reference.


こちらも前回に記載しましたが、スクリーンショットにAppleWatchに
関連している写真があるとリジェクトされるようです、
またこの際には、メインアプリ起動時にアプリ側にAppleウォッチに関連する画像も含ましていましたの
でそれに関しても指摘されました。指摘内容は、AppleWatchを使ったらダメとか、
 WATCHはダメ、といった内容なので少し混乱。結局、AppleWatchに関連するものはメイン側には一切含まれないように
するべきなのではと感じております。まだまだ正しい答えは不明ですが、、、、、

Next Steps

Please revise your app and its metadata to address these trademark issues.

For your convenience, we've provided the relevant sections of the Guidelines for Using Apple's Trademarks and Copyrights:

Apple Logo and Apple-owned Graphic Symbols

You may not use the Apple Logo or any other Apple-owned graphic symbol, logo, or icon on or in connection with web sites, products, packaging, manuals, promotional/advertising materials, or for any other purpose except pursuant to an express written trademark license from Apple, such as a reseller agreement.

現状(2015/4/17)

4/15日の朝にin Reviewになってからずっと待機中。。。。リジェクトするなら早くして欲しい、時間的にもしリジェクトするならこの2、3日にしてもらえないと間に合わない。。。

現状#2(2015/4/20)

18日に申請通りました!App in Reviewになってから三日後に許可。なので最低5日程度。あと24日まで5日を切りましたので、 間に合わすには今からだと難しいのかもしれません。

まとめ

アプリ申請、思いの他スクリーンショット等に迷わされた癖のあるアプリ申請でした。ただApp検索でApple Watchを検索すると、 Apple Watchの文面がアプリに表示されていたり、AppleWatchの文面がスクリーンショットに含まれていたりするものも存在するようです。 最終的にAppleWatch対応しているアプリだけがリストアップされるのかなと思っているのですが、まだよくわかっていません。AppleWatch標準アプリの AppStoreからアクセスできるようになるのかな。24日が楽しみです!

前の記事はこちらからです!

次の記事はこちらからです(作成したアプリWebabitの紹介)!

↓こんな記事もありますよ!

Backslashを忘れない

ショートカットキーで(\)を入力するには「optionキーを押しながら、¥キーを押す」で可能なのですが、 なにかと、あれ、、、なんだったっけ?と忘れる事が多かったので、バックスラッシュ拡大表示。

CoreTextでTextViewの一文字の向きを変える(解決前)

TextViewの文字を縦書きにしたいなぁと考えている時にCoreTextとNSMutableAttributedStringの二つのどちらかなら実装できそう。CoreTextを利用してトライして無理ならAttributedStringをトライしてみます。

カスタムクラスを作成時いつも忘れる。継承クラス作成時のメモ

カスタムクラスを作成する時いつもUIViewを継承する際のrequired Initの箇所でハマってしまうので覚書です。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!