App refused by Apple with error ITMS-90338: Non-public API usage #103949
Description
Description
Hi,
we were able to migrate our solution from Xamarin to MAUI (.net 8).
After a 2 weeks fight, the app is finally working on Android and iOS in both Debug and Release configuration.
Unfortunately, after sending to Apple, the app is rejected because of the following:
ITMS-90338: Non-public API usage - The app references non-public symbols in [Our app name]: _SCDynamicStoreCreate, _SCDynamicStoreCreateRunLoopSource, _SCDynamicStoreKeyCreateNetworkServiceEntity, _SCDynamicStoreSetNotificationKeys.
If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
From what I understand, this is because the 4 methods (_SCDynamicStoreCreate, _SCDynamicStoreCreateRunLoopSource, _SCDynamicStoreKeyCreateNetworkServiceEntity, _SCDynamicStoreSetNotificationKeys) exists in the generated Mach-O binary.
Those methods are not used directly by our application but because of HttpClient we are using to request our business API
The methods are implemented in the System.Net.NetworkInformation assembly which is referenced in the System.Net.Http assembly
Installed Workload Id Manifest Version Installation Source
---------------------------------------------------------------------
android 34.0.113/8.0.100 VS 17.11.35005.142
maccatalyst 17.2.8053/8.0.100 VS 17.11.35005.142
ios 17.2.8053/8.0.100 VS 17.11.35005.142
maui-windows 8.0.40/8.0.100 VS 17.11.35005.142
aspire 8.0.0/8.0.100 VS 17.11.35005.142
Use `dotnet workload search` to find additional workloads to install.
Steps to Reproduce
No response
Link to public reproduction project repository
No response
Version with bug
8.0.40 SR5
Is this a regression from previous behavior?
Not sure, did not test other versions
Last version that worked well
Unknown/Other
Affected platforms
iOS
Affected platform versions
Targeted iOS version: 11.0
Did you find any workaround?
No workaround found
Relevant log output
ITMS-90338: Non-public API usage - The app references non-public symbols in [Our app name]: _SCDynamicStoreCreate, _SCDynamicStoreCreateRunLoopSource, _SCDynamicStoreKeyCreateNetworkServiceEntity, _SCDynamicStoreSetNotificationKeys.
If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
Activity