AppReviewでリジェクトされた😢

# AppReviewのリジェクトまとめ

最近スプラばかりしている櫻井です。ゲームのしすぎは良くないと感じ、急遽アプリをリリースいたしました。アプリをリリースする際の大きな壁と言っても過言ではないAppReviewの審査😭
私もリリースする際に何度もリジェクトされたため、備忘録としてまとめておきます。

# 作成したアプリ

1. [触ると音が鳴るアプリ](https://apps.apple.com/app/woohooapp/id6503021603)
2. [みんなで管理できるTodoアプリ](https://apps.apple.com/app/2peopletodo/id6661022677)

1のアプリに関しては一回もリジェクトされませんでした。しかし、問題は2のアプリです。
1のアプリは触ったら音が出るという簡単な機能かつログインが必要ないアプリだったためすぐに審査されました。問題は2のアプリです。以下にリジェクトされた理由をまとめます。

# Guideline 2.1 - Information Needed

```swift
Guideline 2.1 - Information Needed

We need more information to continue the review.

Next Steps

Provide detailed answers to the following questions:

The app required username only for account creation.

- Does the app only save the username to their local devices?

- Or are you accessing and storing personal information?

```

```swift
ガイドライン 2.1 - 情報が必要です

レビューを続行するために、さらに情報が必要です。

次のステップ

以下の質問に詳細にお答えください：

アプリでは、アカウント作成時にユーザー名のみが必要です。

アプリはユーザー名をローカルデバイスにのみ保存していますか？

それとも、個人情報にアクセスして保存していますか？
```

## リジェクトにされた理由

みんなでTodoListを使うために、ユーザー名が必要なのでfirestoreにユーザー名を登録していたため

## 解決方法

Firebase Authenticationを使用して匿名サインインを行い、Firebase Firestore にユーザー名とタスクリストのデータを保存するようにした。また、ユーザー名以外の個人情報は収集・保存しておらず、メールアドレス、電話番号、その他の識別情報は要求または保存していないことをAppReviewに返信した。

# Guideline 1.5 - Safety

```swift
Guideline 1.5 - Safety
1.5 Developer Information People need to know how to reach you with questions and support issues. Make sure your app and its Support URL include an easy way to contact you; this is particularly important for apps that may be used in the classroom. Failure to include accurate and up-to-date contact information not only frustrates customers, but may violate the law in some countries or regions. Also ensure that Wallet passes include valid contact information from the issuer and are signed with a dedicated certificate assigned to the brand or trademark owner of the pass.

Issue Description

The Support URL provided in App Store Connect, https://x.com/Q64570316, does not direct to a website with information users can use to ask questions and request support.

Next Steps

Update the specified Support URL to direct users to a webpage with support information.

```

```swift
ガイドライン 1.5 - 安全性
1.5 開発者情報
ユーザーが質問やサポートに関する問題で連絡できる方法を知っている必要があります。アプリとそのサポートURLには、簡単に連絡できる方法を含める必要があります。これは特に、教室で使用される可能性があるアプリにとって重要です。正確で最新の連絡先情報を含めないことは、顧客に不満を与えるだけでなく、国や地域によっては法律違反となる可能性があります。また、ウォレットパスには発行者の有効な連絡先情報が含まれ、パスのブランドまたは商標所有者に割り当てられた専用証明書で署名されていることを確認してください。

問題の説明

App Store Connectで提供されたサポートURL（https://x.com/Q64570316）は、ユーザーが質問をしたりサポートをリクエストできる情報が記載されたウェブサイトにリダイレクトされていません。

次のステップ

指定されたサポートURLを、ユーザーがサポート情報にアクセスできるウェブページに更新してください。
```

## リジェクトされた理由

サポートURLを自分のTwitterのURLを使った。アプリ1では自分のTwitterのURLで審査が通ったのですが、アプリ2では弾かれてしまいました。多分レビューする人の匙加減なのだと思います。それか見落としていたか。

## 解決方法

Googleフォームを作り、問合せできるように変更しました。

# Guideline 2.1 - Performance - App Completeness

```swift
Guideline 2.1 - Performance - App Completeness
Submissions to App Review, including apps you make available for pre-order, should be final versions with all necessary metadata and fully functional URLs included; placeholder text, empty websites, and other temporary content should be scrubbed before submission. Make sure your app has been tested on-device for bugs and stability before you submit it, and include demo account info (and turn on your back-end service!) if your app includes a login. If you are unable to provide a demo account due to legal or security obligations, you may include a built-in demo mode in lieu of a demo account with prior approval by Apple. Ensure the demo mode exhibits your app’s full features and functionality. We will reject incomplete app bundles and binaries that crash or exhibit obvious technical problems.

Issue Description

The app exhibited one or more bugs that would negatively impact App Store users.

Bug description: We were unable to create a new group.

Review device details:

- Device type: iPad Air (5th generation)

- OS version: iOS 18.0

Next Steps

Test the app on supported devices to identify and resolve bugs and stability issues before submitting for review.

If the bug cannot be reproduced, try the following:

- For new apps, uninstall all previous versions of the app from a device, then install and follow the steps to reproduce.

- For app updates, install the new version as an update to the previous version, then follow the steps to reproduce.

Resources

- For information about testing apps and preparing them for review, see Testing a Release Build.

- To learn about troubleshooting networking issues, see Networking Overview.

```

```swift
ガイドライン 2.1 - パフォーマンス - アプリの完全性
App Reviewに提出するアプリ（プレオーダーで提供するアプリも含む）は、必要なメタデータがすべて含まれており、機能的なURLがすべて含まれている最終バージョンである必要があります。プレースホルダーテキスト、空のウェブサイト、その他の一時的なコンテンツは提出前に削除してください。アプリを提出する前に、デバイス上でバグや安定性のテストを行い、ログインが必要なアプリの場合はデモアカウント情報を含め（バックエンドサービスを有効にしてください！）、法的またはセキュリティ上の理由でデモアカウントを提供できない場合は、Appleの事前承認を得たうえでビルトインデモモードを使用できます。このデモモードは、アプリのすべての機能を示す必要があります。クラッシュしたり、明らかな技術的問題がある不完全なアプリバンドルやバイナリは拒否されます。

問題の説明

アプリには、App Storeユーザーに悪影響を与える可能性のあるバグが1つ以上存在します。

バグの説明: 新しいグループを作成できませんでした。

レビュー端末の詳細:

端末タイプ: iPad Air (第5世代)

OSバージョン: iOS 18.0

次のステップ

サポートされているデバイスでアプリをテストして、提出前にバグや安定性の問題を特定し解決してください。

バグが再現できない場合、以下を試してください:

新しいアプリの場合、デバイスから以前のバージョンのアプリをアンインストールし、新しいバージョンをインストールして再現手順を実行します。

アプリの更新の場合、以前のバージョンをアップデートとして新しいバージョンをインストールし、再現手順を実行します。

リソース

アプリのテスト方法やレビューに備える方法については、「Testing a Release Build」を参照してください。

ネットワークの問題をトラブルシューティングする方法については、「Networking Overview」を参照してください。

```

## リジェクトされた理由

端末ごとにidを振るようにした(同じユーザー名を名乗れないように)ため、それとfirestoreが時間がかかって通信できずに画面が固まってしまう。

## 解決策

コードを修正

# Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing

```swift
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing

The app privacy information provided in App Store Connect indicates the app collects data in order to track the user, including Crash Data. However, the app does not use App Tracking Transparency to request the user's permission before tracking their activity.

Apps need to receive the user’s permission through the AppTrackingTransparency framework before collecting data used to track them. This requirement protects the privacy of users.

Next Steps

Here are three ways to resolve this issue:

- If the app does not currently track, update the app privacy information in App Store Connect. You must have the Account Holder or Admin role to update app privacy information.

- If this app does not track on the platform associated with this submission, but tracks on other platforms, notify App Review by replying to the rejection in App Store Connect.

- If the app tracks users on all supported platforms, the app must use App Tracking Transparency to request permission before collecting data used to track. When resubmitting, indicate in the Review Notes where the permission request is located.

Note that if the app behaves differently in different countries or regions, you should provide a way for App Review to review these variations in the app submission. Additionally, these differences should be documented in the Review Notes section of App Store Connect.
```

```swift
App Store Connectで提供されたアプリのプライバシー情報には、クラッシュデータを含むデータが収集され、ユーザーを追跡するために使用されることが示されています。しかし、アプリはApp Tracking Transparency（ATT）を使用して、ユーザーの活動を追跡する前にユーザーの許可を求めていません。

アプリは、AppTrackingTransparencyフレームワークを使用して、ユーザーを追跡するために使用されるデータを収集する前にユーザーの許可を得る必要があります。この要件は、ユーザーのプライバシーを保護するためのものです。

次のステップ

この問題を解決するための3つの方法があります：

現在アプリがユーザーを追跡していない場合、App Store Connectでアプリのプライバシー情報を更新してください。アカウントホルダーまたは管理者の権限を持つ必要があります。

このアプリが現在の提出に関連するプラットフォームではユーザーを追跡していないが、他のプラットフォームで追跡している場合は、App Store Connectの拒否に対して返信することでApp Reviewに通知してください。

すべてのサポートされているプラットフォームでアプリがユーザーを追跡する場合、App Tracking Transparencyを使用して、追跡に使用されるデータを収集する前に許可をリクエストする必要があります。再提出時には、レビューのメモ欄にどこで許可リクエストが行われるかを明記してください。
```

## リジェクトの理由

info.plistでATTを設定していなかった。ユーザーのトラッキング

## 解決策

info.plistを導入した。

https://develop.hateblo.jp/entry/ios-reject-5-1-2-privacy


## 終わり
いっぱいリジェクトされたのですが、無事アプリをリリースしました！
インストールしていただけると泣いて喜びます
https://apps.apple.com/app/2peopletodo/id6661022677