non-public selectors in Payload - ios

My app is rejected due to the reason " use of non-public APIs is not permitted in the App Store because it can lead to a poor user experience should these APIs change"
My first version have been approved by app store without any reason and updating next version would lead this result.
I validated the app and found the following :
iTunes Store operation succeeded with a warning.
The app references non-public selectors in Payload/alootamatar.app/alootamatar:setReuseIdentifier:
Can anyone pls help me how to resolve this issue.

My solution is
a local variable reuseIdentifier is initialized with the Apple defined variable cell.reuseIdentifier.

How about trying delete the DerivedData folder

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.

App is rejected using non-public API LSApplicationWorkspace

My iOS App is rejected from Apple Store review with the following issue:
Your app uses or references the following non-public APIs:
LSApplicationWorkspace, defaultWorkspace
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.
But I can find any code about these APIs. Anyone know which part will contain these APIs ?
My blindfold shot in the dark (edit: not sure why it matters that it's dark if I'm blindfold): Make sure that if you have any testing related pods or libraries, that they are not included in the target you use for deployment. Calabash for example probably does make use of private APIs to get work done that'd not be possible otherwise, but it's not meant to be on the app you release.
We experienced the same error. Calabash is referencing LSApplicationWorkspace. After excluding references to Calabash for release builds, the app was not rejected from review any longer.

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.

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

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.

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