
審査に出していたアプリが却下されました。
Appleからこんなメッセージがきました。
Guideline 2.1 - Performance - App Completeness
Your app crashed on iPad running iOS 13.3.1 on WiFi when we attempted to register an account or login.
We have attached detailed crash logs to help troubleshoot this issue.
Next Steps
To resolve this issue, please revise your app and test it on a device to ensure that it runs as expected.
Resources
For information on how to symbolicate and read a crash log, please review Tech Note TN2151 Understanding and Analyzing Application Crash Reports.
Please see attached screenshot for details.
まとめると「iPadでログインまたは新規登録するとアプリがクラッシュするから直しなさい」ということでした。
原因はどうやら、
Firebaseを使ってメールアドレスとパスワードでユーザー登録する際、iPadだとメールアドレスが正規のものでないとアプリがクラッシュするみたいです。iPhoneだとクラッシュはしませんでしたが。
これを解決するためにメールアドレスが正しい形式かどうか、アプリ側でチェックすることにしました。
アドレスを判定するメソッドを作る
1 2 3 4 5 6 |
//該当コード抜粋 func validateEmail(candidate: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}" return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: candidate) } |
このメソッドはコピペしてそのまま使えるはずです。
私は画像のL126ようにvalidateEmailの引数にユーザーが入力した文字列を与えて、形式が正しかった場合にnextButtonを押せるようにして登録できるようにしました。