Search code examples
javamac-app-store

How to solve App Store libicucore.A.dylib sumission issue


I got this error when trying to update an application to App Store:

2.5

The use of non-public APIs can lead to a poor user experience should these APIs change in the future, and is therefore not permitted. The following non-public APIs are included in your application:

Framework:

'/usr/lib/libicucore.A.dylib'

Non-public APIS:

: ubrk_getRuleStatus : ubrk_setUText : ucnv_getCanonicalName : ucnv_reset : ucol_strcollIter

If you have defined methods in your source code with the same names as the above-mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged in future submissions.

Additionally, one or more of the above-mentioned APIs may reside in a library included with your application. If you do not have access to the library's source, you may be able to search the compiled binary using "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.


Solution

  • The problem stems from the fact that the application is built with jdk1.8.0_65. jdk embedded. More exactly the problem comes from libjfxwebkit.dylib library that is importing libicucore.A.dylib library. The problem is solved by deleting libjfxwebkit.dylib. Details here.