AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

iOSアプリのリジェクトGuideline 4.2.3 - Design - Minimum Functionalityはかなり厄介

最近、iOSアプリの申請で久しぶりに厄介なリジェクト(Guideline 4.2.3 - Design - Minimum Functionality)を受けました。

(数回リジェクトされ、現在進行中)

今後のためメモとして残しておこうと思います。

 

リジェクトされたiOSアプリについて

まず、申請してリジェクトをくらってしまったiOSアプリの仕様としては下記のような感じです。

  • アプリ起動時にサーバーから画像データを大量にダウンロード(約16MB程度)
  • 環境によりダウンロードに時間がかかるため、進捗状況を表示している
  • ダウンロード完了後、プロローグやチュートリアルが開始される
  • チュートリアル完了後、アプリ起動時にダウンロードしたデータを使ったゲームが開始される

画像を大量に使用するアプリのため、アプリ起動時にアプリ内で使う画像ファイルを大量にダウンロードする形式にしたため、アプリのサイズ的にはだいぶ抑えることができました。

1回目の申請では無事審査が通り、リリースしているアプリなのですが、不具合が発覚したため、修正版を申請したところ、リジェクトされました。

 

1回目のリジェクト(Guideline 4.0 - Design)

 

1回目は、下記のリジェクトを受けました。

 

Guideline 4.0 - Design

We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect:

- Portions of your app, or resources needed to use your app, loaded, refreshed, ran or responded very slowly.

内容的には、アプリを開始するまでに時間がかかりすぎているという内容でした。

アプリ開始時に素材のダウンロードを行うiOSアプリってたくさんAppStoreに出てるので、なぜこのリジェクトなのかは謎でしたが、とりあえず遅く感じる部分をできるだけ減らすためにダウンロードの進捗状況をより細かく表示するように修正して再申請しました。

 

2回目のリジェクト(Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage)

 

 

2回目は、下記のリジェクトを受けました。

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage



We noticed that your app requests the user’s consent to access their camera and photos but does not clarify the use of the camera and photos in the applicable purpose string.

アプリ内で画像保存する際に端末のカメラロールにアクセスしていたのですが、

その説明文でプライバシーへのアクセスを許可してもらう理由が不十分との私的でした。(アクセス許可の説明文までちゃんと見ているんですね。)

取り急ぎ、1回目のリジェクトの際に受けたダウンロードが長い問題の件は触れられていなかったので、とりあえず今回の再申請バージョンで通せる可能性が高い気がしました。

 

3回目のリジェクト(Guideline 4.2.3 - Design - Minimum Functionality)

 

3回目は、下記のリジェクトを受けました。

Guideline 4.2.3 - Design - Minimum Functionality

Your app did not include sufficient content in the binary for the app to function at launch, and we were required to download or unpack additional resources before we could use it.

We were required to download or unpack additional resources to continue using your app; however, the size of the download was not disclosed, and we were not prompted to choose to download additional resources. If your app requires additional resources, you must disclose the size of the download and prompt users before doing so.

今回は、1回目のリジェクト時に受けた、アプリ起動時にダウンロードすることに関するものに近いものでした。要するに、追加のリソースのダウンロードが必要な場合は、ダウンロードサイズをユーザーに明記する必要があるとのことでした。

なので、ダウンロード前に必要なサイズをダイアログで表示後、ダウンロード開始するよう修正して再申請を行いました。

 

4回目のリジェクト(Guideline 4.2.3 - Design - Minimum Functionality)

 

4回目は、下記のリジェクトを受けました。

Guideline 4.2.3 - Design - Minimum Functionality



Your app did not include sufficient content in the binary for the app to function at launch, and we were required to download or unpack additional resources before we could use it. 

 3回目とほぼ同じ内容ですが、今回は具体的な対応策が書かれておらず、アプリ起動時には起動時に必要なリソースをアプリに含んでいる必要があるとのことでした。

これに関しては対策が難しいと思ったのですが、アプリ起動直後にダウンロードせずに、プロローグ部分を再生して、アプリのあらすじを見せてからダウンロードを開始させるように修正して再申請しました。

 

5回目のリジェクト(Guideline 4.2.3 - Design - Minimum Functionality)

 

5回目のリジェクトは下記でした。

Guideline 4.2.3 - Design - Minimum Functionality



Your app did not include sufficient content in the binary for the app to function at launch, and we were required to download or unpack additional resources before we could use it. 

 3回目、4回目とほぼ同じリジェクト内容で、コピペしてるんじゃないか?ちゃんとアプリ見てんのか?と疑いたくなる感じでした。

今この5回目のリジェクトを受けた状況です。(これはどうしたものか...)

 

 

Guideline 4.2.3 - Design - Minimum Functionalityはかなり厄介

 

リジェクト内容が同じ文章になってきたのでだんだんやばい感じがしてきました。

とりあえず今回は、プロローグとチュートリアルまでをプレイできるようにして、それが終わったらリソースのダウンロードを行うようにしたいと思います。

過去の経験上、リジェクトが何回も続くと結構厄介なことになるので、そろそろ終わらせないとやばい気がします...

状況変わり次第追記したいと思います。