By Alvin Alexander. Last updated: November 14, 2019
As a brief note today, if you’re using Flutter and get this “ITMS-90338: Non-public API usage” App Store Connect error message, it probably means you forgot to run flutter build ios
before submitting your app to the App Store:
We identified one or more issues with a recent delivery for your app,
"Foo Bar" 1.0.0 (5). Please correct the following issues, then
upload again.
ITMS-90338: Non-public API usage - The app references non-public symbols
in Frameworks/Flutter.framework/Flutter: _ptrace. 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/
Solution
Step 1 in your Flutter/iOS release process should be to run this command:
flutter build ios
Or you can add the --release
flag, if you prefer:
flutter build ios --release
After that, then you can hop into XCode and deploy your iOS app to Apple’s App Store.
Personally, I kept forgetting this step, so Apple kept sending me emails with that “ITMS-90338: Non-public API usage” error message until I finally realized what I was doing wrong.