diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6560068..53e8c42 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/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", diff --git a/scripts/build_ios.sh b/scripts/build_ios.sh index 8868128..c0dcbbe 100755 --- a/scripts/build_ios.sh +++ b/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