Component
iOS SDK
Bug Description
The iOS binary targets RACommons.framework, RABackendLLAMACPP.framework, RABackendONNX.framework, and onnxruntime.framework are static archives wrapped in .framework bundles. Xcode treats all .framework bundles as embeddable and copies them into YourApp.app/Frameworks/ — even though they're already statically linked into the app binary. App Store Connect then rejects the upload.
Steps to Reproduce
- Add
RunAnywhere, RunAnywhereLlamaCPP, and RunAnywhereONNX via SPM (v0.19.6)
- Archive for App Store distribution (
xcodebuild archive)
- Export and upload to App Store Connect
- Upload is rejected with errors 90057 and 90208
Expected Behavior
Static library binary targets should not be embedded in the app's Frameworks directory. The upload should succeed without a workaround.
Environment
- OS: iOS 17.6+ deployment target
- SDK Version: 0.19.6 (latest)
- Xcode: 16.4
- Device: Generic iOS device (archive build)
Logs/Screenshots
App Store Connect validation errors:
- ITMS-90057:
CFBundleSupportedPlatforms and MinimumOSVersion missing from Info.plist in RACommons.framework, RABackendLLAMACPP.framework, RABackendONNX.framework
- ITMS-90208:
onnxruntime.framework fails additional bundle validation
Workaround
A Run Script build phase that removes the static frameworks from the embedded Frameworks directory before packaging:
for fw in RACommons RABackendLLAMACPP RABackendONNX onnxruntime; do
rm -rf "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${fw}.framework"
done
Suggested Fix
Either:
- Distribute these as plain
.a static libraries (not wrapped in .framework bundles), so Xcode doesn't attempt to embed them, or
- Mark the binary targets with
type: .static in the Package.swift manifest so SPM handles linking correctly without embedding
Related
This may share a root cause with #273 (simulator builds failing due to native library binary issues) — both stem from how the static archives are packaged as .framework bundles.
Component
iOS SDK
Bug Description
The iOS binary targets
RACommons.framework,RABackendLLAMACPP.framework,RABackendONNX.framework, andonnxruntime.frameworkare static archives wrapped in.frameworkbundles. Xcode treats all.frameworkbundles as embeddable and copies them intoYourApp.app/Frameworks/— even though they're already statically linked into the app binary. App Store Connect then rejects the upload.Steps to Reproduce
RunAnywhere,RunAnywhereLlamaCPP, andRunAnywhereONNXvia SPM (v0.19.6)xcodebuild archive)Expected Behavior
Static library binary targets should not be embedded in the app's Frameworks directory. The upload should succeed without a workaround.
Environment
Logs/Screenshots
App Store Connect validation errors:
CFBundleSupportedPlatformsandMinimumOSVersionmissing from Info.plist inRACommons.framework,RABackendLLAMACPP.framework,RABackendONNX.frameworkonnxruntime.frameworkfails additional bundle validationWorkaround
A Run Script build phase that removes the static frameworks from the embedded Frameworks directory before packaging:
Suggested Fix
Either:
.astatic libraries (not wrapped in.frameworkbundles), so Xcode doesn't attempt to embed them, ortype: .staticin thePackage.swiftmanifest so SPM handles linking correctly without embeddingRelated
This may share a root cause with #273 (simulator builds failing due to native library binary issues) — both stem from how the static archives are packaged as
.frameworkbundles.