Clone
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
- Apple Developer からダウンロード
- プロジェクトルートに
embedded.provisionprofileとして配置
# UUIDを確認
security cms -D -i embedded.provisionprofile | grep -A1 UUID
App Store Connect API Key
- App Store Connect で作成
.p8ファイルをダウンロード- 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
実行内容:
- 最新の xcarchive を検出
- カスタムアイコンに差し替え(AppIcon.icns + Assets.car再ビルド)
- EpicWebHelper に sandbox entitlements で署名
- メインアプリを再署名
xcodebuild -exportArchiveでPKG生成- 出力:
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のEpicWebHelper(CEFベースの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 にデフォルトアイコンが含まれている
解決:
- キャッシュクリア:
rm -rf Saved/StagedBuilds Binaries/Mac ./bin/build.zsh pkgを再実行./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
project
func
page
[ja]
project
asset
- Game Animation Sample Project
- Control Rig Sample
- Nice Interaction System
- SoStylized
- Controller Support
plugin
platform
ref
© syui