t_fe859d8e: Xcode project settings migration — objectVersion 52→58, SWIFT_LANGUAGE_VERSION=6, IPHONEOS_DEPLOYMENT_TARGET=15.0, upgrade/swift-checks→2700
This commit is contained in:
51
update-pbxproj.py
Normal file
51
update-pbxproj.py
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Migrate MonsterCards.xcodeproj for Xcode 27 / Swift 6 / modern iOS SDK."""
|
||||
import re
|
||||
|
||||
path = "iOS/MonsterCards.xcodeproj/project.pbxproj"
|
||||
|
||||
with open(path, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# --- Changes to apply ---
|
||||
|
||||
# 1. objectVersion from 52 → 58 (Xcode 14+)
|
||||
content = re.sub(r'objectVersion = 52;', 'objectVersion = 58;', content)
|
||||
|
||||
# 2. LastUpgradeCheck from 1200 → 2700 (Xcode 27)
|
||||
content = re.sub(r'LastUpgradeCheck = 1240;', 'LastUpgradeCheck = 2700;', content)
|
||||
|
||||
# 3. LastSwiftUpdateCheck from 1240 → 2700
|
||||
content = re.sub(r'LastSwiftUpdateCheck = 1240;', 'LastSwiftUpdateCheck = 2700;', content)
|
||||
|
||||
# 4. IPHONEOS_DEPLOYMENT_TARGET: 14.4 → 15.0 (Preview appex)
|
||||
# 5. IPHONEOS_DEPLOYMENT_TARGET: 14.0 → 15.0 (all others - minimum supported by current dependencies & Xcode SDK)
|
||||
for old_val in ['14.4', '14.0']:
|
||||
content = re.sub(
|
||||
r'IPHONEOS_DEPLOYMENT_TARGET = ' + re.escape(old_val) + ';',
|
||||
'IPHONEOS_DEPLOYMENT_TARGET = 15.0;',
|
||||
content
|
||||
)
|
||||
|
||||
# 6. SWIFT_VERSION: 5.0 → 6.0 across all targets
|
||||
content = re.sub(
|
||||
r'SWIFT_VERSION = 5\.0;',
|
||||
'SWIFT_LANGUAGE_VERSION = 6;',
|
||||
content
|
||||
)
|
||||
|
||||
# Verify counts
|
||||
v15 = len(re.findall(r'IPHONEOS_DEPLOYMENT_TARGET = 15\.0;', content))
|
||||
v6 = content.count('SWIFT_LANGUAGE_VERSION = 6')
|
||||
v52_old = content.count('objectVersion = 52')
|
||||
v14_old = content.count('IPHONEOS_DEPLOYMENT_TARGET = 14.')
|
||||
|
||||
print(f"IPHONEOS_DEPLOYMENT_TARGET → 15.0 applied: {v15} times (expected 8)")
|
||||
print(f"SWIFT_VERSION → SWIFT_LANGUAGE_VERSION = 6 applied: {v6} times (expected 8)")
|
||||
print(f"Remaining objectVersion=52: {v52_old}")
|
||||
print(f"Remaining IPHONEOS_DEPLOYMENT_TARGET = 14.x: {v14_old}")
|
||||
|
||||
with open(path, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
print("\nDone. All changes written.")
|
||||
Reference in New Issue
Block a user