Files

78 lines
2.5 KiB
Bash
Executable File
Raw Permalink Blame History

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.
#!/bin/bash
set -e
# 设置工作目录为脚本所在目录
cd "$(dirname "$0")"
echo "清理构建目录..."
rm -rf build
rm -rf tvbox.xcarchive
rm -f TVBox.ipa
# 证书和配置 (从 secrets.sh 加载,此文件在 IOS-key 中已 gitignore)
if [ -f "IOS-key/secrets.sh" ]; then
source "IOS-key/secrets.sh"
else
echo "❌ 错误: 未找到 IOS-key/secrets.sh,请确保该文件存在。"
exit 1
fi
P12_PATH="IOS-key/cert.p12"
PROVISION_PATH="IOS-key/cert.mobileprovision"
# 变量已从 secrets.sh 加载: $P12_PASSWORD, $PROVISION_UUID, $TEAM_ID, $BUNDLE_ID, $SIGNING_IDENTITY
echo "安装 Provisioning Profile..."
mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
cp "$PROVISION_PATH" "$HOME/Library/MobileDevice/Provisioning Profiles/$PROVISION_UUID.mobileprovision"
echo "导入 P12 证书..."
# 将证书导入当前用户的默认钥匙串 (login.keychain)
security import "$P12_PATH" -k ~/Library/Keychains/login.keychain-db -P "$P12_PASSWORD" -T /usr/bin/codesign || true
# 解锁钥匙串以防超时
security unlock-keychain -p "" ~/Library/Keychains/login.keychain-db
echo "Regenerating project with XcodeGen..."
xcodegen generate
SCHEME="tvbox"
CONFIGURATION="Release"
ARCHIVE_PATH="build/tvbox.xcarchive"
EXPORT_PATH="build/exported"
EXPORT_OPTIONS="ExportOptions.plist"
echo "开始构建 iOS Archive..."
xcodebuild archive \
-project tvbox.xcodeproj \
-scheme "$SCHEME" \
-configuration "$CONFIGURATION" \
-destination "generic/platform=iOS" \
-archivePath "$ARCHIVE_PATH" \
CODE_SIGN_STYLE=Manual \
CODE_SIGN_IDENTITY="$SIGNING_IDENTITY" \
PROVISIONING_PROFILE_SPECIFIER="$PROVISION_UUID" \
DEVELOPMENT_TEAM="$TEAM_ID" \
PRODUCT_BUNDLE_IDENTIFIER="$BUNDLE_ID"
if [ -f "$EXPORT_OPTIONS" ]; then
echo "发现 $EXPORT_OPTIONS,尝试导出 IPA..."
mkdir -p "$EXPORT_PATH"
xcodebuild -exportArchive \
-archivePath "$ARCHIVE_PATH" \
-exportOptionsPlist "$EXPORT_OPTIONS" \
-exportPath "$EXPORT_PATH" \
-allowProvisioningUpdates
# 查找生成的 .ipa 文件并移动到根目录
IPA_FILE=$(find "$EXPORT_PATH" -name "*.ipa" | head -n 1)
if [ -n "$IPA_FILE" ]; then
cp "$IPA_FILE" ./TVBox.ipa
echo "✅ 打包完成!生成文件: TVBox.ipa"
else
echo "⚠️ 未能在导出目录中找到 .ipa 文件。"
fi
else
echo "️ 未找到 $EXPORT_OPTIONS,仅生成 Archive。"
echo "✅ 构建完成!Archive 路径: $ARCHIVE_PATH"
echo "您可以打开 Xcode 使用 Distribute App 手动导出 IPA。"
fi