Required Reading
Plugin Version
5.1.1
Mobile operating-system(s)
Device Manufacturer(s) and Model(s)
Apple iPhone 17 Pro Max (note: this is a build/link-time error, not device-specific)
Device operating-systems(s)
Test device iOS 27.0 — but reproduced building against the iOS 18.5 SDK (Xcode 16.4) and the iOS 26 SDK (Xcode 26.5)
React Native / Expo version
React Native 0.81.5, Expo SDK 54.0.25 (New Architecture enabled)
What do you require assistance about?
Summary
Linker failure I can't resolve from the app side — looking for the recommended config for apps that must use static frameworks.
Environment
react-native-background-geolocation: 5.1.1
- Expo SDK 54.0.25 (React Native 0.81.5), New Architecture enabled
- Config plugins used:
react-native-background-geolocation + expo-gradle-ext-vars
use_frameworks! :linkage => :static — required for Google Maps (react-native-maps)
- Reproduced on both Xcode 26.5 (iOS 26 SDK) and Xcode 16.4 (iOS 18.5 SDK) — not Xcode-version-specific
Error (at link time) ld: cannot link directly with 'SwiftUICore' because product being built is not an allowed client of it
TSLocationManager.xcframework autolinks the private SwiftUICore. Under static linkage that autolink propagates to the app's link line, where the iOS 18.5+ SDK's SwiftUICore.tbd allowable_clients list rejects it.
What I've already tried (none resolve it)
-weak_framework SwiftUICore in OTHER_LDFLAGS → still rejected (allowable_clients blocks even a weak link)
-Wl,-ld_classic (force the classic linker) → the classic linker enforces allowable_clients too
-Wl,-client_name,SwiftUI → rejected: "-client_name can only be used when creating a bundle or main executable" (the link happens in the React Native debug dylib)
- Forcing the pod to a dynamic framework via a Podfile
pre_install hook → fails: "The 'Pods-…' target has transitive dependencies that include statically linked binaries: TSLocationManager.xcframework" (the xcframework is static)
Question
Is there a recommended Podfile / build-settings configuration for apps that must use use_frameworks! :linkage => :static, or a TSLocationManager build that doesn't force a direct SwiftUICore link? Is this addressed in a newer / beta build of the SDK?
[Optional] Plugin Code and/or Config
[Optional] Relevant log output
Required Reading
Plugin Version
5.1.1
Mobile operating-system(s)
Device Manufacturer(s) and Model(s)
Apple iPhone 17 Pro Max (note: this is a build/link-time error, not device-specific)
Device operating-systems(s)
Test device iOS 27.0 — but reproduced building against the iOS 18.5 SDK (Xcode 16.4) and the iOS 26 SDK (Xcode 26.5)
React Native / Expo version
React Native 0.81.5, Expo SDK 54.0.25 (New Architecture enabled)
What do you require assistance about?
Summary
Linker failure I can't resolve from the app side — looking for the recommended config for apps that must use static frameworks.
Environment
react-native-background-geolocation: 5.1.1react-native-background-geolocation+expo-gradle-ext-varsuse_frameworks! :linkage => :static— required for Google Maps (react-native-maps)Error (at link time) ld: cannot link directly with 'SwiftUICore' because product being built is not an allowed client of it
TSLocationManager.xcframeworkautolinks the privateSwiftUICore. Under static linkage that autolink propagates to the app's link line, where the iOS 18.5+ SDK'sSwiftUICore.tbdallowable_clientslist rejects it.What I've already tried (none resolve it)
-weak_framework SwiftUICoreinOTHER_LDFLAGS→ still rejected (allowable_clientsblocks even a weak link)-Wl,-ld_classic(force the classic linker) → the classic linker enforcesallowable_clientstoo-Wl,-client_name,SwiftUI→ rejected: "-client_name can only be used when creating a bundle or main executable" (the link happens in the React Native debug dylib)pre_installhook → fails: "The 'Pods-…' target has transitive dependencies that include statically linked binaries: TSLocationManager.xcframework" (the xcframework is static)Question
Is there a recommended Podfile / build-settings configuration for apps that must use
use_frameworks! :linkage => :static, or aTSLocationManagerbuild that doesn't force a directSwiftUICorelink? Is this addressed in a newer / beta build of the SDK?[Optional] Plugin Code and/or Config
[Optional] Relevant log output