8289521: Publication to Apple App Store still not possible with JavaFX web 21

Laurin Murer openjdk at laurinmurer.ch
Sat Feb 21 16:52:09 UTC 2026


Almost two years later, and I still was not able to publish my app to the App Store (granted, I gave up for a while).

Now I tried it again, after updating to Java (and FX) 25. However, this issue still persists. Apples exact wording:
> Guideline 2.5.1 - Performance - Software Requirements
> Your app uses or references the following non-public or deprecated APIs:
> 
> Contents/runtime/Contents/Home/lib/libjfxwebkit.dylib
> Symbols:
> • _cache_simulate_memory_warning_event
> 
> The use of non-public or deprecated APIs is not permitted on the App Store, as they can lead to a poor user experience should these APIs change and are otherwise not supported on Apple platforms.
> 
> Next Steps
> 
> It would be appropriate to revise your binary and remove any references to the non-public or deprecated APIs identified above. 
> 
> If you are using third-party libraries, update to the most recent version of those libraries. If you do not have access to the libraries' source, the following command line tools can help you identify the location of problematic code:
> - The "strings" tool can output a list of the methods the library calls.
> - The "otool -ov" tool will output the Objective-C class structures and their defined methods.


I doubt, that anyone was able to submit a new App with JavaFX-Web to Apples App Store in the last few years. This is such a pity, that’s why I give it another try.

Can anyone help me with that? Michael Hall already had the idea to add a compiler directive similar to one which was there before 2016-12-14 and no-oped the problematic memory-cleanup-call for certain platforms/versions.

Does anyone have another idea or is willing to bring this idea forward?


> On 13 Jun 2024, at 21:31, Laurin Murer <openjdk at laurinmurer.ch> wrote:
> 
> Yes, it sounds like the method cache_simulate_memory_warning_event was never public (at least I couldn’t find any documentation about it) and Apple started to enforce its removal. As far as I can tell, a user of JavaFX web cannot fix this and has currently no chance of publishing a (new?) app to Apples App Store.
> 
> For a bit of context, this call is inside the method MemoryPressureHandler::platformReleaseMemory which is implemented differently on different platforms:
> - cocoa (Mac): with the discussed method
> - generic: does nothing (empty implementation)
> - unix: calls `malloc_trim(0);`
> - win: does nothing (empty implementation)
> 
> The currently only solution is the one of Michael Hall to add a compiler directive similar to one which was there before 2016-12-14 and no-oped it for certain platforms/versions. I guess this idea would fix the problem of submitting it to Apples App Store.
> 
> Does anyone have another idea or is willing to bring this idea forward?
> 
> 
>> On 7 Jun 2024, at 17:48, Michael Hall <mik3hall at gmail.com> wrote:
>> 
>> Sorry, I did a little more digging on this.
>> 
>> My best guess is that Apple is rejecting this because they think you are using a non-public API of their own.
>> 
>> The OpenJFX version of MemoryPressureHandlerCocoa.mm matches what appears to be the current WebKit version. [1]
>> 
>> Older versions appear somewhat different. Including this…
>> 
>> #if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
>> 
>> [2][3]
>> 
>> [3] seems to show where this code was actually introduced with the above included.
>> 
>> It might be that for a Cocoa version it was thought that this compiler directive wasn’t needed but it actually still is?
>> Anyhow, adding something similar now might achieve a no-op that would get past them flagging this as an error. 
>> ‘locate’ on my machine doesn’t seem to show the libcache.dylib mentioned anywhere other than Xcode and other developer locations. 
>> 
>> [1] https://github.com/WebKit/webkit/blob/main/Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm
>> [2] https://opensource.apple.com/source/WebCore/WebCore-7601.5.17/platform/cocoa/MemoryPressureHandlerCocoa.mm.auto.html
>> [3] https://fossies.org/diffs/WebKit/r174650_vs_r189384/Source/WebCore/platform/cocoa/MemoryPressureHandlerCocoa.mm-diff.html
>> 
>>> On Jun 6, 2024, at 6:41 PM, Michael Hall <mik3hall at gmail.com> wrote:
>>> 
>>> Odd, but searching shows this used in a different places and nowhere does it appear anyone has made any changes to the symbol referencing code.
>>> It seems like some applications should of used this same code as-is.
>>> Sort of strange.
>>> I’m done with what digging I think I’m going to do.
>>> 
>>> GL.
>> 
> 



More information about the openjfx-dev mailing list