Below is an English version of your post, ready to copy-and-paste into the Apple Developer Forums:
I’m seeing a crash in Xcode 26 beta 3 whenever the StoreKit symbol SKStoreProductParameterAdNetworkSourceIdentifier
is present while running on an iOS 15 simulator.
Steps to reproduce
- Install Xcode 26 beta 3.
- Create any iOS app and run it on an iOS 15 simulator (device model doesn’t matter).
- Add the following code anywhere and run:
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 16.1, *) {
print("SKStoreProductParameterAdNetworkSourceIdentifier: \(SKStoreProductParameterAdNetworkSourceIdentifier)")
}
}
The project builds successfully, but before the #available(iOS 16.1, *)
check is reached, the app crashes with:
Symbol not found: _SKStoreProductParameterAdNetworkSourceIdentifier
When I build the same project with Xcode 16.4 and launch it on an iOS 15 simulator, it runs without crashing.
Investigation so far
Because SKStoreProductParameterAdNetworkSourceIdentifier
is just an NSString
, I could substitute the string literal "SKStoreProductParameterAdNetworkSourceIdentifier"
as a temporary workaround, but that doesn’t feel like a proper fix.
The symbol is still declared in both SDKs:
/Applications/Xcode-16.4.0.app/.../StoreKit.framework/Headers/SKAdNetwork.h:48:
SK_EXTERN NSString * const SKStoreProductParameterAdNetworkSourceIdentifier API_AVAILABLE(ios(16.1)) API_UNAVAILABLE(macos, watchos, visionos);
/Applications/Xcode-26.0.0-Beta.3.app/.../StoreKit.framework/Headers/SKAdNetwork.h:48:
SK_EXTERN NSString * const SKStoreProductParameterAdNetworkSourceIdentifier API_AVAILABLE(ios(16.1)) API_UNAVAILABLE(macos, watchos, visionos);
So the symbol hasn’t been removed in the beta SDK. Given that the code is wrapped in #available(iOS 16.1, *)
, I don’t believe the sample itself is at fault.
Questions
- Could this be a bug in Xcode 26’s availability checking or linker?
- Has anyone else encountered the same issue or found a more robust workaround?
Any insights would be greatly appreciated.