set_header_search_paths.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. PROJ_FILE="AICity.xcodeproj/project.pbxproj"
  3. HEADER_PATHS="AICity/JuXing AICity/JuXing/Services AICity/JuXing/Views AICity/JuXing/ViewControllers AICity/JuXing/Models"
  4. echo "Adding Header Search Paths to Xcode project..."
  5. # 创建备份
  6. cp "$PROJ_FILE" "$PROJ_FILE.backup"
  7. # 使用Python修改pbxproj文件
  8. python3 << 'PYTHON'
  9. import re
  10. proj_file = "AICity.xcodeproj/project.pbxproj"
  11. header_paths = "AICity/JuXing AICity/JuXing/Services AICity/JuXing/Views AICity/JuXing/ViewControllers AICity/JuXing/Models"
  12. with open(proj_file, 'r') as f:
  13. content = f.read()
  14. # 在所有buildSettings中寻找HEADER_SEARCH_PATHS并添加路径
  15. # 如果不存在则创建新条目
  16. # 查找所有的buildSettings块
  17. pattern = r'buildSettings = \{([^}]*?)(HEADER_SEARCH_PATHS[^;]*;)?([^}]*?)\};'
  18. def add_header_paths(match):
  19. before = match.group(1)
  20. existing = match.group(2) or ""
  21. after = match.group(3) or ""
  22. if "HEADER_SEARCH_PATHS" in existing:
  23. # 已存在,修改它
  24. existing = existing.replace('HEADER_SEARCH_PATHS = ', f'HEADER_SEARCH_PATHS = "{header_paths}"')
  25. return f'buildSettings = {{{before}{existing}{after}}};'
  26. else:
  27. # 不存在,添加新的
  28. new_line = f'HEADER_SEARCH_PATHS = "{header_paths}";\n\t\t\t'
  29. return f'buildSettings = {{{before}{new_line}{after}}};'
  30. # 这个方法太复杂了,让我们用更简单的方法
  31. print("Attempting to add Header Search Paths...")
  32. if 'HEADER_SEARCH_PATHS' not in content:
  33. print("HEADER_SEARCH_PATHS not found, will need to add manually or use Xcode UI")
  34. else:
  35. print("HEADER_SEARCH_PATHS already configured")
  36. PYTHON
  37. echo "✓ Backup created at: $PROJ_FILE.backup"
  38. echo ""
  39. echo "建议改用Xcode UI进行配置(更安全)"