Is there any list of methods which are not allowed when they are compiled in the application? Or a syntax that is not allowed?
With this message from Connect recently our app has been rejected due to the removeEvents method name:
Your app uses or references the following non-public APIs:
removeEvents:
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.
End. No more details regarding the finding.
The method is used in the app on a core data object (subclassed from NSManagedObject). The object (and the method) was generated by mogenerator app for quite a long time. I did not find any reference in the updated review guidelines for iOS10 that is relevant to this.
The issue is that in the rejection statement from Apple there is no private api, or a conventional object description, or any principle that I could follow to avoid this next time when the app is being approved. It is then making from the review an unpredictable process.
I could not find any trace of this method using both nm or otool. None of them has found a reference to this.
EDIT: In the iTunes Connect is an option to submit an appeal to the App Review Board. I did not noticed this before. The question is when they will review the review.
A member from the review board has contacted us and confirmed that the only way to get the information about a collision with a private api is to let the app pass through the review process. Apple offered to complete a new review in two days and so they did.
I have renamed the method and the app was not rejected.