Developer Error when launching app targeted to Amazon

After updating to simulator version 2016.3007, when targeting Amazon, the app does not launch. 

After the splash I see an error message saying:

Corona: Developer Error

<App Name> does not target the Google Play store, but includes Google Play Services. 

Please remove Google Play Services from builds that do not target Google Play.

I went over my build.settings file and removed all the plugins that might not work on Amazon, yet I still get this message. 

Here is our plugin list from build.settings:

["plugin.facebook.v4"] = { publisherId = "com.coronalabs" }, ["plugin.google.iap.v3"] = { publisherId = "com.coronalabs", supportedPlatforms = { android=true } }, ["plugin.amazon.iap"] = { publisherId = "com.coronalabs", supportedPlatforms = { ["android-kindle"]=true }, }, ["plugin.flurry.analytics"] = { publisherId = "com.coronalabs", }, ["plugin.googleAnalytics"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true } }, ["plugin.kochava"] = { publisherId = "com.coronalabs", }, ["plugin.openssl"] = { publisherId = "com.coronalabs" }, ["plugin.advertisingId"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true } }, ["plugin.OneSignal"] = { publisherId = "com.onesignal", }, ["plugin.notifications"] = { publisherId = "com.coronalabs", }, ["plugin.pasteboard"] = { publisherId = "com.coronalabs", }, ["plugin.utf8"] = { publisherId = "com.coronalabs", }, ["plugin.iCloud"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true }, }, ["CoronaProvider.native.popup.social"] = { publisherId = "com.coronalabs", }, ["CoronaProvider.native.popup.activity"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true } }, ["plugin.CoronaSplashControl"] = { publisherId = "com.coronalabs" }, ["plugin.chartboost"] = { publisherId = "com.coronalabs", }, ["plugin.applovin"] = { publisherId = "com.coronalabs", }, ["CoronaProvider.ads.vungle"] = { publisherId = "com.vungle", supportedPlatforms = { iphone=true, android=true } }, ["plugin.supersonic"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true } }, ["plugin.adbuddiz"] = { publisherId = "com.adbuddiz", supportedPlatforms = { iphone=true, android=true } }, ["plugin.fbAudienceNetwork"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true } }, ["plugin.pollfish"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true } },

I tried to remove also Chartboost, AppLovin, Flurry, Facebook and Kochava, but I still see that error…

Can someone, once and for all, tell us which plugins should not work on amazon?

Analytics: Flurry, Google Analytics, Game Analytics, Kochava

Ads: Chartboost, AppLovin, Vungle, FBAN, Supersonic, AdBuddiz, Pollfish

I know Kochava’s, Chartboost’s and AppLovin’s SDKs support Amazon (it’s been working for us up until now), so I would expect the plugins to work on Amazon as well. 

Also, this error should be removed, since a lot of Amazon store users still have the Google Play Store on their devices, it’s only the Kindle users that cannot have it. 

For example, up until now we’ve been using Vungle on Amazon targeted apps on devices that are not Kindle Fire. There is no reason to stop supporting it now…

Please help us identify who is including the Google Play Services and please remove this error so we can continue using all the providers we’ve been using.

Thanks

Can someone, once and for all, tell us which plugins should not work on amazon?

Analytics: Flurry, Google Analytics, Game Analytics, Kochava

Ads: Chartboost, AppLovin, Vungle, FBAN, Supersonic, adbuddiz, pollfish

I know Kochava’s, Chartboost’s and AppLovin’s SDK supports Amazon (it’s been working for us up until now), so I would expect the plugins to work on Amazon as well. 

Also, this error should be removed, since a lot of Amazon store users still have the Google Play Store on their devices, it’s only the Kindle users that cannot have it. 

For example, up until now we’ve been using Vungle on Amazon targeted apps on devices that are not Kindle Fire. There is no reason to stop supporting it now…

I would go here:  https://docs.coronalabs.com/plugin/index.html

And start looking at the docs to see if it’s supported or not.

It’s supported if you see:  [“android-kindle”]=true in the supportedPlatforms line.

It’s supported if you see under the “Platforms” header at the top of the page “Kindle (Android)”

If you can’t determine if it works, try it and see if it works. There will be some plugins not dependent on Google Play that may be listed as Android only that might work.

If after checking the docs, if you’re unsure we can do further investigation.

Rob

I already did that and kept only the plugins that had [“android-kindle”]=true in the supportedPlatforms line or didn’t have a supportedPlatforms line at all.

After doing this and compiling to Amazon, I still get the error…

Any update on this?

We really need this sorted out so we can create new versions for Amazon…

(we need to release a vresion with the new Chartboost plugin, so our amazon users will be able to see videos when the month ends)

Thanks

We are still looking into this.

Any news? 

Can this check for Google Play services be removed in the meanwhile?

We really need to be able to release new versions to Amazon…

If you choose to build for Google, you can submit to Amazon just fine. However those build will be disqualified for Kindle Fire devices. Amazon does a two pass submission process. The first pass is for standard Android devices which can have Google Play installed. The second pass is for the more restrictive Kindle Fire family. These devices do not have Google Play nor will they have. You cannot use any of the “android” plugins that are for advertising  and most likely none of the analytics type plugins as they all want to get a advertising id unless they explicitly list [“android-kindle”] in the supportedPlatforms line.

If you want to target Kindles, make sure to use the supportedPlatforms line to make sure that plugin gets included. The other plugins should not be included if you choose to build for Amazon. You will have to put “if” statements in your code to test if you’re on a fire and decided what features to make available for that platform. Apps built for kindles will run on normal Android devices too, but with fewer features since Google Play isn’t supported in that build.

Any plugin that generates the error you are seeing is one that won’t work on Kindle fires.  You will need to check the documentation to see which plugins are “android-kindle” compatible.

Rob

Hi Rob, 

First, we can’t target Google and publish that to Amazon, because we already have 7,000 monthly Amazon users, which target the Amazon store and most have Kindle Fire devices. Also, if we target to Google, we won’t be able to have in-app purchases from the Amazon store. In short - this is not really an option. 

Second, as I stated above in the thread, I already tried to go to the documentation of each plugin we use and keep only the ones that either have [“android-kindle”]=true in the supportedPlatforms line or didn’t have a supportedPlatforms line at all. After doing that, my plugin list was similar to the one I wrote above, only I removed Chartboost, AppLovin, Flurry and Kochava as well. Even after doing that, I still got the error message. Meaning, there is at least one plugin in that list above that includes Google Play Services, even though it is supported on Amazon. 

This brings up another problem - since Chartboost, AppLovin and Kochava all have support for the Amazon store in their SDK, why doesn’t the plugin officially support it? 

Up until now, we have been using these 3 plugins in our Amazon targeted app, and they all work perfectly fine - why should we suddenly have to remove them?

And finally, we already have in place all the implementation to handle any Kindle Fire exceptions (e.g. no advertising id).

We’ve been using Corona for 3 years, and have been publishing to Amazon for a year and a half already, and having Google Play Services included in the apk was never an issue. What changed? Why should plugins that worked up until now suddenly stop working? 

I don’t understand why this error checking can’t simply be removed, so everything can return to the way it was before.  

If this issue is not resolved, we will not be able to continue support for Amazon users, and it’s as if Corona Labs is dropping the support for Amazon as a target store.

@stanga

I’ve made some modifications to the plugin setup that may solve your issue.

Can you try to build again with Corona build 2016.3016 or later and see if you still see any issues?

@ingemar

I checked (using simulator version 2017.3032), but I still get the error message when the app launches. 

Here is my updated plugin list:

plugins = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.facebook.v4"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.google.iap.v3"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.amazon.iap"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { ["android-kindle"]=true }, &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.flurry.analytics"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.googleAnalytics"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.kochava"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.openssl"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs" &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.advertisingId"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.OneSignal"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.onesignal", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.notifications"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.pasteboard"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.utf8"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.iCloud"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true }, &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["CoronaProvider.native.popup.social"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["CoronaProvider.native.popup.activity"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.pollfish"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; &nbsp; &nbsp; ["plugin.appodeal"] = &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; }, &nbsp; &nbsp; },

Thanks for looking into this…

I’ll check the plugins in your list, but first I want to confirm:

Which Corona build are you using?

I used build 2017.3032

I found the culprit: OneSignal.

This is a 3rd party plugin and they will need to modify their plugin setup for Amazon devices. They are requiring google.play.services.gcm which will not work on Kindle.

In the mean time you can either set supportedPlatforms = { iphone=true, android=true } for OneSignal, or exclude the plugin from the list.

@stanga

I’ve been in contact with OneSignal, and they have updated their plugin to work with Amazon builds now.

So you should be able to build for Amazon with the plugin list you provided above.

it works now, thank you!

Great to hear!

I just updated my simulator to version 2017.3068 and this problem came back…

I tried to remove OneSignal, in case it was their plugin to blame again, but it still showed me this developer error…

Can you take a look why this is happening again?

Here is my updated plugin list:

plugins = { &nbsp; &nbsp; ["plugin.facebook.v4"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.google.iap.v3"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.amazon.iap"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { ["android-kindle"]=true }, &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.flurry.analytics"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.gameanalytics\_v2"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.gameanalytics", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.kochava"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.googleAnalytics"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.openssl"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs" &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.advertisingId"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.OneSignal"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.onesignal", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.notifications"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.pasteboard"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.utf8"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.iCloud"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true }, &nbsp; &nbsp; }, &nbsp; &nbsp; ["CoronaProvider.native.popup.social"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["CoronaProvider.native.popup.activity"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.pollfish"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.chartboost"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.applovin"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; }, &nbsp; &nbsp; ["CoronaProvider.ads.vungle"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.vungle", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.adbuddiz"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.adbuddiz", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.supersonic"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, &nbsp; &nbsp; ["plugin.fbAudienceNetwork"] = &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; publisherId = "com.coronalabs", &nbsp; &nbsp; &nbsp; &nbsp; supportedPlatforms = { iphone=true, android=true } &nbsp; &nbsp; }, },

(I also tried to remove Chartboost and AppLovin, but that didn’t do the trick either)

Thanks

Try adding supportedPlatforms = { iphone=true, android=true } to plugin.notifications

That plugin uses Google Cloud Messaging.

but what about my local notifications? I won’t be able to schedule them on Amazon targeted apps?

Unfortunately.

There is no way to separate local/push notification dependencies from that plugin.