I am building a Xamarin.Forms app that is building properly and deploying to the Apple App Store but keeps getting rejected for the following reasons:
ITMS-90338: Non-public API usage - The app references non-public selectors in [App].Mobile.iOS: accessibilityBrailleMapRenderRegion, accessibilityBrailleMapRenderer, accessibilityColumnRange, accessibilityRowRange, activePlayer, beginAuthorizationWithRequest:, cancelAuthorizationWithRequest:, errorForCHIPErrorCode:, errorToCHIPErrorCode:, playerId, serviceExtensionWillTerminate, session:didReceiveData:fromPlayer:, session:didReceiveMessage:withData:fromPlayer:, session:player:didChangeConnectionState:, session:player:didSaveData:, setAccessibilityBrailleMapRenderRegion:, setAccessibilityBrailleMapRenderer:. 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.
I coded the app on a PC in Visual Studio Community 2019 v16.9.1. And built and deployed the app via Appcenter.ms.
Packages that I am using are:
- Microsoft.AppCenter.Analytics v4.5.0
- Microsoft.AppCenter.Crashes v4.5.0
- Xamarin.Essentials v1.7.1
- Xamarin.Forms v5.0.0.2337
Target Framework: .NET Standard 2.0
Information that I have confirmed from other sources:
- Build Configuration: Release
- Linker Behavior: Link Framework SDKs Only
- Additional mtouch arguments: --linkskip=[selectors]
- Additional mtouch arguments: --linkplatform
I have found all of the non-public selectors in xamarin/xamarin-macios
and xamarin/apple-api-docs
but I have not been able to find out how to fix the errors.
Thanks
Edit: I was not able to fix the issue. Instead, I got a Mac VM and was able to publish the code that way.