Skip to content

App refused by Apple with error ITMS-90338: Non-public API usage #103949

Open
@clem0338

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.

Mach-O binary methods

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

Assembly references
System Net NetworkInformation

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    area-System.Netos-iosApple iOStracking-external-issueThe issue is caused by external problem (e.g. OS) - nothing we can do to fix it directly

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions