0

This is the message I got from Apple for rejecting my app:

Your app uses or references the following non-public APIs:

didDetermineState:forRegion:
didEnterRegion:
didExitRegion:

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

I really don't know what to do as there api are clearly public. Anyone got some advise? It would really help.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
Pratham Mehta
  • 293
  • 2
  • 13
  • 4
    I'm voting to close this question as off-topic because it is about an app store's policies and procedures, rather than programming. See [Are developer-centric questions about application stores on topic?](//meta.stackoverflow.com/q/272165) – Makyen May 27 '18 at 23:52

1 Answers1

2

I think the public apis you are mentioning about are those in CLLocationManagerDelegate. If it is the case, take didEnterRegion:, for example, the api is actually locationManager:didEnterRegion:. However, Apple mentions didEnterRegion: only. That probably means somewhere in your app, you have declared a method with that exact signature, and it happens to have the same signature with a private api method.

My suggestion is to do a search on your whole project for such methods and rename them.

Thanh Pham
  • 2,021
  • 21
  • 30
  • Yeah.. That's most likely the case. There's this library I've used from FourSquare which has methods with that signature. I've sent in a note to Apple clarifying the issue. Hope they approve it quickly. Thanks a lot! – Pratham Mehta Sep 23 '16 at 04:40