Xaree Lee
Xaree Lee

Reputation: 3397

Fails to distribute my app: "Your app contains non-public API usage."

After I fixed some bugs and refactored my project which has been release on App Store, it fails to distribute. The Xcode shows the following error message:

  • Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application.
  • The app references non-public symbols in Payload/XXX.app/XXX: UICreateCGImageFromIOSurface

XXX is the app name.

I've search the entire project, and didn't find any this keyword (UICreateCGImageFromIOSurface). How can I fix this?

Upvotes: 11

Views: 7085

Answers (5)

Supriya
Supriya

Reputation: 581

cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add [email protected]

Upvotes: 0

codeye
codeye

Reputation: 594

  • Never ship an app linked against the Reveal library. Reveal exposes your app to deep introspection and will likely cause your app to be rejected by the Apple review team. Reveal is intended for internal development and debugging purposes only.
  • The Reveal service will stop automatically while the iOS host app is not the frontmost app. It will automatically start again when the app is re-opened.
  • Reveal supports inspection of applications compiled against iOS 6 and later. The iOS Deployment Target build setting must also be 'iOS 6.0' or later. You may see link errors if this is not the case.
  • Reveal uses Bonjour to connect with the running iOS application. If you are running the iOS application on a device, it will need to be on the same network as the Reveal Mac app to be able to connect with it. If you have any problems connecting to your application check your firewall and proxy setting to ensure they are not blocking communications.

Find out more...

Upvotes: 0

iMemon
iMemon

Reputation: 1093

Double check any third-party libraries you are using in your project

I was facing the issue and after checking my pods file, I found that Look Back - Framwork which is available for debug builds only as for as I know. So removing that fixed the issue. Successfully submitted app through Xcode 6.1 for Apple Testflight beta testing :)

Upvotes: 0

bealex
bealex

Reputation: 10014

You app contains code not only from sources, but from all statically linked libraries. You have to check all of those for containing private call. Looks like at least Reveal library contains it.

Upvotes: 1

Apurv
Apurv

Reputation: 17186

Remove Reveal.framework from your project. This should not be linked in release mode of your binary.

Upvotes: 37

Related Questions