Skip to content

fix(build): drop macosx from SUPPORTED_PLATFORMS (iOS-only app)#89

Merged
torlando-tech merged 1 commit into
mainfrom
fix/ios-only-no-macosx
Jun 1, 2026
Merged

fix(build): drop macosx from SUPPORTED_PLATFORMS (iOS-only app)#89
torlando-tech merged 1 commit into
mainfrom
fix/ios-only-no-macosx

Conversation

@torlando-tech

Copy link
Copy Markdown
Owner

Problem

After #88 fixes the missing-framework fetch, Xcode Cloud hits the next error:

While building for macOS, no library for this platform was found in …/Frameworks/Python.xcframework.

Root cause

The dual-backend merge (2e49820) widened SUPPORTED_PLATFORMS to "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-arm64 and ios-arm64_x86_64-simulator, no macOS. So as soon as the build evaluates the macosx platform, it can't resolve a slice and fails.

All three native targets are iOS products with SDKROOT = iphoneos:

Target Product type
ColumbaApp application
ColumbaNetworkExtension app-extension
ColumbaAppTests unit-test

None is a genuine macOS target, so macosx is spurious.

Fix

SUPPORTED_PLATFORMS = "iphoneos iphonesimulator" across all 8 build configs (removes macosx). pbxproj lints clean.

SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD is unset and untouched — "iPhone/iPad Apps on Mac" uses the existing ios-arm64 slice, 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.

Caveat (unchanged): once past this, the remaining suspect is the Xcode Cloud workflow's Xcode version — the Python clang module map needs Xcode 26 (the reason GitHub Actions is on macos-26). That's an App Store Connect setting, not in the repo.

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-apps

greptile-apps Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Drops macosx from SUPPORTED_PLATFORMS in all 8 build configurations across the ColumbaApp and ColumbaAppTests targets. This prevents Xcode Cloud from attempting to resolve a macOS xcframework slice that the BeeWare Python.xcframework (iOS-only: ios-arm64 + ios-arm64_x86_64-simulator) does not ship.

  • 8 configs patched: Debug, Release, Debug-Swift, and Release-Swift for both ColumbaApp and ColumbaAppTests; ColumbaNetworkExtension never had an explicit SUPPORTED_PLATFORMS key and is unaffected.
  • MACOSX_DEPLOYMENT_TARGET = 14.0 remains set in several configs — this key is benign when SDKROOT = iphoneos and macosx is absent from SUPPORTED_PLATFORMS; Xcode uses it for library compatibility checks and it does not cause a macOS build to be attempted.

Confidence Score: 5/5

Safe 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

Filename Overview
Columba.xcodeproj/project.pbxproj Removes macosx from SUPPORTED_PLATFORMS across all 8 build configs (ColumbaApp x4, ColumbaAppTests x4) that explicitly declared it, preventing Xcode from attempting to resolve a macOS slice that does not exist in the iOS-only Python.xcframework.

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]
Loading

Reviews (1): Last reviewed commit: "fix(build): drop macosx from SUPPORTED_P..." | Re-trigger Greptile

@codecov

codecov Bot commented Jun 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@torlando-tech torlando-tech merged commit 0f93b5e into main Jun 1, 2026
3 checks passed
@torlando-tech torlando-tech deleted the fix/ios-only-no-macosx branch June 1, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant