iCloudのバックアップ問題でiPhoneアプリが却下されてしまいました。 原因は、ユーザーが作成したデータではないものが、iCloudのバックアップで大きなサイズを占めていたためです。 |
iPhoneアプリ『御朱印マップ』のバージョンアップ版(Ver.1.1)が本日、またRejectされてしまいました。
リリースをお待ち頂いている皆様、お待たせしてしまい申し訳ありません。
2月12日(木)にレビュー申請。
2月21日(土)にレビュー開始。
2月22日(日)に却下されてしまいました。
Appleから来たメッセージは以下の通りです。
2.23 - Apps must follow the iOS Data Storage Guidelines or they will be rejected
2.23 Details
On launch and content download, your app stores 18.67 MB, which does not comply with the iOS Data Storage Guidelines.
Next Steps
Please verify that only the content that the user creates using your app, e.g., documents, new files, edits, etc. is backed up by iCloud as required by the iOS Data Storage Guidelines. Also, check that any temporary files used by your app are only stored in the /tmp directory; please remember to remove or delete the files stored in this location when it is determined they are no longer needed.
Data that can be recreated but must persist for proper functioning of your app - or because users expect it to be available for offline use - should be marked with the "do not back up" attribute. For NSURL objects, add the NSURLIsExcludedFromBackupKey attribute to prevent the corresponding file from being backed up. For CFURLRef objects, use the corresponding kCRUFLIsExcludedFromBackupKey attribute.
Resources
To check how much data your app is storing:
&nbps; &nbps; - Install and launch your app
&nbps; &nbps; - Go to Settings > iCloud > Storage > Manage Storage
&nbps; &nbps; - Select your device
&nbps; &nbps; - If necessary, tap "Show all apps"
&nbps; &nbps; - Check your app's storage
For additional information on preventing files from being backed up to iCloud and iTunes, see Technical Q&A 1719: How do I prevent files from being backed up to iCloud and iTunes.
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
If you feel that this rejection was made in error, and believe your app is in compliance with the App Store Review Guidelines, you may submit an appeal to the App Review Board. Please allow up to one business day for an initial response from the App Review Board.
簡単に言うと、
「あなたのアプリは、ダウンロードして起動するだけで18.67MBもiCloudにバックアップされれています。iCloudのバックアップ領域はユーザーが作成したデータの保存先なので、それだけをバックアップするようにして下さい」
という指摘です。
いや〜、これは本当に申し訳ありません。
アプリをつくるときに、iCloudのバックアップ容量まで考えていませんでした・・・
私のアプリは、初回起動時に、サンプルデータを生成してCoreDataに格納するようにしています。
ユーザーさんが作成する参拝記録も、同じCoreDataに格納。
そしてこのCoreDataのファイルが、iCloudのバックアップ対象となっているわけです。
例によって、ネットで同様のRejectになった人がいないか調べたところ、こういう記事を見つけました。
◆(:3[kanのメモ帳]
大変参考になりました。
それで、対策をいろいろ考えました。
@CoreDataをバックアップから外してしまう。
Aサンプルデータを生成しないようにする。
Bサンプルデータを、CoreDataに格納せずに表示できるようにする。
Bが、コード修正量も多くて一番大変。
@を一瞬検討しましたが、やっぱり自分が作成したデータがバックアップできないというのは、ユーザーさんとしては嫌かなと。
Aも検討したのですが、やっぱりサンプルデータがないと、ユーザーさんにアプリの効果が伝わりにくいと思うんですよね。
結局Bの対策を選択し、1日がかりで相当のコードを修正しました。
併せて、今現在ダウンロードしてくださっているユーザーさんは既に大きなサンプルデータが生成されてしまっていますので、CoreDataに入ったサンプルデータを削除する処理も追加。
修正を終え、2月22日(日)夜にAppleに再度レビュー申請しました。
ユーザーの皆様、ご迷惑をおかけして申し訳ありません。
引き続きAppleの指導に従いながら、良いアプリにしていきたいと思いますのでよろしくお願いします。
2015/03/01追記 |
本日、アプリがAppleのレビューを無事に通過し、リリースされました。
iPhoneで御朱印集めを楽しくするアプリ『御朱印マップ』を公開しています。ダウンロードはこちらからどうぞ。