ITMS-90338 over LLVM container Usage

We use some of LLVM's containers in our code...llvm/ADT/SmallVector.h for example. When trying to submit our app to the App Store, it gets rejected with:


ITMS-90338: Non-public API usage - The app references non-public symbols in X-Plane: __ZN4llvm24DisableABIBreakingChecksE. 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/


What gives, Apple? Are we not allowed to use open source code in our app? 😕

Is there a way around this without having to search/replace every symbol that Apple's validator finds?

Answered by Brigitte in 376910022

You can use as many open source code as you want, but the open source code (like your own code) isn't allowed to use private Apple APIs. And I think that's what happened. If you want to distribute through the Appstore you must get rid of the parts that uses private APIs.


Greetings

Brigitte

Accepted Answer

You can use as many open source code as you want, but the open source code (like your own code) isn't allowed to use private Apple APIs. And I think that's what happened. If you want to distribute through the Appstore you must get rid of the parts that uses private APIs.


Greetings

Brigitte

Yeah one of the LLVM headers (api-breaking.h) had an extern int that was apparently coming from the linkage to the runtime. We replaced that with a local variable and the review process is fine now. Thanks!

ITMS-90338 over LLVM container Usage
 
 
Q