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)
Related
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.
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.
I get the following error message when I try to upload the archived app to the App Store:
I tried removing AdColony I was able to upload. Any ideas on how to get this error fixed?
We have throughly tested the app submission process and have found that apps submitted containing our SDK are being processed successfully through Apple’s iTunes Connect site. Our SDK is fully compliant with Apple’s stated intended usage and collection requirements for IDFA.
When you are submitting your app, that contains our SDK, through iTunes Connect you MUST check all 4 of the boxes asking about IDFA. Please see our support documentation on this issue here: http://support.adcolony.com/customer/portal/articles/1516610-device-identifiers-user-privacy.
We did have some reports from developers who were using other monetization partner's SDKs finding that one of these additional SDKs was causing the rejection. You should check with any other monetization partners that you are working with to ensure that their SDKs are up to date and not the cause of what you are seeing.
I have checked the iTC settings
I have uploaded the same app 2 days ago and it works fine but when today I uploaded the same app with a minor bug fix it's now showing this error.
I'm using Admob, Revmob and Applovin. But I know admob is the culprit.
The only solution for me was to trash the Admob-SDK and integrate the Startapp-SDK, It is compliant with the apple's new IDFA policies, you can read their documentation here.
I will let you know if Admob guys fix this issue.
From Applovin Folks
I wanted to update you on an IDFA change Apple made on Saturday. Apple's systems are automatically rejecting apps that are uploaded if the app has SDKs in it that access IDFA and still support pre-iOS 6 (where IDFA wasn't present). Our new SDK 2.3.6 (and in Unity, 3.0.9) will now pass Apple's screen since we have deprecated support for iOS 4 and 5 (only 1.5% of traffic); and note that many popular SDKs in the market act similarly so you may need to work with your other vendors on updating their software for compatibility.
Edit
I uploaded an update today(5th May, 2014) with admob 6.8.0 and it was uploaded sucessfully
It validated for me also. Initially I thought admob was the issue and might have been but after removing TapJoy and all references the app validated.
I had to remove both InMobi and Conversant (aka ValueClick/Greystripe). Then it stopped being an "Invalid Binary" and went into "Waiting for Review". I can confirm that AdColony, Chartboost and TapJoy all definitely pass Apple's check with latest SDKs. InMobi issued an SDK update on 29/4 (v4.3.0) but it does NOT pass this test.
I used Google AdMob and Flurry. With AdSupport framework removed, shows it's AdMob that's the culprit.
I can't find any recently released SDK for AdMob and Flurry, so I just change the status back to ready for binary upload again, select the answer as shown above in the screen dump, and it works for me, some screen dumps on my blog below. Hope this helps. Thanks!
http://new2objectivec.blogspot.com.au/2014/05/app-store-invalid-binary-error-due-to.html
I've submitted an app with AdMob today with the same settings.
It's now in Waiting for Review state.
I've used Xcode Organizer to submit the app. Maybe Apple have re-adjusted the validation.
I uploaded an app with admob sdk 6.8.0 successfully today (after removed mmedia sdk 5.2.0). I think you need to check other ad network sdk.
It appears your issue is actually coming from Applovin, not AdMob. Others seem to have succeeded with AdMob in some way, so it would make sense. These guys have come to the conclusion that it is Applovin -> Source
I've finally got mine to validate! If you remove AdSupport.framework, any culprits causing this failed validation will NOT cause a linker error. So the SDK's that are showing errors are the ones using the framework correctly, remove any others and try again. In my case Millennial was the problem.
I had an app that was at state "waiting for upload" before 12th April. After which the itunes guidelines were updated to contain section of IDFA usage when the app state is "Prepare for upload". So, because of this situation every time I turned in the binary I would get an error of "Improper IDFA usage".
For me the solution was
1.upload a binary without IDFA sdks.
2.make it "developer rejected".
3.Update the settings of IDFA after choosing "ready to upload binary" option from itunes connect.
4.Upload a new binary with IDFA sdks.
I uploaded and got approved games using iOS Admob SDK on appstore in JAN'14 using libGoogleAdMobAds.a. These games does not have Google Analytics integrated.
I am using latest sdk version GoogleAdMobAdsSdkiOS-6.8.0
Recently I uploaded the app having Google Analytics and Admob with (libGoogleAdMobAds.a,libGoogleAnalyticsServices.a) and it got rejected because of the same reason mentioned here from apple 'my-app-was-just-rejected-for-using-the-ad-support-framework-which-library-is-re'
Now, when I checked removing the static lib for Analytics (libGoogleAnalyticsServices.a) and AdSupport.framework, I found that the admob lib (libGoogleAdMobAds.a) is also referring to ASIdentifierManager and it want me to ad AdSupport for compilation.
My Question now is, if I keep only Admob static lib, would it be approved (which I think as my other games got approved in JAN'14 which were only having Admob) or apple has changed the review guidelines very-very recently and now we are not able to use Admob via its static lib?? OR Apple will approve the same and it was only related to the Analatics issue. The problem in re-trying is I waited 10 days to get my application "in review" and finally got rejected and It would be a long time again for me to keep waiting after a try (I hope every developer can understand this notion of "waiting for review" state).
finally even after removing libGoogleAnalyticsServices.a and waiting for another 9 days the app got rejected due to presence of ASIdentifierManager so anyways this concludes that we cannot submit app having admob to apple now.