@@ -19,38 +19,35 @@ jobs:
1919
2020 - name : Modify bundle IDs and display name
2121 run : |
22- echo "=== 全局查找所有 Info.plist 文件 ==="
23- find . -name "Info.plist"
24-
2522 PROJECT_FILE="Geranium.xcodeproj/project.pbxproj"
2623 PLIST_FILE="Geranium/Info.plist"
2724
28- if [ ! -f "$PROJECT_FILE" ]; then
29- echo "Error: $PROJECT_FILE 不存在!"; exit 1
30- fi
31- if [ ! -f "$PLIST_FILE" ]; then
32- echo "Error: $PLIST_FILE 不存在!"; exit 1
33- fi
25+ if [ ! -f "$PROJECT_FILE" ]; then echo "Error: $PROJECT_FILE 不存在"; exit 1; fi
26+ if [ ! -f "$PLIST_FILE" ]; then echo "Error: $PLIST_FILE 不存在"; exit 1; fi
3427
35- # ── 1. 替换 Bundle ID(只改 ASCII 字符,pbxproj 安全)────────────
28+ # 1. 替换 Bundle ID(纯 ASCII, 安全)
3629 sed -i '' 's/live\.cclerc\.geranium/com.cloud.trail/g' "$PROJECT_FILE"
3730 sed -i '' 's/com\.cloud\.trail\.Bookmark-Location-in-Geranium/com.cloud.trail.BookmarkLocation/g' "$PROJECT_FILE"
38- echo "已修改 Bundle ID"
3931
40- # ── 2. 用 PlistBuddy 直接写主应用 Info.plist 显示名称 ───────────
41- # 这是使用自定义 Info.plist 项目的唯一正确方式
42- # PlistBuddy 原生支持 UTF-8,中文写入100%安全
32+ # 2. 【关键修复】从 pbxproj 删除 INFOPLIST_KEY_CFBundleDisplayName / CFBundleName 这两行
33+ # Xcode 构建时会把 pbxproj 里这两个键的值注入到最终 app bundle 的 Info.plist,
34+ # 直接覆盖 PlistBuddy 对源文件的修改。删掉后 Xcode 不会注入,PlistBuddy 的值才真正保留。
35+ # sed 删行是纯 ASCII 操作,不会损坏 pbxproj 格式。
36+ sed -i '' '/INFOPLIST_KEY_CFBundleDisplayName/d' "$PROJECT_FILE"
37+ sed -i '' '/INFOPLIST_KEY_CFBundleName/d' "$PROJECT_FILE"
38+ echo "已从 pbxproj 删除 INFOPLIST_KEY 注入键"
39+
40+ # 3. PlistBuddy 写入主应用 Info.plist 显示名称
4341 for KEY in CFBundleDisplayName CFBundleName; do
4442 if /usr/libexec/PlistBuddy -c "Print :${KEY}" "$PLIST_FILE" 2>/dev/null; then
4543 /usr/libexec/PlistBuddy -c "Set :${KEY} 云踪" "$PLIST_FILE"
46- echo "已更新 $KEY"
4744 else
4845 /usr/libexec/PlistBuddy -c "Add :${KEY} string 云踪" "$PLIST_FILE"
49- echo "已新增 $KEY"
5046 fi
5147 done
48+ echo "已写入主应用 Info.plist 显示名称"
5249
53- # ── 3 . 修改扩展 Info.plist Bundle ID ───────────────────────────
50+ # 4 . 修改扩展 Info.plist Bundle ID
5451 EXT_PLIST_LIST=$(find . -name "Info.plist" | grep -i -E "bookmark|extension|appex" | grep -v "Preview" | grep -v "Assets")
5552 if [ -z "$EXT_PLIST_LIST" ]; then
5653 echo "警告:未找到扩展 Info.plist,跳过"
@@ -67,10 +64,12 @@ jobs:
6764 done
6865 fi
6966
70- # ── 验证 ────────────────────────────────────────────────────────
67+ # 5. 验证
7168 echo "=== 验证主应用 Info.plist ==="
7269 /usr/libexec/PlistBuddy -c "Print :CFBundleDisplayName" "$PLIST_FILE"
7370 /usr/libexec/PlistBuddy -c "Print :CFBundleName" "$PLIST_FILE"
71+ echo "=== 确认 pbxproj 中不再含有 INFOPLIST_KEY_CFBundleDisplayName ==="
72+ grep "INFOPLIST_KEY_CFBundleDisplayName" "$PROJECT_FILE" && echo "警告:仍有残留!" || echo "确认已删除"
7473
7574 - name : Clone RootHelper manually
7675 run : |
0 commit comments