It is nice to see Google is giving better tools to iOS alongside android. One of the most exciting thing is GCM is handling iOS push notificationfs so web developers do not have to maintain separate code for Android and iOS platforms for push notifications. Also happy to see having deep linking and App invites are working in Android and iOS altogether, thus sharing a content from an app is surely to reach to your friends regardless of your friends' operating system is android or iOS.
As this series is mainly focusing on what may not work, rather than what is working, this part is all about working with Google cloud console and what can go wrong if you also have iOS client registered in your project and missing some crucial parts. It can lead you to unknown errors even if everything is properly configured and double checked.
Recently we have been working on App Invites feature for one of the app we have been developing, this app is on both Android and iOS, and apart from App Invites it also supports Google Login, for that we have registered a Client Id for iOS app. Being on staging environment, iOS app does not have an apple id, and the client entry for iOS can have apple id field blank.
What is problematic:
If we configure App-Invite from same project, and run App-Invite from android phone, it will always say “Message failed to send”. You can’t send messages even if your project configuration, your app’s sha-1 key are all set and all correct. And there is no indication from our app’s log that suggest what has gone wrong. After running app and removing all filters from Logcat, I have found out logcat prints this line before showing above message.
no iOS App Store ID has been set.
Thus google requires App store ID to work with (atleast) App-invites. Unless you set an App Store Id, you can not see App-Invite working in your Android app.
However as a workaround you can set any arbitary values while you are in development. It’s needed to generate Deep Link or Application Download link(Play store or Apple Appstore) for recipient. And according to me, the best practice is to provide an appstore id from your development account or give arbitary placeholder text. Setting it will create less headache for Android and will let you test App-Invite feature from iOS as well. Once your app is updated in Apple App store, you can always change your own App Id to work properly.
Next In the series: iOS and GCM.