【結論】XcodeでApp Store Connectへアップロードする際、Missing or invalid signature (code: 90034) エラーが発生した場合の主な原因は、PRODUCT_NAME に日本語(全角文字)が指定されていることです。表示名を日本語にしつつビルド成果物の物理名・実行ファイル名を英数字(PRODUCT_NAME = DokodemoTerminal)に変更し、表示名は CFBundleDisplayName(または InfoPlist.xcstrings)で指定することで解決します。
この記事では、署名設定の確認から Apple Distribution 証明書の確認、CLIでのIPAエクスポート検証、そして最終的に原因となった PRODUCT_NAME の修正手順まで、トラブルシューティングの全ステップを詳しく解説します。
この記事でわかること
1. 発生したエラー(ITMS-90034)と現象
アプリを App Store Connect へアップロードしようとした際、以下のエラーが発生しました。
Missing or invalid signature. The bundle 'com.shopkoyomi.dokodemo-terminal' at bundle path 'Payload/どこでもターミナル.app' is not signed using an Apple submission certificate.
The server's response was: 'code = 90034;'
App Store Connect 側からは「Apple提出用の証明書で署名されていない」と判定されて拒否される状態でした。
2. 署名設定と証明書の基本チェック
まずエラーメッセージを踏まえ、一般的な問題から確認を行いました。
- Automatically manage signing が ON になっているか
- Release Archive が選択されているか
- Manage Certificates に Apple Distribution 証明書が存在するか
確認したところ、Keychain / Xcode アカウント内に Apple Development のみで Apple Distribution 証明書が作成されていないことが判明したため、証明書を新しく作成・追加しました。
3. XcodeGen環境での署名固定とScheme設定の罠
プロジェクトファイルを XcodeGen で管理している場合、project.yml の設定で開発用署名が強制指定されていないか注意が必要です。
CODE_SIGN_IDENTITY: "iPhone Developer"
上記の設定が入っていると、Release Archive 時にも開発用署名が適用されてしまいます。settingPresets: none や明確な scheme 定義を行い、自動生成時の挙動を修正しました。
4. CLI(xcodebuild / Transporter)でのIPAエクスポート検証
Xcode Organizer 経由のアップロード失敗を回避・検証するため、CLI(xcodebuild -exportArchive)で IPA を生成し、codesign で検証を実施しました。
codesign -dv --verbose=4 Payload/アプリ名.app
ローカルでの検証結果は Authority=Apple Distribution となり正常に見えたものの、Apple 公式の Transporter アプリ で検証すると同様の 90034 エラーで弾かれる状態が続きました。
5. 【真因】PRODUCT_NAMEの日本語指定と解決策
ローカル署名検証は通るのに Apple サーバー側で拒否される理由を調査した結果、エラーログ内のパスに原因がありました。
Payload/どこでもターミナル.app
ビルド成果物の物理ファイル名および実行ファイル名(PRODUCT_NAME)に日本語が含まれていたため、App Store Connect 側の署名検証システムで署名無効(invalid signature)とみなされていたことが真因でした。
正しい設定手順
アプリの表示名(ホーム画面等の名称)を日本語に保ったまま、物理名のみを英数字に変更します。
- PRODUCT_NAME:
DokodemoTerminal(英数字に変更) - CFBundleDisplayName (ja):
どこでもCLI(ユーザー向け日本語表示名) - CFBundleDisplayName (en):
Dokodemo CLI(英語表示名)
この変更を行った上で再 Archive し、App Store Connect へアップロードしたところ、即座に検証・アップロードが正常完了しました。
6. まとめと教訓
日本語のアプリ名を付ける場合でも、PRODUCT_NAME(.appの物理名・実行ファイル名)は必ず英数字に設定し、表示名は CFBundleDisplayName で設定するのが安全なマルチリンガル・App Store提出設計です。
コメント 0
まだコメントはありません。最初のコメントを書いてみませんか?