2019/10/01時点
罠だらけだったので少しまとめます。
申し訳ありませんが全体的に自信薄なので裏を取ってほしいです。
ググったらすぐ出ることはあまり書きません。
追記:素晴らしい記事がありました、こちらでいいのでは?
https://qiita.com/mejileben/items/df79024ae93971643271
(上記の参照先 Yahoo!のスライドが非常に詳しいです)
https://www.slideshare.net/techblogyahoo/sign-in-with-apple-ios-idcon/83
https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple
iOS13からで、Xcode11必須
Xcode11必須ということは、Macのアップデートも必須。
はい。
ソーシャルログインのみのアプリは必須(リジェクト対象)
ソーシャルログインってどこまで?みたいな話が6月ころにあったらしいですが、ガイドラインは改定され、概ね「全部だよ全部!」みたいな雰囲気です。
まだ判例が出ないと何とも言えないですけど。
iOS12はどうすればいいの?
ボタンを出さない対応で良いのではないか、という意見が多いです。
iOS12やAndroidやWebでも使いたかったらどうすれば良いのか
Sign in with Apple JSというものがあるそうです。
それでアプリから連携できるのかは未検証です。
iCloudに繋がっていないと使えない
「Apple IDでサインインしてください」というダイアログが出てきます。
1回認証したら、最初のメールアドレス共有/非共有の画面が出せなくなった
設定>Apple ID>パスワードとセキュリティ>Apple IDを使用中のApp>Stop Using Apple ID で完全にリセットできます。
https://support.apple.com/ja-jp/HT210426
あとは管理側からユーザーを削除できるらしいです(がまだ試せていません)
(ところでこのボタン、ユーザーが押したら以降ログインできなくなるんですよね?)
emailやfullNameが取得できるのは初回だけ
ASAuthorizationAppleIDProviderを使って、[.fullName, .email]と指定しても取れないようです ココ↓
https://forums.developer.apple.com/thread/119826
https://forums.developer.apple.com/thread/121496
Simulatorなら違う反応になるという声もありますね。
これはアプリを削除して再インストールしても変わらないので、keychainかなんかに保存しておかなきゃならないってことでしょうか?
もちろんuser識別子は取れます。でもuser識別子も変わるよって書いてるんですが🤔
メールアドレスが変わったらどうなるのか? → 不明、試しせていません
メールアドレスに依存するな、って言われてる感じがしますねこれ。ユーザーが非共有を設定したらダミーが返ってくるわけですし。
ちなみに同じAppleIDを使用している別の端末で試しても初回状態にはなりませんでした。
userが1回認証を完全に切った後、再度同じユーザーとしてログインできる?
できてしまいます。これはuserIDが返ってくるためです。
ですが、ASAuthorizationAppleIDCredentialには
The identifier will remain stable as long as the user is connected with the requesting client. The value may change upon user disconnecting from the identity provider.
と書かれているので、何かしらのタイミングで変わるのだと思います。
逆に、今のユーザーを破棄して再作成というのは難しそうです。
所感
必須ではないアプリは少し情報が出揃うまで待ったほうがいいかもしれません。
問題は必須になるアプリですね。
新規で出すものは既に必須ですし、継続のものも2020年4月までに必要です。
閃いたんですが、メール認証機能を入れたらSign in with Apple回避できるんじゃないですかね?!(逃げ恥)
ユーザー目線での使い勝手は良さそうです。ボタンを押すだけなので。
また特にSNSをあまりやってない人の存在を無視しなくて良くなります。