iOSアップロードのエラーについて

Monacaチームの小田川です。

Monacaでは、iOSリリースビルドで作成されたipaファイルをApp Store ConnectへアップロードするiOSアップロード機能を提供しています。

2022年10月下旬ごろから、Apple側のサーバで実行されるアップロード処理に対してアップデートが実施され始めました。このアップデートの影響により、Apple側のアップロード処理でエラーが発生するようになりました。MonacaでもApple側のアップデートに対して対応を行なっていますが、Apple側の問題により、正しい設定でiOSアップロードを実行してもエラーが発生する事象が、現在も続いています。

今回は、アップデート後のiOSアップロード処理と現在も発生しているエラーについて説明していきたいと思います。

アップデート後のiOSアップロード処理について

アップデート後のiOSアップロード処理では、iOSアップロード時に入力したApple IDに紐づいているShort Nameを指定する必要があります。このShort Nameは、Monaca側のiOSアップロード処理の際に、Apple側から提供されているコマンドを実行して取得しています。

Short Nameは、Apple IDに対して複数紐づいている場合があります。Apple IDに複数のShort Nameが紐づいている場合、どのShort Nameに対象のアプリが登録されているか分からないため、Monaca側のiOSアップロード処理では、取得したすべてのShort Nameに対して、iOSアップロード処理を実行しています。

そのため、アプリが登録されていないShort NameでiOSアップロード処理が行われた場合、下記のようなエラーが出力される場合があります。

Error Messages: Could not find an application record with bundleId: xxx.xxx.xxx.

最終的に正常にiOSアップロード処理が完了した場合は、上記のエラーは無視しても問題ありません。

Apple側のアップロード処理の問題によるエラーについて

Apple側のアップロード処理のアップデート後から、下記のようなnullエラーが発生するようになりました。下記のエラーは、Apple側のアップロード処理に問題が発生した場合に出力されているようです。

これまでのところ、下記のようなnullエラーが発生している時間帯では、再度iOSアップロードを行っても同様のエラーが発生する傾向にあります。現状での回避方法としては、しばらく時間を置いてから、あらためてiOSアップロードを実行することで、正常にアップロードすることができます。

Upload is not in processing state, please try again. state: class Build {
  type: builds
  id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  attributes: class BuildAttributes {
      version: xx.xx.xx
      uploadedDate: null
      expirationDate: null
      expired: null
      minOsVersion: null
      lsMinimumSystemVersion: null
      computedMinMacOsVersion: null
      iconAssetToken: null
      processingState: null
      usesNonExemptEncryption: null
  }
  ......
}

エラー修正後も同じエラーが発生する場合について

2022年4月以降からは、iOSアップロードを行う場合は、Xcode 13以降でリリースビルドを実行する必要があります。Xcode 13未満でリリースビルドが実行されている場合は、下記のようなエラーが発生します。

ERROR ITMS-90725: SDK Version Issue. This app was built with the iOS 14.5 SDK. All iOS apps submitted to the App Store must be built with the iOS 15 SDK or later, included in Xcode 13 or later.

対象のMonacaプロジェクトでXcode 13に設定変更後、再度リリースビルドを実行し、iOSアップロードを行っても同じエラーが発生する場合があります。この事象は、設定変更後のアプリに設定されているバンドルバージョンが、最初にエラーが発生したアプリと同じ場合に発生しています。

Apple側の処理では、バンドルバージョンが同じ場合、設定変更後のアプリではなく、最初にエラーが発生したアプリの情報で処理が実行されているようです。

現状での回避方法としては、対象のMonacaプロジェクトに設定されているバンドルバージョンを更新することで対応することができます。バンドルバージョンは、MonacaクラウドIDEのiOSアプリ設定画面にあるバンドルバージョンを指定にチェックを付けることで設定することができます。

おわりに

iOSアップロードについては、Apple側の処理の問題により、アップロードが安定しない状態が続いています。Monaca側の設定では対応できないケースもありますが、バンドルバージョンを更新することでアップロードができるようになるケースもあるため、iOSアップロードでエラーが発生した場合は、上記を参考に対応を行なってみてください。