Skip to content
This repository has been archived by the owner on Dec 15, 2021. It is now read-only.

AppStore rejected the app because nextStartIndex conflict with apple's private API #203

Closed
drwjf opened this issue Jul 29, 2016 · 13 comments
Assignees

Comments

@drwjf
Copy link

drwjf commented Jul 29, 2016

AppStore rejected the app and gave the following reason:

_Your app uses or references the following non-public APIs:

"nextStartIndex:"

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.

Next Steps

Please revise your app to remove any non-public APIs. If you have defined methods in your source code with the same names as the above-mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged in future submissions.

Additionally, if you are using third party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs._

Then, I found there is "@Property (retain) NSNumber *nextStartIndex;" in line 167 of GTLService.m

The solution is to replace this property name, isn't it?

Many Thanks.

@sergiocampama
Copy link

Actually it's not that simple. Given that the method names are tied to the JSON keys in the response objects, this would break users of the nextStartIndex feature (to automatically download more items using the same ticket)...

As a quick and very dirty solution to unblock you from submitting to the App Store while we take a closer look at this, if your services (or the ones you are using) don't support nextStartIndex, you could rename nextStartIndex to _nextStartIndex in your copy of the code. This would only need to be done while archiving the app to be sent for review.

Thanks for the heads up!

@thomasvl thomasvl self-assigned this Aug 4, 2016
@thomasvl
Copy link
Member

thomasvl commented Aug 4, 2016

Yea, we dealt with this on the query side but looks like we didn't do it on the object side, I'll look at properly dealing with it.

@gabrielpjensen
Copy link

I'm getting rejected for the same reason: Your app uses or references the following non-public APIs: "nextStartIndex:"

I'm using:

  • GoogleMaps (1.13.2)
  • GooglePlacesAPI (1.0.6)

I don't see nextStartIndex anywhere though so I can't rename. Any other suggestions? Fixed perhaps in GoogleMaps 2.0.1?

@thomasvl
Copy link
Member

You'll want to ask on the issue/support areas for those sdks, neither of them comes directly from this project.

@jpmhouston
Copy link

jpmhouston commented Sep 12, 2016

Hi, @gabrielpjensen I've been hit with that rejection also. We're only using GoogleMaps, did upgrading that to 2.0.1 have any benefit for you?

Correction: we're only using the Places API which is now a separate component, interested in knowing if you had any success when upgrading that. I'll probably upgrade nonetheless and post my results here.

Correction 2: I've upgraded from GoogleMaps 1.13.x to GooglePlaces 2.0.1, but the one you mentioned, GooglePlacesAPI, is not Google's but a third party one and probably not relevant to the nextStartIndex rejection. Interested anyway in hearing your experiences with upgrading general GoogleMaps to 2.0.1 and getting through the review process.

@premprakash0961988
Copy link

Hi @drwjf, I also got my app rejected because of "nextStartIndex". I am also using GoogleOpenSource.Framework in my application. Did you find a way to fix it?

@thomasvl : Please help me with this.

Thanks

@thomasvl
Copy link
Member

@perotinus do you know what the pods are people are using and hitting this problem? As far as I can tell, it doesn't have anything to do directly with this project.

@perotinus
Copy link
Contributor

Hmm. I believe it would be mostly people using an older version of GTL directly, either through this library or somewhere else.

@premprakash0961988 GoogleOpenSource.framework looks like it's provided by the Google+ team. I think you may need to reach out to that team to see if they have an updated version of their library with a new version of GTL. If the other frameworks they distribute depend on that version of GTL, I don't think you'll be able to update GTL without getting an update to the Google+ platform.

Maps had the problem in an older release because they have a renamed version of GTL in their binary, but I believe that was fixed with 2.0.1.

@shudecek
Copy link

I have also had Apple reject my app saying that GoogleOpenSource.framework contains a call to nextStartIndex which is not allowed because it is a private API. I added the libraries directly from here: https://developers.google.com/+/mobile/ios/upgrading-sdk

@perotinus
Copy link
Contributor

@shudecek I'm trying to find someone on the Google+ SDK team to ask about this. I'll report back if and when I find someone and get more info about the Google+ SDK.

@perotinus
Copy link
Contributor

@shudecek OK, I was able to find someone on the Google+ SDK team. It looks like that SDK has been deprecated and replaced with GoogleSignIn, per the note at the top of https://developers.google.com/+/mobile/ios/upgrading-sdk, so there will not be an update forthcoming to use a new version of GTL. It looks like there's a migration guide for Google+ SignIn to GoogleSignIn here.

@premprakash0961988
Copy link

Yes, I had to update to my library and my app got approved on app store. Their implementation using cocoapods was pain because I was using TagManager. I had to manually add everything to make it work.

@shudecek
Copy link

hi all, updating the GoogleSignIn SDK from 3.0.0 to 4.0.0 fixed this for me

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants