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

Michael Hall mik3hall at gmail.com
Thu Jun 6 21:12:02 UTC 2024


Nevermind. Found it. Needed to strip the leading _

jfx/modules/javafx.web/src/main/native/Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm

extern "C" void cache_simulate_memory_warning_event(uint64_t);

void MemoryPressureHandler::platformReleaseMemory(Critical critical)
{
    if (critical == Critical::Yes && (!isUnderMemoryPressure() || m_isSimulatingMemoryPressure)) {
        // libcache listens to OS memory notifications, but for process suspension
        // or memory pressure simulation, we need to prod it manually:
        cache_simulate_memory_warning_event(DISPATCH_MEMORYPRESSURE_CRITICAL);
    }
}

Maybe someone else can suggest how you change that to avoid the non-public warning.
Or you could maybe no-op the references and apparently take some risk in low memory situations. 



> On Jun 6, 2024, at 4:03 PM, Michael Hall <mik3hall at gmail.com> wrote:
> 
> Try a newer/older version of JavaFX? 
> I’m not sure which version I cloned jfx off of GitHub but if I search the directory mentioned in the bug report I find no references to the problem symbol.
> 
>> On Jun 6, 2024, at 2:04 PM, Laurin Murer <openjdk at laurinmurer.ch> wrote:
>> 
>> Following up on JDK-8289521 from 2022 and JavaFX 18, I still can't publish an app containing JavaFX Web 21 to Apples App Store.
>> 
>> They rejected it because my 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.” (Quote from Apple)
>> 
>> Does anyone have an idea how to fix this?
> 



More information about the openjfx-dev mailing list