I received the following rejection message:
Your app uses or references the following non-public APIs:
- removeItems:,
- setSelectedSection:
- setIsNew:
- selectedSection
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.
Looking through the code, I find
removeItems:
in a piece of code implemented by Xcode Core Data code generator (I have a substructure called items).selectedSection
and isNew
are property in generated core data code.The code passed last deployment. And the code passed beta review two or three weeks ago.
Does Apple forbid to use these function names in MY private code? Or is there currently an AppStore issue with false positives?
UPDATE: I received the following answer from Apple App Review team:
Thank you for your response. For each of the selectors at issue, we found the following occurrences:
... 4 method uses deleted ...
To clarify, these are not necessarily direct uses of non-public APIs, but as your app does not have these statically defined, they are name collisions with possible private selectors, and as such revision is appropriate.
The last section is especially interesting: Does this mean, that I cannot any longer choose the names of any methods free of fear that Apple might come up with the same method name? Or, to reduce it to a objc question: what is "statically defined"?
static
C-methods? class-methods?UPDATE: This question is also posted on SO here: http://stackoverflow.com/questions/39504260/appstore-rejected-use-of-private-calls-refers-to-my-own-methods