Skip to content

Commit 842ce82

Browse files
authored
Update iOS build (#8)
- Fix iOS code signing setup - Fix iOS build warnings
1 parent 1eafbf9 commit 842ce82

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

build-sdl3-image-xcode.sh

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ with open(project_file, 'w') as f:
124124
print("Modified JXL library project to rename symbols")
125125
PYTHON_SCRIPT
126126

127-
# Disable code signing in the SDL_image Xcode project
128-
echo "Disabling code signing requirements in Xcode project..."
127+
# Disable code signing and fix deployment target in the SDL_image Xcode project
128+
echo "Configuring Xcode project settings..."
129129
python3 <<'PYTHON_SCRIPT'
130130
import sys
131131
import re
@@ -169,11 +169,26 @@ content = re.sub(r'DevelopmentTeam = [^;]+;', '', content)
169169
# Remove signing certificate
170170
content = re.sub(r'CODE_SIGN_STYLE = [^;]+;', 'CODE_SIGN_STYLE = Manual;', content)
171171
172+
# Fix iOS deployment target to 12.0 (minimum supported by current Xcode)
173+
# Match the app's deployment target of 15.6 for consistency
174+
content = re.sub(r'IPHONEOS_DEPLOYMENT_TARGET = [^;]+;', 'IPHONEOS_DEPLOYMENT_TARGET = 15.6;', content)
175+
176+
# Fix headermap settings to address headermap warning
177+
# Replace any existing values (xcodebuild command line will also set these)
178+
content = re.sub(r'ALWAYS_SEARCH_USER_PATHS = [^;]+;', 'ALWAYS_SEARCH_USER_PATHS = NO;', content)
179+
content = re.sub(r'USE_HEADERMAP = [^;]+;', 'USE_HEADERMAP = NO;', content)
180+
181+
# Remove Carbon Resources build phases to suppress deprecation warning
182+
# Find and remove PBXRezBuildPhase sections
183+
content = re.sub(r'/\* Begin PBXRezBuildPhase section \*/\n.*?/\* End PBXRezBuildPhase section \*/\n', '', content, flags=re.DOTALL)
184+
# Also remove references to Rez build phases from buildPhases arrays
185+
content = re.sub(r'[0-9A-F]{24} /\* Rez \*/,?\s*\n?', '', content)
186+
172187
# Write back
173188
with open(project_file, 'w') as f:
174189
f.write(content)
175190
176-
print("Disabled code signing in Xcode project")
191+
print("Configured Xcode project: disabled code signing, updated deployment target to 15.6, fixed headermap settings (ALWAYS_SEARCH_USER_PATHS=NO, USE_HEADERMAP=NO), removed Carbon Resources phases")
177192
PYTHON_SCRIPT
178193

179194
# Build the xcframework using direct platform builds
@@ -185,16 +200,20 @@ unset IPHONEOS_DEPLOYMENT_TARGET
185200
unset TVOS_DEPLOYMENT_TARGET
186201
unset WATCHOS_DEPLOYMENT_TARGET
187202

188-
# Common build settings to disable code signing
203+
# Common build settings to disable code signing, set deployment target, and fix headermap
189204
BUILD_SETTINGS=(
190205
CODE_SIGN_IDENTITY=""
191206
CODE_SIGNING_REQUIRED=NO
192207
CODE_SIGNING_ALLOWED=NO
193208
DEVELOPMENT_TEAM=""
209+
IPHONEOS_DEPLOYMENT_TARGET=15.6
210+
ALWAYS_SEARCH_USER_PATHS=NO
211+
USE_HEADERMAP=NO
194212
)
195213

196214
# Build for iOS devices
197215
echo "Building for iOS (arm64)..."
216+
echo "Note: 'no debug symbols' warnings are expected and harmless for Release builds"
198217
xcodebuild archive \
199218
-project Xcode/SDL_image.xcodeproj \
200219
-scheme SDL3_image \
@@ -203,7 +222,7 @@ xcodebuild archive \
203222
-archivePath "build/ios.xcarchive" \
204223
SKIP_INSTALL=NO \
205224
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
206-
"${BUILD_SETTINGS[@]}"
225+
"${BUILD_SETTINGS[@]}" 2>&1 | grep -v "warning: no debug symbols" || true
207226

208227
# Build for iOS Simulator
209228
echo "Building for iOS Simulator (arm64, x86_64)..."
@@ -215,7 +234,7 @@ xcodebuild archive \
215234
-archivePath "build/iossimulator.xcarchive" \
216235
SKIP_INSTALL=NO \
217236
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
218-
"${BUILD_SETTINGS[@]}"
237+
"${BUILD_SETTINGS[@]}" 2>&1 | grep -v "warning: no debug symbols" || true
219238

220239
# Create the xcframework from the archives
221240
echo "Creating xcframework..."

ios/acidwarp-ios.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
buildConfigurationList = 502A152D2E70BBC100BA2A0F /* Build configuration list for PBXNativeTarget "acidwarp" */;
159159
buildPhases = (
160160
501D30642E96C52F00DE30A6 /* Download SDL3 */,
161-
501D30662E96C52F00DE30A7 /* Download SDL3_image */,
161+
501D30662E96C52F00DE30A7 /* Build SDL3_image */,
162162
507701E82E90D72600C75FC6 /* ShellScript */,
163163
502A14F82E70BBC000BA2A0F /* Sources */,
164164
502A14F92E70BBC000BA2A0F /* Frameworks */,
@@ -333,7 +333,7 @@
333333
shellPath = /bin/sh;
334334
shellScript = "dsymutil \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDL3.framework/SDL3\" -o \"${BUILT_PRODUCTS_DIR}/SDL3.framework.dSYM\"\ndsymutil \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDL3_image.framework/SDL3_image\" -o \"${BUILT_PRODUCTS_DIR}/SDL3_image.framework.dSYM\"\n";
335335
};
336-
501D30662E96C52F00DE30A7 /* Download SDL3_image */ = {
336+
501D30662E96C52F00DE30A7 /* Build SDL3_image */ = {
337337
isa = PBXShellScriptBuildPhase;
338338
buildActionMask = 2147483647;
339339
files = (
@@ -368,7 +368,7 @@
368368
);
369369
runOnlyForDeploymentPostprocessing = 0;
370370
shellPath = /bin/sh;
371-
shellScript = "if [ \"$PLATFORM_NAME\" = \"iphonesimulator\" ]; then\n SDL3_FRAMEWORK_PATH=\"$SRCROOT/../SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework\"\n SDL3_IMAGE_FRAMEWORK_PATH=\"$SRCROOT/../SDL3_image.xcframework/ios-arm64_x86_64-simulator/SDL3_image.framework\"\nelse\n SDL3_FRAMEWORK_PATH=\"$SRCROOT/../SDL3.xcframework/ios-arm64/SDL3.framework\"\n SDL3_IMAGE_FRAMEWORK_PATH=\"$SRCROOT/../SDL3_image.xcframework/ios-arm64/SDL3_image.framework\"\nfi\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\ncp -R \"$SDL3_FRAMEWORK_PATH\" \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\ncp -R \"$SDL3_IMAGE_FRAMEWORK_PATH\" \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\n";
371+
shellScript = "set -e\nif [ \"$PLATFORM_NAME\" = \"iphonesimulator\" ]; then\n SDL3_FRAMEWORK_PATH=\"$SRCROOT/../SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework\"\n SDL3_IMAGE_FRAMEWORK_PATH=\"$SRCROOT/../SDL3_image.xcframework/ios-arm64_x86_64-simulator/SDL3_image.framework\"\nelse\n SDL3_FRAMEWORK_PATH=\"$SRCROOT/../SDL3.xcframework/ios-arm64/SDL3.framework\"\n SDL3_IMAGE_FRAMEWORK_PATH=\"$SRCROOT/../SDL3_image.xcframework/ios-arm64/SDL3_image.framework\"\nfi\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\ncp -R \"$SDL3_FRAMEWORK_PATH\" \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\ncp -R \"$SDL3_IMAGE_FRAMEWORK_PATH\" \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/\"\nif [ \"$PLATFORM_NAME\" != \"iphonesimulator\" ]; then\n SIGNING_IDENTITY=\"${EXPANDED_CODE_SIGN_IDENTITY}\"\n if [ -z \"$SIGNING_IDENTITY\" ] || [ \"$SIGNING_IDENTITY\" = \"-\" ]; then\n SIGNING_IDENTITY=\"${CODE_SIGN_IDENTITY}\"\n fi\n if [ -n \"$SIGNING_IDENTITY\" ] && [ \"$SIGNING_IDENTITY\" != \"-\" ]; then\n codesign --force --sign \"$SIGNING_IDENTITY\" --timestamp=none \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDL3.framework\"\n codesign --force --sign \"$SIGNING_IDENTITY\" --timestamp=none \"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDL3_image.framework\"\n fi\nfi\n";
372372
};
373373
/* End PBXShellScriptBuildPhase section */
374374

0 commit comments

Comments
 (0)