The app references non-public selectors in Payload: appID, expirationDate, isOpen - ios

I have integrated Everyplay in my game based on SpriteKit. After submitting an update I got a warning "The app references non-public selectors in Payload/game.app/game: appID, expirationDate, isOpen".
I have searched for few hours to solve the problem but haven't found something useful.
Could you help me to fix this problem?
Will my game get approved?
Edit: This is coming from Everyplay's code. I ran strings command (to test).
My game was approved.

Yes, these are from Everyplay. They way we access the Facebook SDK within the game references non-public selectors, but since these are not private Apple API's, there are no issues with doing so aside from the warning you get.
So your app is approved normally and you can ignore the warnings.

Related

How to fix the _ADBannerContentSizeIdentifierLandscape, non-public symbols

I got apple mail following content:
We identified one or more issues with a recent delivery for your app, "App name". Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app references non-public symbols in "App name": _ADBannerContentSizeIdentifierLandscape, _ADBannerContentSizeIdentifierPortrait. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
Get above error message app store when upload the app too app store, i removed the iAd.framework reference related all pods and library but still i got same error email.
Any have solution for this error, please share your thoughts..,
Thanks.
I think the best idea might be to send a TSI because that is sounding like an apple problem.
The final solution is to remove the Mobile App Tracker framework in the project.

Card.io cause Non-public API usage

I got some trouble when I try to upload my app to AppStore.
Apple reject the app with these error message:
Non-public API usage:
The app references non-public selectors in MyAppiOS: cardNumber, cardType, libraryVersion, navigationBarStyle, navigationBarTintColor, preload, setCardNumber:, setNavigationBarTintColor:
Deep searching told me that the Card.IO is causing the problem, indeed it has all the above selectors.
The same code was uploading successfully. What can be the cause of such behavior?
The same code was uploading successfully. What can be the cause of such behavior?
Apple is continuously updating the checks they do on submitted applications. This means that re-submitting a new version, even with a trivial change, can sometimes end up rejected because of the new checks.
Your best bet is to ensure you're using the latest version of the library. An update might already be available for you - unless you're in the first people affected. In the later case you should file an issue with the developer or, since it's open source, re-compile a version of the library that excludes those symbols.

Non-public API usage ItunesConnect warning

After updating PSPDFKit library in my application. But the interface of the library didn't change much from the previous version. Then I had uploaded it for internal testing(I use Xcode 7.0.1.) and received next warning:
I can see the build on iTunes page but it already almost 24 hours in Processing state.
The questions are:
1)If anyone received the same recently?
2)If there connection between the warning and Processing state taking so long?
3)Is this warning really can lead to rejecting the application?
And I saw similar questions on Stack-overflow but they seem to be outdated.
if an app use non public api then app will be rejected from apple.
This written on apple page
https://developer.apple.com/app-store/review/guidelines/
Apps that use non-public APIs will be rejected
I'm one of the PSPDFKit SDK authors.
None of the mentioned method names are private API and we haven't seen such a report so far. Please contact us at support.pspdfkit.com directly so we can work out what's going on here. Since we recently released PSPDFKit v5, many companies updated their apps so we can say with guarantee that our product does not get flagged on iTunes for such issues.
I also recommend updating Xcode, as we only list Xcode 7.1 and higher as compatible: https://pspdfkit.com/changelog/ios.

The app references non-public selectors in :setRefreshInterval

When trying to upload an iOS app for the appstore I am getting an error stating that
The app references non-public selectors in :setRefreshInterval
I am using a lot of libraries in my project from different Ad Network SDKs to three20, upon investigation I found out that the static library FlurryAds.a contains these methods and may cause an app rejection.
I have the latest Flurry SDK installed in fact I just downloaded it last night.
I asked one of my friends who recently integrated flurry ads that he got the same error but his app went through.
And now my question is did anyone else got this error while uploading the app to the appstore & if they did, were their app rejected?
For now I will be disabling FlurryAds but I will forward to your suggestions / pointers.
This warning is shown as a result of Flurry calling setRefreshInterval in two different mediated networks. Flurry is not calling any Apple private APIs. Many publishers have submitted with this, and since a private API is not called, there are no problems in submitting to the AppStore. (Full disclosure: I work in the Support team at Flurry)

iTunes : App Upload Warning : The app references non-public selectors in :setRefreshInterval

While uploading the binary app to iTunes, it reports warning as follows:
The app references non-public selectors in :setRefreshInterval
How can I solve this issue?
Which public API can resolve the issue (:setRefreshInterval) ?
It means you have used a private API, not a documented/public one. Apple will generally reject your app if you use this because they are not permitted and if Apple changes the internal system (included this undocumented code) it can crash your app.
And people would leave negative reviews.
In this case setRefreshInterval: is the private method so what does setRefreshInterval: do in your code, then maybe I can give you alternatives...
I'm pretty sure to check if you are using a public API: there is no auto completion and another thing is press alt and click the method/property to see if it has documentation
This means that the validation has spotted an invocation of some private API in your app. Take a look in that method mentioned in the warning and see if there is anything there that is not permitted. Once you've found it, try to accomplish the same thing using public APIs.
I couldn't find that selector in the iOS public API. I found it in the MacOS NSTimeInterval class. And even though that selector could work in iOS, since it's not public, you can't use it in an iOS app if you plan to push that app to the AppStore.

Resources