前提・実現したいこと
Sign in with Appleを使ったiOSアプリについてです。
Appleに申請を出したのですがこちらでは再現できない"登録を完了出来ませんでした"というエラーでリジェクトされています。
こちら側では成功しており原因が特定できず、解決が困難なため投稿させていいただきました。
原因の特定やヒントになりそうなことなどご教授お願い出来ますでしょうか?
該当のソースコード
swift
1import UIKit 2import AuthenticationServices 3 4class LoginViewController: UIViewController { 5 @IBOutlet weak var buttonStackView: UIStackView! 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 setupUI() 9 } 10 11 private func setupUI() { 12 if #available(iOS 13.0, *) { 13 let appleIDButton = ASAuthorizationAppleIDButton(authorizationButtonType: .default, authorizationButtonStyle: .white) 14 appleIDButton.heightAnchor.constraint(equalToConstant: 44).isActive = true 15 appleIDButton.addTarget(self, action: #selector(appleLoginPushed), for: .touchUpInside) 16 buttonStackView.insertArrangedSubview(appleIDButton, at: 0) 17 } 18 } 19 20 @IBAction func appleLoginPushed(_ sender: UIButton) { 21 authorizationAppleID() 22 } 23 24 func authorizationAppleID() { 25 if #available(iOS 13.0, *) { 26 let appleIDProvider = ASAuthorizationAppleIDProvider() 27 let request = appleIDProvider.createRequest() 28 request.requestedScopes = [.fullName, .email] 29 let authorizationController = ASAuthorizationController(authorizationRequests: [request]) 30 authorizationController.delegate = self 31 authorizationController.presentationContextProvider = self 32 authorizationController.performRequests() 33 } 34 } 35} 36 37//MARK: AppleLogin 38extension LoginViewController: ASAuthorizationControllerDelegate { 39 @available(iOS 13.0, *) 40 func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { 41 ///////Sign in with Apple成功後の処理 ここまで来ていないと思われる//////// 42 } 43 44 @available(iOS 13.0, *) 45 func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) { 46 47 } 48} 49 50@available(iOS 13.0, *) 51extension LoginViewController: ASAuthorizationControllerPresentationContextProviding { 52 func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor { 53 return self.view.window! 54 } 55} 56
##エラーログ
表示されずに成功、下記が呼び出される
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization)
試したこと
TestFlightからダウンロードしたアプリでテスト
iPad Pro iOS 13.5.1 iPhone X iOS 13.4.1 iPhone X iOS 13.5.1 iPhone 11 iOS 13.4.1 iPad Air2 iOS 13.3
エラー発生せず
補足情報(FW/ツールのバージョンなど)
Xcode 11.5
Swift 5
エラーログはなにか表示されていますか? `didCompleteWithError ` などが呼ばれていないでしょうか
私も同じような状況(テストフライトではSignInWithAppleは正しく動作しているが、Appleのアプリレビューでは動作しない)です。
私の環境は、Expo(React Native)とFirebaseAuthenticationを利用しています。
原因も解決方法もわからないので、困っています。
https://stackoverflow.com/questions/59987097/incomplete-registration-error-using-sign-in-with-apple
ググってみたところ、こちらの質問者と状況が似ていると思われます。
質問者曰く、アプリを再提出したところ審査は通ったが、なぜアップルのアプリレビューではSignInWithAppleが動作していなかったかの理由はわからないそうです。原因は、ヒューマンエラーまたはアップルのアプリレビューでのミスではないかとのことです。
@koogawa 追記いたしましたが、開発時はエラーログは表示されていませんでした。'didCompleteWithError' はレビュワーの端末なため現状不明です。
@yoshi___ おお、同じ状況なのですね。。参考URLありがとうございます!
私も理由がわからず、実装をAppleのサンプルに近づけたりして申請を繰り返しているのですが3回ほど落とされています。。
回答1件
あなたの回答
tips
プレビュー