Can not use JavaScriptCore framework and a deployment target below iOS 7

Originator:cedric.luthi
Number:rdar://17076670 Date Originated:30-May-2014 11:58 AM
Status:Open Resolved:
Product:iOS SDK Product Version:7.1
Classification:Other Bug Reproducible:Always
 
Summary:
Using the JavaScriptCore framework and a deployment target below iOS 7 gets your app rejected during App Store validation.

Steps to Reproduce:
1. Link the JavaScriptCore framework to your app
2. Set your app’s deployment target to iOS 6.0 (or anything else below 7.0)
3. Submit your app to the App Store

Expected Results:
Your app passes validation since it doesn't violate any rule regarding non-public APIs.

Actual Results:
Your app is rejected with this error during App Store validation:
"The app links to non-public libraries in Payload/MyApp.app/MyApp: /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore"

Version:
Not applicable

Notes:
The JavaScriptCore framework forces linking to PrivateFrameworks/JavaScriptCore.framework when targeting iOS below version 7. See http://stackoverflow.com/questions/23514579/javascriptcore-framework-availability-on-ios/23514580#23514580 for a detailed explanation.

Greg Parker (engineer at Apple) said about this issue on Twitter (http://twitter.com/gparker/status/471722157295140864):
"Either the store policy should be changed to allow it or the SDK should be changed to prevent it."

The JavaScriptCore C API has been stable for a long time so linking to a version of the JavaScriptCore framework which is inside PrivateFrameworks is not an issue.

Please update the App Store policy to accept apps linking to PrivateFrameworks/JavaScriptCore.framework.

Configuration:
Not applicable

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!