Private
Public Access
1
0
1
mac_app
syui edited this page 2025-12-22 19:04:51 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Mac App Store / TestFlight ビルドガイド

UE5プロジェクトをMac App Store / TestFlightにアップロードするための手順。

必要なもの

Apple Developer 証明書

証明書 用途
Apple Distribution アプリ署名
3rd Party Mac Developer Installer PKG署名

確認方法:

security find-identity -v -p codesigning

Provisioning Profile

  1. Apple Developer からダウンロード
  2. プロジェクトルートに embedded.provisionprofile として配置
# UUIDを確認
security cms -D -i embedded.provisionprofile | grep -A1 UUID

App Store Connect API Key

  1. App Store Connect で作成
  2. .p8 ファイルをダウンロード
  3. Issuer ID と Key ID をメモ

設定ファイル

.env

# 署名証明書
IOS_CERTIFICATE_NAME="Apple Distribution: Your Name (TEAMID)"
DEVELOPMENT_TEAM="TEAMID"

# App Store Connect API
ASC_ISSUER_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
ASC_KEY_ID="XXXXXXXXXX"
ASC_KEY_PATH="/path/to/XXXXXXXXXX.p8"

Config/DefaultEngine.ini

[/Script/MacTargetPlatform.XcodeProjectSettings]
CodeSigningTeam=TEAMID
bUseModernXcode=true
bUseAutomaticCodeSigning=true
BundleIdentifier=com.example.app
CodeSigningPrefix=com.example
bUseAppStoreConnect=True
AppStoreConnectIssuerID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AppStoreConnectKeyID=XXXXXXXXXX
AppStoreConnectKeyPath=(FilePath="path/to/key.p8")

ビルドワークフロー

# 1. Macビルド
./bin/build.zsh mac

# 2. PKG作成アイコン差し替え + 署名)
./bin/build.zsh pkg

# 3. アイコン検証(オプション)
./bin/verify-icon.zsh

# 4. TestFlightにアップロード
./bin/build.zsh upload-mac

コマンド詳細

mac - UE5ビルド

./bin/build.zsh mac

実行内容:

  • BuildCookRun でMac向けビルド
  • -distribution フラグでApp Store配布用
  • -iterate で増分クック(高速化)
  • 出力: Mac/*.xcarchive

pkg - PKG作成

./bin/build.zsh pkg

実行内容:

  1. 最新の xcarchive を検出
  2. カスタムアイコンに差し替えAppIcon.icns + Assets.car再ビルド
  3. EpicWebHelper に sandbox entitlements で署名
  4. メインアプリを再署名
  5. xcodebuild -exportArchive でPKG生成
  6. 出力: build/Airse.pkg

upload-mac - アップロード

./bin/build.zsh upload-mac

実行内容:

  • xcrun altool でApp Store Connectにアップロード
  • API Key認証推奨またはユーザー名/パスワード認証

必須ファイル

Project/
├── .env                              # 環境変数
├── embedded.provisionprofile         # Mac用プロビジョニングプロファイル
├── XXXXXXXXXX.p8                     # App Store Connect API Key
├── Build/
│   └── Mac/
│       └── Resources/
│           ├── AppIcon.icns          # カスタムアイコン
│           └── Sandbox.Server.entitlements  # サンドボックス設定
└── Config/
    └── DefaultEngine.ini             # プロジェクト設定

Sandbox Entitlements

Mac App Storeでは、すべての実行ファイルにサンドボックス権限が必要。

Sandbox.Server.entitlements

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.inherit</key>
    <true/>
</dict>
</plist>

EpicWebHelper 署名

UE5のEpicWebHelperCEFベースのWebブラウザヘルパーは別途署名が必要:

codesign -f -s "Apple Distribution: ..." \
    --entitlements Sandbox.Server.entitlements \
    "Airse.app/Contents/UE/Engine/Binaries/Mac/EpicWebHelper"

これは create_pkg() で自動実行される。

トラブルシューティング

No profiles for 'bundle.id'

原因: Provisioning profileがインストールされていない

解決:

# UUIDを取得
PROFILE_UUID=$(security cms -D -i embedded.provisionprofile | grep -A1 UUID | tail -1 | sed 's/.*<string>\(.*\)<\/string>.*/\1/')

# 正しい場所にコピー
cp embedded.provisionprofile ~/Library/MobileDevice/Provisioning\ Profiles/${PROFILE_UUID}.provisionprofile

Certificate mismatch

原因: "3rd Party Mac Developer Installer" 証明書がない

解決: Keychain Accessで証明書を確認、なければApple Developerから作成

App sandbox not enabled on EpicWebHelper

原因: EpicWebHelperにサンドボックス権限がない

解決: create_pkg() で自動署名される。手動で署名する場合:

codesign -f -s "$CERT" --entitlements Sandbox.Server.entitlements EpicWebHelper
codesign -f -s "$CERT" --entitlements Sandbox.Server.entitlements Airse.app

Missing asset catalog

原因: Assets.car が削除された

解決: Assets.carを削除せず、actool で再ビルドする(現在のスクリプトで対応済み)

アイコンが変わらない

原因: Assets.car にデフォルトアイコンが含まれている

解決:

  1. キャッシュクリア: rm -rf Saved/StagedBuilds Binaries/Mac
  2. ./bin/build.zsh pkg を再実行
  3. ./bin/verify-icon.zsh で確認

ビルドログ

ログファイルの場所:

  • UE5ビルドログ: build_mac.log
  • Xcodeログ: ~/Library/Logs/Unreal Engine/LocalBuildLogs/

バージョン管理

TestFlightにアップロードするたびにビルド番号を上げる必要がある。

Config/DefaultGame.ini:

[/Script/EngineSettings.GeneralProjectSettings]
ProjectVersion=1.0.0

または UE Editor の Project Settings > Project > Description で設定。

参考コマンド

# 証明書一覧
security find-identity -v -p codesigning

# Provisioning profile の内容確認
security cms -D -i embedded.provisionprofile

# PKG の内容確認
pkgutil --expand Airse.pkg /tmp/pkg_contents

# アプリの署名確認
codesign -dv --verbose=4 Airse.app

# Entitlements 確認
codesign -d --entitlements - Airse.app