Browse Source

build(ios): 更新iOS构建脚本并设置应用显示名称

- 修改构建脚本以支持输出到指定目录或文件路径
- 使用 flutter build ipa 替代旧的构建命令
- 添加对构建产物 IPA 文件的查找与复制逻辑
- 在 Xcode 项目中设置 CFBundleDisplayName 为 "趣恋恋"
ios
Jolie 3 months ago
parent
commit
ab9dd5eec7
2 changed files with 31 additions and 15 deletions
  1. 3
      ios/Runner.xcodeproj/project.pbxproj
  2. 43
      scripts/build_ios.sh

3
ios/Runner.xcodeproj/project.pbxproj

@ -496,6 +496,7 @@
DEVELOPMENT_TEAM = P65XS8BRNU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "趣恋恋";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@ -683,6 +684,7 @@
DEVELOPMENT_TEAM = P65XS8BRNU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "趣恋恋";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@ -710,6 +712,7 @@
DEVELOPMENT_TEAM = P65XS8BRNU;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "趣恋恋";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",

43
scripts/build_ios.sh

@ -1,14 +1,15 @@
#!/bin/bash
# usage:
# ./scripts/build_ios.sh --output /absolute/path/to/output [extra flutter build args...]
# ./scripts/build_ios.sh --output /absolute/path/to/output.ipa [extra flutter build args...]
# ./scripts/build_ios.sh --output /absolute/path/to/dir [extra flutter build args...]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
DEFAULT_BUILD_DIR="$PROJECT_ROOT/build/ios_release"
OUTPUT_DIR="$DEFAULT_BUILD_DIR"
DEFAULT_OUTPUT_DIR="$PROJECT_ROOT/build/ios_release"
OUTPUT_DIR="$DEFAULT_OUTPUT_DIR"
EXTRA_ARGS=()
while [[ $# -gt 0 ]]; do
@ -41,23 +42,35 @@ flutter clean
echo "📚 获取依赖..."
flutter pub get
echo "🚀 开始构建 iOS 安装包..."
echo "🚀 开始构建 iOS IPA..."
if [[ ${#EXTRA_ARGS[@]} -gt 0 ]]; then
flutter build ios --release "${EXTRA_ARGS[@]}"
flutter build ipa --release "${EXTRA_ARGS[@]}"
else
flutter build ios --release
flutter build ipa --release
fi
# iOS build output is typically in build/ios/iphoneos/
BUILD_OUTPUT_DIR="$PROJECT_ROOT/build/ios/iphoneos"
if [[ -d "$BUILD_OUTPUT_DIR" ]]; then
echo "📦 复制构建产物到输出目录..."
mkdir -p "$OUTPUT_DIR"
cp -R "$BUILD_OUTPUT_DIR"/* "$OUTPUT_DIR/" 2>/dev/null || true
echo "✅ 构建完成,产物目录:$OUTPUT_DIR"
# IPA build output is typically in build/ios/ipa/
IPA_DIR="$PROJECT_ROOT/build/ios/ipa"
BUILT_IPA="$(find "$IPA_DIR" -maxdepth 1 -name '*.ipa' -print | head -n 1)"
if [[ -z "$BUILT_IPA" || ! -f "$BUILT_IPA" ]]; then
echo "❌ 错误: 未找到构建出的 IPA 文件" >&2
echo "构建产物目录:$IPA_DIR" >&2
exit 1
fi
# Determine target path
if [[ "$OUTPUT_DIR" == *.ipa ]]; then
# Output is a file path
TARGET_PATH="$OUTPUT_DIR"
mkdir -p "$(dirname "$TARGET_PATH")"
else
echo "⚠️ 警告: 未找到预期的构建输出目录 $BUILD_OUTPUT_DIR"
echo "构建产物可能在:$PROJECT_ROOT/build/ios/"
# Output is a directory
mkdir -p "$OUTPUT_DIR"
TARGET_PATH="$OUTPUT_DIR/$(basename "$BUILT_IPA")"
fi
cp "$BUILT_IPA" "$TARGET_PATH"
echo "✅ 构建完成,IPA 已保存到:$TARGET_PATH"
popd >/dev/null
Loading…
Cancel
Save