はじめに
【fastlane】アプリの審査に必要な情報をApp Store Connectへアップロードする - Swift・iOSの手順を実施する中で発生したエラーの対処に手間取ったので記録に残します。
環境
・macOS Catalina 10.15.7
・Xcode 12.0.1
・bash 3.2.57
・bundler 2.1.4
・fastlane 2.168.0
・Visual Studio Code 1.50.1
本題
前提
App Store Connect側にはメタデータが入力されておらず、fastlaneを使って初めてメタデータをアップロードしようとする場合。
手間取ったエラーに関して
メタデータをApp Store Connectにアップロードする際に、編集したメタデータに不備がある場合にはターミナル上に「エラーの箇所」と「エラーの理由」が表示される。
例1)連絡先の内容に不備がある場合
bundler: failed to load command: fastlane (/usr/local/bin/fastlane) Spaceship::UnexpectedResponse: [!] The provided entity is missing a required attribute - You must provide a value for the attribute 'contactFirstName' with this request The provided entity is missing a required attribute - You must provide a value for the attribute 'contactLastName' with this request The provided entity is missing a required attribute - You must provide a value for the attribute 'contactEmail' with this request The provided entity is missing a required attribute - You must provide a value for the attribute 'contactPhone' with this request
例2)アプリの説明とマーケティングURLに不備がある場合
An attribute value is too short. - App Description must be at least 10 characters in length. An attribute value is invalid. - The Marketing URL you entered is invalid. Check the URL and try again.
しかし、"The provided entity includes a relationship with an invalid value"と表示される場合は、どこがどんな理由でエラーになっているか分からない。
以下の場合は、どこか4箇所のメタデータに不備があると推測できるが、それがどこなのか、なぜエラーになるのかわからない。
各メタデータを見直したもののなかなかエラーを解消できず時間を使ってしまった。
The provided entity includes a relationship with an invalid value The provided entity includes a relationship with an invalid value The provided entity includes a relationship with an invalid value The provided entity includes a relationship with an invalid value +------+--------------------------+-------------+ | fastlane summary | +------+--------------------------+-------------+ | Step | Action | Time (in s) | +------+--------------------------+-------------+ | 1 | default_platform | 0 | | 2 | sync_code_signing | 4 | | 3 | increment_version_number | 1 | | 4 | increment_build_number | 1 | | 5 | build_app | 27 | | 💥 | upload_to_app_store | 12 | +------+--------------------------+-------------+ fastlane finished with errors
解決方法
まず、App Store Connect側でメタデータを入力、エラーがあれば理由が表示されるため適宜対応。fastlaneでアップロードするよりも発生箇所が明確にわかり、理由も推測しやすい。
入力が完了したら内容を保存する。
ターミナルを開いて、プロジェクトファイルのある階層で以下コマンドを実行。成功すると、metadataの各ファイルにApp Store Connectで入力した内容が反映される。
初回リリース以降のメタデータの編集やアップロードは、fastlaneを使って行う。
bundle exec fastlane deliver download_metadata
おわりに
良い対処法なのかはわからないのですが、表題のエラーで時間を使ってしまうよりはましかなと思い、一応記録に残しました。初回以降も今回のような対応をするとfastlaneでメタデータを管理する意味がないので、あくまで初回に限ってという条件だとは思っています・・・。