ファミリーシェアリング + 課金を確認 〜 Sandboxテストユーザー 編

#はじめに
ファミリー共有（シェアリング）の機能である、購入時の問い合わせ機能を確認するための試験環境の構築が目的です。

すでに対応しているアプリもいくつか出ているとのことで
仕様把握とテスト環境をつくるのけっこう大変です。

Sandboxの環境が出来た方は
ユーザの追加フローについてこちらに書きましたのでご参考に
http://qiita.com/nofrmm/items/44daa7146f0b59ea1865

#ご理解をいただくために

現時点でSandbox上確認した動作を共有しますと
検証中の端末スペックはiOS8.0系です。
>子供が依頼して親に依頼する→親に通知は届かなかったため、子供の端末で親のIDを入れる

OSのマイナーバージョンでも動作が異なると想定してiOS8.1でも動作確認をします。

ここに記載した設定から確認した内容については、私の環境下では問題視していなくても
実行される方にとっては問題となる内容かもしれませんので、内容を精査の上実行してください。

また、詳細はデベロッパー登録をしている方であれば確認が可能です。
`SKPaymentTransactionStateDeferred`と検索すれば、次のような情報が見つかります。
>https://devforums.apple.com/message/1049452#1049452

こちらのフォーラムや、iOS Dev Center などからたどれるcontactusでは
どうしても正しい方法を知りたい方は、有料のサポートを使うよう、Appleから記載がありました。

そのため、こちらの内容が
逸脱している、他の方に迷惑になっているようであれば削除することもあります。
ご理解よろしくお願いいたします。

#機能を知る
いままで使ったことのない機能なのでエンドユーザに向けた資料の方が
分かりやすいこともあります。
##公開資料より

http://support.apple.com/kb/HT4009?viewlocale=ja_JP
>App 内課金で入手したコンテンツは、ファミリー共有グループに参加している家族間で共有されません。

購入の承認を求める
http://support.apple.com/kb/HT201089?viewlocale=ja_JP
>18 歳未満* の家族に対して、購入の承認を求める設定を有効／無効にするには、以下の手順を実行してください。
(略)
*国や地域によって年齢が異なる場合があります。

#iOSデバイスで登録可能なAppleIDの上限
https://discussionsjapan.apple.com/thread/10146396
>このiPhoneでアクティベートされた無料アカウントの数が利用可能数の上限に達しています。と出てサインインできません。

ひとつのiOSデバイスに登録できるiCloudユーザの登録数には上限があります。
１つの端末で複数ユーザを使い回すよりは、ユーザのステータスを変更して使うことをお勧めします。

##Sandboxテスターの設定条件
Sandboxテスターの年齢を何回か変更して検証した結果は
`日本のAppStore`の元では

| 親：保護者 | 子：購入を制限する対象 |
|--------|--------|
| 二十歳以上| 二十歳未満 |

としてiCloudで設定可能となっていました。

`18歳以上`となっていたのは英語原文ままの翻訳かもしれません。
また、これを書いている時から変更がある可能性もあるため、自分の環境で試してみた方がいいです。

Sandboxテスターの年齢は簡単に変更できます。
回数制限はあるだろうか・・・検証中３、４回ほど変更しています。

#手順
（１）Sandboxテスター（AppleID x 2個）を作成
（２）クレジットカードの登録をしているAppleIDを準備（要確認）
（３）iPhoneの設定（iCloud、AppStore）

#Sandboxテスターの作成
登録作業の前に、実際に使えるメールアドレスを用意します。

メールボックスサービス
>さくらのメールアドレス
http://www.sakura.ne.jp/mail/

や
>使い捨てメールアドレス
http://matome.naver.jp/odai/2132730294643970201

でも確認は出来ます。

##iTunes Connect
Sandboxテスターを作成します

![スクリーンショット 2014-10-25 7.19.22.png](https://qiita-image-store.s3.amazonaws.com/0/12362/9977dea1-c193-d73a-6e34-b12a6a96b69a.png)

###項目
メールアドレスは実在するものを設定します。
画面には最小限必要なものだけですが、他にも項目があります。

![スクリーンショット 2014-10-25 7.22.13.png](https://qiita-image-store.s3.amazonaws.com/0/12362/03f2a48d-d0b8-0da0-0d70-d1834e9523f5.png)

>入力項目の内容はAppleさんの方針でまま変更されるため、サイトを実際に開いて確認してください。

**確認したエラー内容**

* Appleアカウント(AppleIDのこと？)として登録してるメールアドレスは使えない
* 秘密の回答：6〜35文字
* もっとパスワードを複雑に

##登録メールが届く
登録メールのURLをブラウザ（Safari推奨）で開いて登録が完了します。

###個人的には
メールは本文からクリックで開くより
本文からリンク先をコピーして
テキストに貼ってからSafariで開く癖がついています・・・

#クレジットカードの登録をしているAppleID
SandBoxテスターで可能であればそちらでも良いですが
うまく登録がいかなかったので

* 普段の購入などに使っていない
* クレジットカードを登録済み

上記の条件の`正規`のAppleIDを作成しました。

#iOSデバイスの設定

設定画面の`iTunes & App Store`設定からはじめます

![Screen Shot 2014-10-25 at 8.16.48.png](https://qiita-image-store.s3.amazonaws.com/0/12362/87de2d1f-5bde-6636-91b9-abadeea124ab.png)

##設定済みの端末の前処理
今回使わないアカウントが設定済であるなら`サインアウト`します。
>AppleIDのパスワードを何回か入力する必要あり

![Screen Shot 2014-10-25 at 8.48.00.png](https://qiita-image-store.s3.amazonaws.com/0/12362/de77ea3d-9297-1ab4-79ba-2fcc1a6c6bed.png)

###iCloud
端末に保存されているデータは削除されてしまいますので、普段使いの端末ではやらない方がいいです。
再設定したら戻るかもしれませんが保証できません

iCloudからもアカウントを抜きます。

![Screen Shot 2014-10-25 at 8.16.48.png](https://qiita-image-store.s3.amazonaws.com/0/12362/8c3ce129-3203-1ca8-c55a-e0ee06633155.png)

##Sandboxテスターを設定

![Screen Shot 2014-10-25 at 9.59.43のコピー.png](https://qiita-image-store.s3.amazonaws.com/0/12362/ef943225-1aab-bda0-7446-a49d0e8b3082.png)

↓

![Screen Shot 2014-10-25 at 10.00.05.png](https://qiita-image-store.s3.amazonaws.com/0/12362/d4688e9e-8e2b-d217-bc47-7ea39db52224.png)

↓

![Screen Shot 2014-10-25 at 10.00.32.png](https://qiita-image-store.s3.amazonaws.com/0/12362/597523a2-5c56-ae86-d870-e2d7ec4fe9fa.png)

↓
`結合しない`を選ぶことをお勧めします

![Screen Shot 2014-10-25 at 10.00.57のコピー.png](https://qiita-image-store.s3.amazonaws.com/0/12362/1bba3637-a964-7cdf-cfc4-0d08b3200465.png)

完了すると次のようなメールが届きました
>このApple IDはiPod上でiCloudへサインインするために使用されています

`ファミリー共有`を選びます

このままでは使えないので、誕生日を設定します
![Screen Shot 2014-10-25 at 10.39.40.png](https://qiita-image-store.s3.amazonaws.com/0/12362/4ec49c98-fbea-9b4a-1a70-97d95215def7.png)

###誕生日の設定

![Screen Shot 2014-10-25 at 10.44.34.png](https://qiita-image-store.s3.amazonaws.com/0/12362/33aabce5-2c5f-6430-5b79-b93c739efb1f.png)

↓

![Screen Shot 2014-10-25 at 10.45.11.png](https://qiita-image-store.s3.amazonaws.com/0/12362/f5fbbd20-bd8e-7275-e845-e3565993e43f.png)

↓

![Screen Shot 2014-10-25 at 10.45.33.png](https://qiita-image-store.s3.amazonaws.com/0/12362/9d510d2c-2078-e946-9a51-de6b02a61d25.png)

↓

![Screen Shot 2014-10-25 at 10.53.28.png](https://qiita-image-store.s3.amazonaws.com/0/12362/6af0ab74-7777-2997-9a7f-62a3d4c5cfb1.png)

##ファミリー共有設定

設定 > iCloud > ファミリー共有を設定...

![Screen Shot 2014-10-25 at 8.24.16.png](https://qiita-image-store.s3.amazonaws.com/0/12362/9363e216-45cd-d9cc-b2b8-cfcbde7372a5.png)

↓

![Screen Shot 2014-10-25 at 10.54.30のコピー.png](https://qiita-image-store.s3.amazonaws.com/0/12362/dff775db-24a5-86d8-f057-bb3e069605a0.png)

↓

![Screen Shot 2014-10-25 at 10.54.50.png](https://qiita-image-store.s3.amazonaws.com/0/12362/a42ff47e-aa09-b695-d224-0f0b37c5b953.png)

↓

ここでクレジットカード、デビッドカードを使えるAppleIDが必要なことがわかります

![Screen Shot 2014-10-25 at 10.55.02.png](https://qiita-image-store.s3.amazonaws.com/0/12362/0aaad56d-e78c-bfc5-0bd6-dacfb8bb18a2.png)

##iTunes & App Store

###注意
>保護者役のAppleIDにはクレジットカードの登録が必要です。
SandboxテストユーザーのAppleIDに設定することを何度か試したところ
登録がうまくいかなかったため、端末には先にクレジットカードの設定をおこなった`正規`のAppleIDを設定することにしました。

##それぞれの端末設定
設定 > ITunes & App Store と選びます。

![Screen Shot 2014-10-25 at 8.16.48.png](https://qiita-image-store.s3.amazonaws.com/0/12362/49962b3f-62ca-18c2-5af7-f2a0735f2f42.png)

###保護者役の端末
| iCloud | AppStore |
|--------|--------|
| Sandboxテストユーザー（親）| 正規のAppleID |

###子供役の端末
| iCloud | AppStore |
|--------|--------|
| Sandboxテストユーザー（子）| （未設定のままにしておく） |

#さいごに

アプリ内課金はファミリーシェアリングでのデータの共有はできませんが
**未成年者の購入の確認機能は有効**です。

二十歳未満の若年層を対象にしている分野の開発者は
ここはきっちり押さえてリリースされているはずですよね・・・。

* iOS8.0系、iOS8.1
* Storeに出ているアプリと申請前のアプリ
* Sandboxでの消耗型、非消耗型、自動更新購読、無料購読、非更新購読それぞれでAskToBuyの利用

こちらでの動作の違いはあるでしょうか。iOS8.1で完全対応した認識だったのですが、海外の記事も含め情報がとても少ないです。

* 成人同士（年配の親の購入を制限、夫や妻の購入を確認したいなど）
* 若年の親子・兄弟間
* 組織に属する個人（学生や社員）

といった立場での検証もしてみようと思います。

今のところクレジットカードを止められることもなく、Sandboxから課金が追加されることもなく
Sandboxユーザがinvalidになることもなく進められています。

全然関係ないですが、iCloudのところにSNSの写真が入っていたのは今回初めて気づきました。