fix(build): drop macosx from SUPPORTED_PLATFORMS (iOS-only app)#89
Conversation
The dual-backend merge (2e49820) widened SUPPORTED_PLATFORMS to "iphoneos iphonesimulator macosx" across all targets -- almost certainly an Xcode side effect of adding the sibling SPM packages (reticulum/LXMF/LXST-swift), which all declare .macOS(.v13). But the embedded Python.xcframework ships only iOS slices (ios-arm64, ios-arm64_x86_64-simulator), so any macOS evaluation fails with 'no library for this platform was found in Python.xcframework'. All three targets are iOS products (app, app-extension, unit-test) with SDKROOT=iphoneos -- none is a real macOS target -- so macosx is spurious. Restrict to "iphoneos iphonesimulator". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Greptile SummaryDrops
Confidence Score: 5/5Safe to merge — the change is a single-key removal across 8 build configs with no risk of unintended side effects. The edit is surgical: every config that previously declared SUPPORTED_PLATFORMS with macosx has been corrected, ColumbaNetworkExtension never set the key and is properly inherited from the project level, and the residual MACOSX_DEPLOYMENT_TARGET keys are inert when SDKROOT = iphoneos is in force. There are no logic changes, no API changes, and no files outside the pbxproj are touched. No files require special attention. Columba.xcodeproj/project.pbxproj is the only changed file and all 8 affected configs look correct. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Xcode Cloud build starts] --> B{Evaluate SUPPORTED_PLATFORMS}
B --> OLD["Before: iphoneos iphonesimulator macosx"]
B --> NEW["After: iphoneos iphonesimulator"]
OLD --> C1[Resolve xcframework for iphoneos OK]
OLD --> C2[Resolve xcframework for iphonesimulator OK]
OLD --> C3[Resolve xcframework for macosx FAIL]
C3 --> ERR["Build error: no library for this platform"]
NEW --> D1[Resolve xcframework for iphoneos OK]
NEW --> D2[Resolve xcframework for iphonesimulator OK]
D1 & D2 --> SUCCESS[Build succeeds]
Reviews (1): Last reviewed commit: "fix(build): drop macosx from SUPPORTED_P..." | Re-trigger Greptile |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Problem
After #88 fixes the missing-framework fetch, Xcode Cloud hits the next error:
Root cause
The dual-backend merge (
2e49820) widenedSUPPORTED_PLATFORMSto"iphoneos iphonesimulator macosx"on every target — almost certainly an Xcode side effect of adding the sibling SPM packages (reticulum-swift,LXMF-swift,LXST-swift), which all declare.macOS(.v13).But the embedded
Python.xcframework(BeeWare Python-Apple-support) ships iOS-only slices —ios-arm64andios-arm64_x86_64-simulator, no macOS. So as soon as the build evaluates themacosxplatform, it can't resolve a slice and fails.All three native targets are iOS products with
SDKROOT = iphoneos:ColumbaAppColumbaNetworkExtensionColumbaAppTestsNone is a genuine macOS target, so
macosxis spurious.Fix
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"across all 8 build configs (removesmacosx). pbxproj lints clean.SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPADis unset and untouched — "iPhone/iPad Apps on Mac" uses the existingios-arm64slice, so that path is unaffected.Order
Needs to land with #88 — #88 makes the framework present, this makes the build stop targeting a platform the framework doesn't support. Neither alone produces a green build.