審査に提出するまでにやること
1. Screen Time APIの使用許可を得る
Screen Time APIを使用するには通常のアプリ審査以外にScreen Time APIの使用をAppleから許可してもらう必要がある。許可申請フォームに必要項目を記入して送信すると、送信完了画面が表示される。確認メールは届かない。
申請の結果メールが届くまでなんと5週間もかかった、途中不安になって2回ほど再送信したので、再送信で並び直しになっているのだとしたらもう少しはやく結果が来るのかもしれない。それでも2週間以上はかかる。
申請許可メールの文面はこんな感じ
The entitlement for Family Controls (Distribution) has been assigned to your account, and you can now configure this capability for eligible apps
この許可は開発者全員に付与されるのか、ある程度実績が必要なのかは今のところわからない。
追記:2023.5現在デベロッパーフォーラムには2ヶ月待っても返信がないとの書き込みもある
2. AppIDとProvisioning Profileを作り直す
1の許可が得られたことでデベロッパーページのCertificates, Identifiers & Profiles > Identifierの機能拡張を追加するページにAdditional Capabilitiesのタブが追加されている。
ここのFamilyControlにチェックを入れることでProvisioning Profileにcom.apple.developer.family-controlsが付与される。
そしてこれで提出すればOK!というわけではなく、Provisioning Profileを制作したアプリに追加している機能拡張の個数分作ってXcodeから手動でリンクさせる必要がある。通常はXcode14以上だとAutomaticallyにチェックを入れておけば、勝手にいい感じにしてくれるのだがAdditional CapabilitiesをアクティブにしたProvisioning Profileをリンクさせるには手動でやる必要がある。
Automaticallyにチェックを入れただけでも実機ビルドは通るのだが、IPAをアップルに送信しようとすると以下のようにはじかれる。
ということで、Certificates, Identifiers & ProfilesのページからIdentifiersとProfilesで新規作成を繰り返して必要分のProvisioning Profileを作成する。今回は4つ作成した。
AppGroupを使用している場合はIDを作成後もう一度作成したIDに戻って使用するAppGroup名にチェックを入れないとアクティブにならないので注意だ。
Provisioning Profile作成後Xcodeに戻ってAutomatically manageのチェックを外して、自分のTeam名を選択し、当該のProfileをダウンロードする、これを機能拡張の個数分行う。
Unityで少し修正して書き出ししなおしたらLinkerエラーがいくつか出たけどターミナルでpodをインストールしなおしたらエラーが取れて、無事にIPA提出できた。
pod deintegrate
pod install
Screen Time APを用いたアプリはまだレビュアーの間でもちゃんと周知されていないらしいので、審査でも一悶着ありそう、またなにかあれば追記します。
追記 審査通過。ただいつもはInReviewに入ってから数時間で通るのに今回は3日かかった。新規アプリで日本語のみ対応なのも原因かも。
追記 リリースから5回ぐらいアップデートかけてるけどIn Reviewに入ってから絶対に36時間以上かかる。明らかに他のアプリより遅い。