Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Appstore does not accept apps using private CF API's #1568

Closed
johanvos opened this issue Aug 5, 2019 · 4 comments · Fixed by #2266
Closed

Appstore does not accept apps using private CF API's #1568

johanvos opened this issue Aug 5, 2019 · 4 comments · Fixed by #2266
Assignees

Comments

@johanvos
Copy link
Contributor

johanvos commented Aug 5, 2019

When submitting an app build using Graal to the AppStore, the app was rejected and the following message was received:

The app references non-public symbols in App: __CFCopyServerVersionDictionary, __CFCopySystemVersionDictionary.
This is due to _CFCopyServerVersionDictionary and _CFCopySystemVersionDictionary in com.oracle.svm.core.posix.headers.darwin.
Those functions are used in com.oracle.svm.core.posix.darwin.DarwinSystemPropertiesSupport.osVersionValue and they should probably be replaced with "non-internal" functions.

@johanvos
Copy link
Contributor Author

johanvos commented Aug 5, 2019

FWIW, by removing these 2 methods, we could upload an app to the AppStore without issues.

@olpaw
Copy link
Member

olpaw commented Dec 19, 2019

@johanvos is this still relevant? Can we close the issue?

@johanvos
Copy link
Contributor Author

johanvos commented Jan 6, 2020

It is still relevant. I'll create a PR for this.

johanvos added a commit to johanvos/graal that referenced this issue Jan 6, 2020
@johanvos
Copy link
Contributor Author

johanvos commented Jan 7, 2020

The approach for getting the system os version in GraalVM is not allowed by Apple (at least, apps that use it can not be uploaded to the App Store (ios) or Apple Store (mac)) because it is using an internal CoreFoundation API.

The approach taken in OpenJDK is valid for Apple though: https://github.com/openjdk/jdk/blob/master/src/java.base/macosx/native/libjava/java_props_macosx.c#L237 -- but I don't see an easy way to replace the Java code in

CoreFoundation.CFDictionaryRef dict = CoreFoundation._CFCopyServerVersionDictionary();
with the approach used in the hotspot code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants