logo hsb.horse
← ブログ一覧に戻る

ブログ

Personal Team では Family Controls の実機テストができない

無償のPersonal TeamアカウントではFamily Controls Developmentエンタイトルメントを取得できない。Apple Developer Programへの加入が実機テストの前提条件になる理由と影響範囲を整理した。

公開日:

iOS 開発を始めて最初に驚くことの1つが、「ビルドが通っても実機で使えない機能がある」という事実だ。Screen Time API を使ったアプリを実機で動かそうとして、署名まわりでいきなり詰まる。原因の多くは Personal Team の制限にある。

Personal Team とは、無償の Apple ID で Xcode にサインインしたときに自動生成される開発チームのことだ。お金を払わなくてもアプリをビルドして自分の端末で動かせる、という仕組みだが、使える機能に制限がある。

Family Controls Development は有償会員のみ

FamilyControls を使うアプリには Family Controls (Development) エンタイトルメント——アプリが特定の機能を使う許可証のようなもの——が必要だ。このエンタイトルメントは Personal Team では取得できない。

Apple の Supported capabilities (iOS) に記載がある。Personal Team で使えない機能として明示されており、例外はない。

つまり、この種のアプリを実機でテストするには、有償の Apple Developer Program(年間 $99)のメンバーシップが前提条件になる。iOS 開発の経験がないと「無料で全部できる」と思いがちだが、この壁が存在する。

シミュレータでどこまで確認できるか

シミュレータでは Family Controls のエンタイトルメントがなくてもビルドは通る。コンパイル時の型チェックや、FamilyControls を直接使わない層のロジックはシミュレータで確認できる。

ただし、AuthorizationCenter の認可フロー、ManagedSettings のルール適用、シールド画面の表示動作はシミュレータでは確認できない。iOS 未経験だと「シミュレータで動いたから大丈夫」と判断してしまいがちだが、Screen Time API はシミュレータと実機で挙動が大きく異なる。

シミュレータビルドはコンパイルエラーの検出と UI レイアウトの確認程度に使う、という割り切りが現実的だ。

App Group も影響を受ける可能性がある

Family Controls 以外にも、Personal Team で制限される Capability がある。App Group——アプリと Extension がデータを共有するための仕組み——は基本的に Personal Team でも使えるが、一部の構成では制限が出る場合がある。

あわせて、In-App Purchase も Personal Team ではプロビジョニングできない。収益化を前提に開発するなら、最初から有償会員として環境を整える必要がある。

いつ有償会員になるべきか

実機テストをしないまま開発を進めると、後で「ビルドは通っているが動作確認できない」状況になる。Shield Extension の挙動や ManagedSettings のルール適用は、実機でないと検証できない部分が多い。

このアプリを真剣に開発するなら、最初の実機テストが必要になった段階で加入を決断した方がいい。「実装が完成してから」まで待つと、そこで初めて環境問題に直面して時間を取られる。iOS 開発の経験がないとこの詰まり方が予測しにくいので、早めに把握しておく価値がある。

Personal Team でできることを先にやり切ってから加入を判断する進め方は資金的なリスクが小さいが、開発の流れが止まることは想定しておく必要がある。