こんばんは。宮野川 ( @logosverita ) です。個人でアプリ開発してます。
Xcode13にアップデートしたタイミングで、ビルドしたmacOSアプリがTranspoter でデリバリに失敗するようになりました。エラーログはタイトルに書いてある通り『ERROR ITMS-90237: “The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate.”』です。8時間ほどあーだこーだやってようやく解決できました。ERROR ITMS-90237の解決策を書いておきます。参考になれば嬉しいです。
2023年2月1日追記:
またまた『ERROR ITMS-90237: “The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate.”』となりました。解決策を追記しました。
ERROR ITMS-90237 の解決策
正直、8時間の間にいろいろと試行錯誤をしたので、どの施策がエラーを解決できたのかはわかっていません。おそらく、「3rd Party Mac Developer Application 」証明書と「3rd Party Mac Developer Installer」証明書の更新で直ると思われます。
1. 開発環境を最新の状態に保つ。
必要に応じて、npm や xcode などのライブラリをアップデートする。macOSのバージョンもアップデートする。
*2023.02.01 xcodeをアップデートしましょう!!
2. Certificates, Identifiers & Profiles からデバイス情報とプロファイル情報を更新する。
- https://developer.apple.com/ にログインする。
- 「 Devices 」からデバイス情報を追加する。
- Device ID (UUID)は
- このMacについて > システムレポート > ハードウェア ハードウェアの概要:に記載されている。
- 「 Profiles 」から新規プロファイルを3つ作成する。
- Distribution の「Mac App Store」 を選択(macOS Appのため)。
- App ID:はセレクトボックスから提出するアプリ名を選択。
- (Distribution)For use in Xcode 11 or later を選択。
- Provisioning Profile Name は任意の名前。
- Generate.
- 同様に、Distribution から「Developer ID Application」と「Development」を作成。
- 作成した「Developer ID Application」と「Development」はクリックして、キーチェーンアクセスアプリに登録をする。
- 作成した「Mac App Store」 はアプリの任意のフォルダに配置する。
- package.json の”mas”{provisioningProfile:”xxx”}を任意のフォルダに配置した「Mac App Store」のパスに書き換える
3. 証明書を更新する
3-1. https://developer.apple.com/ にログインする。
3-2. Certificates, Identifiers & Profiles から古い証明書を削除する。
- Development
- Distribution
- Mac Development
- Mac Distribution
- Mac Installer Distribution
3-3. キーチェーンアクセス アプリから新しい証明書を発行する。
- 証明書アシスタント > 認証局に証明書を要求…
- メールアドレスに Apple Store Connect に使っているメールアドレス
- 通称に「わかりやすい名前」
- 要求の処理に「デスクに保存」
- を選択して保存
3-4. キーチェーンアクセスアプリに登録してある古い証明証を削除する。
(この操作は特に自己責任でお願いします)
- Developer ID Installer
- Developer ID Application
- 3rd Party Mac Developer Installer
- 3rd Party Mac Developer Application
- Mac Developer
- Apple Distribution
3-5. Certificates, Identifiers & Profiles から新しい証明書を作成する。証明書を作成する際は、上記3-3. で作成した証明証を使う。
- Apple Development
- Apple Distribution
- Mac Development
- Mac Distribution
- Mac Installer Distribution
- Developer ID Installer
- Developer ID Application
- 作成した7つの証明証をダウンロードする。
- 作成した7つの証明証を開いてキーチェーンアクセスアプリに登録をする。
4. 更新した証明証がXcode に反映されているか確認する。
- Xcode13 を開く。
- Xcode > Preferences… から Accounts を開く。
- Apple ID のアカウントを選択し、Manage Certificates… を開く。
- 先程更新した5つの証明証が表示されているかを確認する。
- 表示されていない場合は、左下の「+」から該当のカテゴリ名を追加する。
5. 証明証がAppleのサーバーに反映されるのをしばらく待ってからビルドする。
関係ないかもしれませんが、新規ドメイン取得後にDNSにドメイン名が反映さるのに時間がかかるのと同様に、ホリデーシーズンでアップルの認証サーバーの反映が遅くなっていたのかもしれません。
作成した証明証がアクティブかを確認するライブラリとコマンドがあった気がする。
6. ビルドコマンドを「yarn build」から「npx electron-builder –universal」に変更する。
ユニバーサル対応のビルドをするために、ビルドコマンドを変えます。
npx electron-builder --universal
7. ビルドしたpkgファイルをデリバリする。
- エラー表示なく、アプリをデリバリできるか確認する。
おわり。
お疲れ様でした。私の場合は上記の手順で「ERROR ITMS-90237: “The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate.”」を解決することができました。
スペシャルサンクス
サムネイルのMac App Store のアイコンはアイコン8から使用しました。