iOS/Androidアプリを譲渡した話(2022年版)

こんにちは、NTTレゾナントテクノロジーの冨田(アプリ開発エンジニア)&古屋(アプリ開発ディレクター)です。

アプリ開発をしていると「個人アカウントで公開していたアプリを法人アカウントで公開し直したい」「アプリを他社に譲渡することになった」など、ストア公開済アプリの提供元(デベロッパー)を変更したい場面に遭遇することがあります。
今回、私たちが実際にiOS/Androidアプリの譲渡を行なった実体験を踏まえて、手順や注意点、公式ドキュメントにも記載されていなかった豆知識などをまとめてみました。
なお、2022年7月時点の情報であるため、一部内容が変わっている可能性があります。ご了承ください。

iOS編

公式ドキュメントも併せてご確認ください。

譲渡までの流れ

1. 事前準備

1-a. App情報のバックアップ

App は譲渡後にあなたのアカウントから削除されるため、譲渡を行う前にその App に関するすべての情報のバックアップを取っておく必要があります。

https://help.apple.com/app-store-connect/#/deved688524f

譲渡処理が完了すると譲渡元からはアプリに関連する情報を一切確認する事ができなくなります。念の為に課金関連の設定や履歴データ等含めバックアップを残しておくことをオススメします。

1-b. 譲渡条件チェック

App を譲渡するには、以下の条件を満たす必要があります。

https://help.apple.com/app-store-connect/#/devaf27784ff

提示されている条件に譲渡対象のアプリが適合しているかを確認する必要がありますが、一つ一つ目視確認していくのは非効率かつ抜け漏れが不安です。効率的にチェックする手法として、下図のようなチェックフェーズが譲渡処理の一環として設けられているので、そちらを利用する方法をオススメします。後述するTest Flight情報の削除漏れなどがあると「条件に不適合」として検出されるため、後は検出内容に従って対応を進めていくだけです。

1-c. Test Flight情報の削除

譲渡するアプリに関連するTest Flightの登録情報を全て削除します。具体的には下記の対応が必要です。

  • テスト情報の削除

  • 全ビルドの状態を期限切れに変更

  • 内部テスト/外部テストの削除

1-d. Keychainに保存しているデータの保存先変更

Keychainに保存している情報は対象アプリのApp ID Prefix* に紐づけて管理されています。App ID Prefixはアカウント毎にユニークな値となるため、譲渡に伴い必ず変更されてしまいます。App ID Prefixが異なる状態でアプリをアップデートすると、元のKeychain情報にアクセスすることができなくなるので、必要な情報はUserDefaultsに暗号化して保存する等の対策を行い、事前にリリースしておく必要があります。

 * 以前は自由に登録する事が可能だったようですが、現在は自動でTeam IDが割り当てられます

 1-e. レシート検証に利用するパスワードの確認

月額課金のサブスクリプションモデルでアプリ内課金を提供している場合は、レシート検証用のパスワードとしてApp 用共有シークレットを使用されているかを確認してください。マスター共有シークレット* が使用されている場合は、譲渡後にレシート検証ができなくなるので、事前にApp 用共有シークレットに変更しておく必要があります。

 * マスター共有シークレットはアカウントに紐づくため譲渡先では利用できません

2. 譲渡処理

2-a. 譲渡リクエスト〜承諾

App の譲渡が完了するまでに 2 営業日ほどかかることがあり、その間の App ステータスは「Processing App Transfer (App の譲渡を処理中)」となります。

https://help.apple.com/app-store-connect/#/devab4c3498a

公式手順に則り下記の対応を行います。

  • 譲渡元より譲渡リクエストの提出

  • 譲渡先にて譲渡リクエストの承諾

  • Appleによる譲渡処理

私たちの場合は1営業日ほどで譲渡処理が完了しました。

3. 譲渡完了後

3-a. Provisioning Profileの発行

譲渡に伴いApp IDは自動で譲渡先へ転送されますが、Provisioning Profileは転送されないため、譲渡先にて新規発行が必要となります。Bitrise等のCIツールでデプロイを自動化している場合は、発行したProvisioning Profileへの差し替え漏れが無いよう注意が必要です。

3-b. APNs証明書(p12ファイル)、認証キー(p8ファイル)の発行

PUSH通知を実現するためのAPNs認証方法として証明書(p12ファイル)を用いる方法と認証キー(p8ファイル)を用いる方法がありますが、どちらの方法を採用していたとしても譲渡先にて新規発行* が必要となります。
譲渡元で発行済みの証明書・認証キーを利用していても暫くは通知が届いていた。といった内容のコメントがstack overflowやDeveloper Forumsで散見されましたが、保証された挙動ではないので速やかに発行することをオススメします。なお、譲渡元にてリリースされたバージョンのアプリに対しても新規発行した証明書・認証キーを利用して通知可能です。

 * 譲渡先に既に認証キーが存在している場合は流用可

3-c. ストア情報の更新

iOSの場合は、ストア情報だけを更新することはできず、アプリリリースのタイミングで更新情報が公開されるので注意が必要です。変更が必要な項目の例は以下のとおりです。

  • サポートURL

  • 著作権

  • App Reviewに関する情報

  • プライバシーポリシーURL

困った点・豆知識など

1. ストアURLは変わらない

App Storeに公開したアプリページのURLには下図に示すApple IDがパスとして含まれていますが、譲渡に伴いApple IDが変更されるといったことはないため、URLに変更はありません。

2. App Groups IDは転送されない

App Groupsを利用しているアプリを譲渡する場合は、App Groups IDは自動で転送されないため注意が必要です。譲渡後でも同一IDを利用するためには、譲渡元にて該当のIDを削除後、譲渡先にて同一のIDで登録し直す必要があります。

3. Extension Bundle IDは転送されない

何らかのApp Extension(Widget Extensionなど)を利用しているアプリを譲渡する場合は、Extension用のBundle IDは自動で転送されないため注意が必要です。譲渡後でも同一IDを利用するためには、譲渡元にて該当のIDを削除後、譲渡先にて同一のIDで登録し直す必要があります。
なお、既存のIDを削除することによって既にインストール済みのユーザーのWidgetに影響が出るといったことはありません。

4. IDFV (Identifier for Vendor)が変わる

IDFVはアカウント毎に割り振られる固有のIDです。譲渡後は当然ながらIDが変わりますので、アプリ内で利用している場合は注意が必要です。

5. キャンペーンリンク情報は引き継がれない

譲渡処理が完了するとキャンペーンリンクに関連したレポート情報は一切参照できなくなります。事前に譲渡元にてCSV出力しておくことをオススメします。
また、Web等にキャンペーンリンクを掲載している場合は、キャンペーンリンクの新規作成と差し替えが必要です。
(キャンペーンリンクの作成時に使用するプロバイダIDが変わります)

Android編

公式ドキュメントも併せてご確認ください。

iOSと比べて特につまずくようなポイントもなく、ドキュメントに記載されている内容をそのまま確認していくだけで問題なく譲渡する事ができます。

譲渡までの流れ

1. 事前準備

1-a. App情報のバックアップ

一括エクスポート レポート、売上レポート、収益レポートは、アプリと一緒に移行されないため、後で必要になると思われるレポートはあらかじめダウンロードすることをおすすめします。

https://support.google.com/googleplay/android-developer/answer/6230247?hl=ja

譲渡処理が完了すると譲渡元からはアプリに関連する情報を一切確認する事ができなくなります。念の為に課金関連の設定やレポート等含めバックアップを残しておくことをオススメします。

2. 譲渡処理

2-a. 譲渡リクエスト〜承諾

移行リクエストを送信する
最後に、サポートチームが移行リクエストを確認し、2 営業日以内に返信します。

https://support.google.com/googleplay/android-developer/answer/6230247?hl=ja

公式手順に則り下記の対応を行います。

  • 譲渡元より譲渡リクエストの提出

  • 譲渡先にて譲渡リクエストの承諾

  • Googleサポートチームによる譲渡処理

私たちの場合は2営業日ほどで譲渡処理が完了しました。

3. 譲渡完了後

3-a. テスター情報の移行

Andoroidの場合は、譲渡元からテスター情報を削除せずに譲渡が可能であるため、テスター情報の移行を忘れがちです。譲渡元からテスター(メーリングリスト)の削除、および譲渡先にて新規テスター(メーリングリスト)の登録を忘れずに行います。

3-b. ストア情報の更新

Andoroidの場合は、ストア情報だけを更新することができるので、任意のタイミングで対応すればOKです。変更が必要な項目の例は以下のとおりです。

  • メールアドレス

  • ウェブサイトURL

  • プライバシーポリシーURL

困った点・豆知識など

1. Google Play Developer APIのサービスアカウント設定

Google Play Developer APIのサービスアカウントを課金サービスやCDの一貫で使用している場合は、譲渡に伴い利用不可となる点に注意が必要です。譲渡完了後は速やかに発行することをオススメします。

最後に

アプリの譲渡は、なかなか何度も経験するようなことではないかと思います。それ故、情報ソースがあまり多くはありません。かつ、絶対に失敗はできないので慎重に行う必要があり、私たちも情報収集にはなかなか苦労しました。
今回はあくまで一例ではありますが、この記事がみなさんにとって少しでも参考になれば幸いです。

宣伝

NTTレゾナントテクノロジーでは一緒に働いてくれるAndroid/iOSアプリエンジニアを募集中です。もし興味がありましたら採用ページを是非ご覧ください。

この記事が気に入ったらサポートをしてみませんか?