hmmm ok thanks ill ask
I just got an app approved by Apple. It uses GameThrive and the Facebook plugin.
GameThrive developer here.
Nope, it’s not us. In fact, our plugin is written entirely in Lua and we don’t touch any address book related stuff. Also it looks like apilling63 was the first to report this and he’s not using GameThrive from what I can see.
I think this might actually be due to the Google+ integration in hraza’s case.
Looks like Google+ on iOS requires AddressBook.framework: https://developers.google.com/+/mobile/ios/getting-started
ahhhh so that plugin im adding for google network, maybe that is the issue as I am building from the same config, ill give it a shot, thanks george.
That one isn’t needed for ios builds anyway so makes sense.
Though I would have imagined the android=true setting would ensure it is ignored for ios builds, then again I don’t know how it is used.
You should be able to see if it your app is using the AddressBook api by building it and then running the following in terminal. You should try it first with gameNetwork.google included, then again after removing it just to be sure:
nm -m /path/to/YourAppName.app/YourAppName | grep AddressBook
hmmm I see it with and without that, so guess thats not it
$ nm -m PopRaiders.app/PopRaiders | grep AddressBook
(undefined) external _ABAddressBookCreate (from AddressBook)
(undefined) external _ABPersonGetCompositeNameFormat (from AddressBook)
(undefined) external _ABPersonGetSortOrdering (from AddressBook)
You have the supportedPlatforms = { android = true } though which should prevent that plugin from building for iOS, which is why I didn’t flag it.
Maybe there is a syntax problem in your build.settings and it’s actually loading that plugin even though you say not to.
Rob
yea Rob that doesn’t make any difference, can you guys confirm if the output means it has AddressBook in use in the app ? Or is that just a dummy reference ?
$ nm -m PopRaiders.app/PopRaiders | grep AddressBook
(undefined) external _ABAddressBookCreate (from AddressBook)
(undefined) external _ABPersonGetCompositeNameFormat (from AddressBook)
(undefined) external _ABPersonGetSortOrdering (from AddressBook)
It’s the Facebook plugin. I just used the nm command on several App builds I have laying around that were compiled in the past couple of days. The common thread for those with these symbols are apps that use Facebook.
Perhaps you could contact them back and say, it’s being used by the Facebook library and see if they can pass you. I’ll get this to Engineering and see what they have to say. I don’t know that we have control over this.
Rob
Aha that is the only one I can’t remove lol as I need it. Ok I’ll try convince them.
Rejected again , any updates on this ? If this API can be detached from Facebook plugin. I am trying to convince them otherwise but no idea on what to tell them … not like it is their problem.
2.3
Specifically, the app uses the Address Book API, which allows access to the users Address Book database. This feature is not fully implemented within the app. If this is not fully implemented in the app, the unnecessary code needs to be removed from the app itself.
Having a chat with them now, attempts to convince. They asking for the below. What exactly is the facebook plugin doing with the address book API >.>
- 2.3: Apps that do not perform as advertised by the developer will be rejected
Hello,
Please provide a specific step by step within the app in which you can demonstrate where the user is prompted to authenticate access to the address book database. If this is part of the SDK you have mentioned, then it will be reproducible within the app.
Just heard from the nice folks at Corona, the address book API has been removed from the facebook plugin now and I can no longer see it in my builds resubmitting now. Thanks again
did this get sorted ? im getting hit by the same issue and my FB settings are exactly as the developer page states.
Reasons
- 2.3: Apps that do not perform as advertised by the developer will be rejected
2.3
We found that your app does not fully utilize an API that is included in the app code as required by the App Store Review Guidelines.
Specifically, the app uses the Address Book API, which allows access to the users Address Book database. This feature is not fully implemented within the app.
It would be appropriate to revise your app to ensure this feature is fully implemented or to revise your Application Description, Release Notes, and/or screenshots to remove this content.
I am using version 2189, not using that API at all …
Are you including the address book plugin?
Can you post your build.settings?
snip, removed by build settings from here, the issue was identified thanks to Rob and George with invaluable suggestions
Hey Rob, no im not using it at all.
I’ve resubmitted it, and asked Apple for more details on what exactly they have issues with. Is it possible that I might need to redownload 2189 in light of recent changes that were made ? Not sure why it would include addressbook API code in my app when I clearly didn’t include it and am on Basic membership.