Search code examples
iosfluttertestflight

Is it possible to load a debug verion of an ios app to test flight?


When doing some testing on testflight we facing some crashes of our app. The crash reports provided in test flight are not very helpful because I can't see at which point in my app the crash happened. Also log output is not shown. Because of that I've tried to upload a debug version to testflight to provide it to at least the internal testers. After the upload the debug version I received this email:

ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _IOIteratorNext, _IOObjectRelease, _IORegistryEntryCreateCFProperties, _IORegistryEntryGetChildIterator, _IOServiceGetMatchingServices, _IOServiceNameMatching, _kIOMasterPortDefault, _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

Is is in general not possible to upload debug versions to testflight?


Solution

  • In general there is no problem uploading a Debug version to TestFlight. I expect that Flutter is using these non-public symbols in their Debug builds, but removing them in Release. ("In addition, note that one or more of the above APIs may be located in a static library that was included with your app.")

    See also: https://github.com/flutter/flutter/issues/64430

    It comes from the Flutter Engine. See IOKit.h where they import private methods if FLUTTER_RUNTIME_MODE is either DEBUG or PROFILE.