From The Blog: Amazon In-App Purchasing v2 plugin now available

AmazonProductLogoCorona Labs is pleased to announce the immediate availability of the Amazon IAP v2 plugin. If you plan to deploy your app to Amazon Kindle devices and use their in-app purchasing (IAP) service, you should implement this plugin within your projects as soon as possible. Additionally, if you currently have an app in the Amazon Appstore that uses their IAP service, it must be updated to the v2 plugin before April 30, 2016.

Implementing the new plugin

Because this is an official Corona Labs plugin, you need to change your build.settings file to reflect a different publisherId. The plugin name remains the same, but publisherId must be changed to "com.coronalabs":

settings = { plugins = { ["plugin.amazon.iap"] = { publisherId = "com.coronalabs", supportedPlatforms = { ["android-kindle"]=true } }, }, }

New functions and properties

This updated plugin includes a few additional functions and properties in comparison to the legacy plugin:

  • store.isActive is now supported. This property will be true if the plugin was initialized successfully. You can use this as the sole point of confirmation that other store functions and processes can be initiated.
  • New store.getUserData() function added to retrieve the user ID and marketplace code of the currently logged-in user.
  • New properties available in the productList event table associated with store.loadProducts(), as well as the storeTransaction event table associated with initializationpurchase, and restore requests.

Transaction changes

In addition to the new functions and properties above, some important changes have been made in the v2 plugin:

  • Amazon now requires that you “finalize” all transactions. Thus, you must now call store.finishTransaction() following every transaction to notify Amazon about the transaction being processed.
  • Amazon IAP v2 does not include a "restored" state for transactions. The store.restore() function can still be called to retrieve all of the user’s purchases, but now all valid transactions will be of the "purchased" state.

Migration guide

All of the above points are summarized in our migration guide which will assist users of the legacy plugin in updating to the new plugin.

Documentation

As always, we provide comprehensive documentation for this plugin. Both users of the legacy plugin and new users are encouraged to consult this documentation in order to successfully implement Amazon In-App Purchasing.

In summary

Remember, Amazon requires that all apps utilizing their in-app purchasing service are upgraded to v2 before April 30, 2016. If you have further questions, please discuss them in the Corona forums.

View the full article

I’ve made the changes as detailed, but now I cannot build as it always displays the message:

ERROR: An error occurred during build. The server returned the following message:


A device build error occurred on the server. Error:

You are not currently subscribed to the following plugin:

Publisher: com.coronalabs

Plugin: plugin.amazon.iap

Any ideas?

Can you post your build.settings?

Thanks

Rob

Sure, here they are. I’ve hidden some of the values that are individual to us.

Thanks

Rob

-- Supported values for orientation: -- portrait, portraitUpsideDown, landscapeLeft, landscapeRight   BuildVersion = "KS3"   settings = {   orientation = { default = "landscape", supported = { "landscape", "landscapeLeft", "landscapeRight" } },   iphone = { plist = {             UIApplicationExitsOnSuspend = false,   UIAppFonts =        {         "BurstMyBubbleCustom-Bold.otf",         "DoodleMaths-Regular.otf",         "Pointfree-Regular.otf",         "digitaldisplaytfb-Regular.otf" },   CFBundleLocalizations = {        "en", -- english    },              CFBundleDisplayName = "DoodleM", CFBundleName = "DoodleMaths", UIStatusBarHidden = false, UIPrerenderedIcon = true, -- set to false for "shine" overlay --UIApplicationExitsOnSuspend = true, -- uncomment to quit app on suspend               --icon image files table             CFBundleIconFiles =             {                 "Icon.png",                 "Icon@2x.png",                 "Icon-60.png",                 "Icon-60@2x.png",                 "Icon-60@3x.png",                 "Icon-72.png",                 "Icon-72@2x.png",                 "Icon-76.png",                 "Icon-76@2x.png",                 "Icon-Small-40.png",                 "Icon-Small-40@2x.png",                 "Icon-Small-40@3x.png",                 "Icon-Small-50.png",                 "Icon-Small-50@2x.png",                 "Icon-Small.png",                 "Icon-Small@2x.png",                 "Icon-Small@3x.png"             },               --launch image files table             UILaunchImages =             {                 {  -- iPhone 4 Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 4 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 4 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 5 Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPhone 5 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPhone 5 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPad Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Portrait",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPad LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Landscape",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPad LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Landscape",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPhone 6 Portrait                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 Plus Portrait                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-736h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{414, 736}"                 },                 {  -- iPhone 6 Plus LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-Landscape-736h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{414, 736}"                 },                 {  -- iPhone 6 Plus LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-Landscape-736h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{414, 736}"                 },             },               NSAppTransportSecurity =              {                 NSExceptionDomains =                  {                     ["fbcdn.net"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                     ["facebook.com"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                     ["akamaihd.net"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                 },             },               -- Whitelist Facebook Apps             LSApplicationQueriesSchemes =              {                 "fb",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbauth",                 "fbauth2",                 "fb-messenger-api\*\*",             } -- hidden for security } },   -- Android permissions   android =     {     usesExpansionFile = false,       permissions =         {             { name = ".permission.C2D\_MESSAGE", protectionLevel = "signature" },         },                  usesPermissions =         {             "com.android.vending.BILLING",             "android.permission.INTERNET",             "android.permission.GET\_ACCOUNTS",             "android.permission.RECEIVE\_BOOT\_COMPLETED",             "com.google.android.c2dm.permission.RECEIVE",             ".permission.C2D\_MESSAGE",             "com.android.vending.CHECK\_LICENSE", -- may not need to comment out this line for the android devices that don't use google play "android.permission.WRITE\_EXTERNAL\_STORAGE"         },     },       plugins =     {         ["plugin.google.iap.v3"] =         {             publisherId = "com.coronalabs",             supportedPlatforms = { android=true }         },         ["plugin.amazon.iap"] =         {             publisherId = "com.coronalabs",             supportedPlatforms = { ["android-kindle"]=true }         },         ["CoronaProvider.analytics.flurry"] =         {             publisherId = "com.coronalabs"         },         ["plugin.notifications"] =         {             publisherId = "com.coronalabs"         },         ["plugin.google.play.services"] =         {             publisherId = "com.coronalabs"         },         ["plugin.facebook.v4"] =         {             publisherId = "com.coronalabs"         },     },   }   versionedSettings = { ["excludeFilesKS1"] = { all = { "ImageSizeLister", "AssetSwapper", "CSVDatabases/\*\*" }, iphone = { "\*KS1\*", "\*KS2\*", "\*KS3\*", "\*Overlay/cat\*.png", "\*Overlay/fish\*.png", "\*Overlay/penguin\*.png", "\*Overlay/rabbit\*.png", "Keystore/\*.keystore" }, android = { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*", "KS2Exercise Images/\*\*", "KS2Pet Page/\*\*", "KS2Topic Explanations/\*\*", "KS3Exercise Images/\*\*", "KS3Pet Page/\*\*", "KS3Topic Explanations/\*\*", "Audio/KS2Topic Explanations/\*\*", "Audio/KS3Topic Explanations/\*\*", "Backgrounds/KS3\*\*", "Backgrounds/KS2\*\*", "Buttons/KS3\*\*", "Buttons/KS2\*\*", "Miscellaneous/KS3\*\*", "Miscellaneous/KS2\*\*", "Titles/KS3\*\*", "Titles/KS2\*\*", "fish\*.png", "penguin\*.png", "rabbit\*.png", "KS2Icon\*.png", "KS3Icon\*.png", "KS2\*.png", "CurrentStateVariableMapping.txt", "KS1\*.ccscene", "KS3\*.ccscene", "KS2\*.ccscene", "Keystore/\*.keystore" } },     ["excludeFilesKS2"] =     {         all =         {             "ImageSizeLister",             "AssetSwapper",             "CSVDatabases/\*\*"         },         iphone =         {             "\*KS1\*",             "\*KS2\*",             "\*KS3\*",             "\*Overlay/coach\*", "Keystore/\*.keystore"           },         android =         { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*", "KS2Exercise Images/\*\*",             "KS2Pet Page/\*\*",             "KS2Topic Explanations/\*\*",             "KS3Exercise Images/\*\*",             "KS3Pet Page/\*\*",             "KS3Topic Explanations/\*\*",             "Audio/KS1Topic Explanations/\*\*",             "Audio/KS2Topic Explanations/\*\*",             "Audio/KS3Topic Explanations/\*\*",             "Backgrounds/KS1\*\*", "Backgrounds/KS3\*\*",             "Backgrounds/KS2\*\*",             "Buttons/KS1\*\*", "Buttons/KS3\*\*",             "Buttons/KS2\*\*",             "Miscellaneous/KS1\*\*", "Miscellaneous/KS3\*\*",             "Miscellaneous/KS2\*\*",             "Titles/KS1\*\*", "Titles/KS3\*\*",             "Titles/KS2\*\*",             "coach\*.png",             "KS1Icon\*.png", "KS2Icon\*.png",             "KS3Icon\*.png",             "KS1\*.png", "KS3\*.png",             "CurrentStateVariableMapping.txt",             "KS1\*.ccscene", "KS3\*.ccscene",             "KS2\*.ccscene",             "KS3\*.ccscene",             "KS2\*.ccscene", "Keystore/\*.keystore"         }     },       ["excludeFilesKS3"] =      {         all =         {             "ImageSizeLister",             "AssetSwapper",             "CSVDatabases/\*\*"         },         iphone =         {             "\*KS1\*",             "\*KS2\*",             "\*KS3\*",             "\*Overlay/cat\*.png",             "\*Overlay/fish\*.png",             "\*Overlay/penguin\*.png",             "\*Overlay/rabbit\*.png",             "Keystore/\*.keystore"         },         android =         { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*",             "KS2Exercise Images/\*\*",             "KS2Pet Page/\*\*",             "KS2Topic Explanations/\*\*",             "KS3Exercise Images/\*\*",             "KS3Pet Page/\*\*",             "KS3Topic Explanations/\*\*",             "Audio/KS2Topic Explanations/\*\*",             "Audio/KS3Topic Explanations/\*\*",             "Backgrounds/KS3\*\*",             "Backgrounds/KS2\*\*",             "Buttons/KS3\*\*",             "Buttons/KS2\*\*",             "Miscellaneous/KS3\*\*",             "Miscellaneous/KS2\*\*",             "Titles/KS3\*\*",             "Titles/KS2\*\*",             "fish\*.png",             "penguin\*.png",             "rabbit\*.png",             "KS2Icon\*.png",             "KS3Icon\*.png",             "KS2\*.png",             "CurrentStateVariableMapping.txt",             "KS1\*.ccscene",             "KS3\*.ccscene",             "KS2\*.ccscene",             "Keystore/\*.keystore"         }     },   ["CFBundleIdentifierKS1"] = "\*\*\*", -- hidden for security     ["CFBundleIdentifierKS2"] = "\*\*\*", -- hidden for security     ["CFBundleIdentifierKS3"] = "\*\*\*", -- hidden for security       ["FacebookAppIDKS1"] = "\*\*\*", -- hidden for security     ["FacebookAppIDKS2"] = "\*\*\*", -- hidden for security     ["FacebookAppIDKS3"] = "\*\*\*", -- hidden for security }   settings.excludeFiles = versionedSettings["excludeFiles"..BuildVersion] settings.iphone.plist.CFBundleIdentifier = versionedSettings["CFBundleIdentifier"..BuildVersion]   settings.iphone.plist.FacebookAppID = versionedSettings["FacebookAppID"..BuildVersion] settings.android.facebookAppId = versionedSettings["FacebookAppID"..BuildVersion] settings.iphone.plist.CFBundleURLTypes =  {     { CFBundleURLSchemes = { "fb"..versionedSettings["FacebookAppID"..BuildVersion], } } } settings.iphone.plist["URL types"] =  {     item =     {         ["URL Schemes"] = { ["Item 0"] = "fb"..versionedSettings["FacebookAppID"..BuildVersion] },     }, }

There are others reporting this same issue, so it’s not on your side. I’ve asked Engineering to look into it.

Rob

Can I get you to logout (deauth and quit) the simulator and try to login back in?

Thanks

Rob

Thanks Rob,

It eventually stopped crashing and does not now stop at store.init(). However, I have tried everything to get Amazon IAP working with this new plugin, but to no avail. Amazon’s Live App Testing just doesn’t seem to work and never returns any kind of response back to the device. The whole process of code, build, upload via SFTP, install, debug/log, takes an inordinate amount of time, just to discover that the changes made in code made no difference at all. Either I’m obviously doing something very wrong, or the plugin just does’t work. For now I’ve abandoned Amazon IAP and may return to it at a later date.

Regards,

Rob

I’ve made the changes as detailed, but now I cannot build as it always displays the message:

ERROR: An error occurred during build. The server returned the following message:


A device build error occurred on the server. Error:

You are not currently subscribed to the following plugin:

Publisher: com.coronalabs

Plugin: plugin.amazon.iap

Any ideas?

Can you post your build.settings?

Thanks

Rob

Sure, here they are. I’ve hidden some of the values that are individual to us.

Thanks

Rob

-- Supported values for orientation: -- portrait, portraitUpsideDown, landscapeLeft, landscapeRight   BuildVersion = "KS3"   settings = {   orientation = { default = "landscape", supported = { "landscape", "landscapeLeft", "landscapeRight" } },   iphone = { plist = {             UIApplicationExitsOnSuspend = false,   UIAppFonts =        {         "BurstMyBubbleCustom-Bold.otf",         "DoodleMaths-Regular.otf",         "Pointfree-Regular.otf",         "digitaldisplaytfb-Regular.otf" },   CFBundleLocalizations = {        "en", -- english    },              CFBundleDisplayName = "DoodleM", CFBundleName = "DoodleMaths", UIStatusBarHidden = false, UIPrerenderedIcon = true, -- set to false for "shine" overlay --UIApplicationExitsOnSuspend = true, -- uncomment to quit app on suspend               --icon image files table             CFBundleIconFiles =             {                 "Icon.png",                 "Icon@2x.png",                 "Icon-60.png",                 "Icon-60@2x.png",                 "Icon-60@3x.png",                 "Icon-72.png",                 "Icon-72@2x.png",                 "Icon-76.png",                 "Icon-76@2x.png",                 "Icon-Small-40.png",                 "Icon-Small-40@2x.png",                 "Icon-Small-40@3x.png",                 "Icon-Small-50.png",                 "Icon-Small-50@2x.png",                 "Icon-Small.png",                 "Icon-Small@2x.png",                 "Icon-Small@3x.png"             },               --launch image files table             UILaunchImages =             {                 {  -- iPhone 4 Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 4 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 4 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{320, 480}"                 },                 {  -- iPhone 5 Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPhone 5 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPhone 5 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-568h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{320, 568}"                 },                 {  -- iPad Portrait                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Portrait",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPad LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Landscape",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPad LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "7.0",                     ["UILaunchImageName"] = "Default-Landscape",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{768, 1024}"                 },                 {  -- iPhone 6 Portrait                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-667h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{375, 667}"                 },                 {  -- iPhone 6 Plus Portrait                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-736h",                     ["UILaunchImageOrientation"] = "Portrait",                     ["UILaunchImageSize"] = "{414, 736}"                 },                 {  -- iPhone 6 Plus LandscapeLeft                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-Landscape-736h",                     ["UILaunchImageOrientation"] = "LandscapeLeft",                     ["UILaunchImageSize"] = "{414, 736}"                 },                 {  -- iPhone 6 Plus LandscapeRight                     ["UILaunchImageMinimumOSVersion"] = "8.0",                     ["UILaunchImageName"] = "Default-Landscape-736h",                     ["UILaunchImageOrientation"] = "LandscapeRight",                     ["UILaunchImageSize"] = "{414, 736}"                 },             },               NSAppTransportSecurity =              {                 NSExceptionDomains =                  {                     ["fbcdn.net"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                     ["facebook.com"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                     ["akamaihd.net"] =                      {                         NSIncludesSubdomains = true,                         NSExceptionRequiresForwardSecrecy = false,                     },                 },             },               -- Whitelist Facebook Apps             LSApplicationQueriesSchemes =              {                 "fb",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbapi\*\*",                 "fbauth",                 "fbauth2",                 "fb-messenger-api\*\*",             } -- hidden for security } },   -- Android permissions   android =     {     usesExpansionFile = false,       permissions =         {             { name = ".permission.C2D\_MESSAGE", protectionLevel = "signature" },         },                  usesPermissions =         {             "com.android.vending.BILLING",             "android.permission.INTERNET",             "android.permission.GET\_ACCOUNTS",             "android.permission.RECEIVE\_BOOT\_COMPLETED",             "com.google.android.c2dm.permission.RECEIVE",             ".permission.C2D\_MESSAGE",             "com.android.vending.CHECK\_LICENSE", -- may not need to comment out this line for the android devices that don't use google play "android.permission.WRITE\_EXTERNAL\_STORAGE"         },     },       plugins =     {         ["plugin.google.iap.v3"] =         {             publisherId = "com.coronalabs",             supportedPlatforms = { android=true }         },         ["plugin.amazon.iap"] =         {             publisherId = "com.coronalabs",             supportedPlatforms = { ["android-kindle"]=true }         },         ["CoronaProvider.analytics.flurry"] =         {             publisherId = "com.coronalabs"         },         ["plugin.notifications"] =         {             publisherId = "com.coronalabs"         },         ["plugin.google.play.services"] =         {             publisherId = "com.coronalabs"         },         ["plugin.facebook.v4"] =         {             publisherId = "com.coronalabs"         },     },   }   versionedSettings = { ["excludeFilesKS1"] = { all = { "ImageSizeLister", "AssetSwapper", "CSVDatabases/\*\*" }, iphone = { "\*KS1\*", "\*KS2\*", "\*KS3\*", "\*Overlay/cat\*.png", "\*Overlay/fish\*.png", "\*Overlay/penguin\*.png", "\*Overlay/rabbit\*.png", "Keystore/\*.keystore" }, android = { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*", "KS2Exercise Images/\*\*", "KS2Pet Page/\*\*", "KS2Topic Explanations/\*\*", "KS3Exercise Images/\*\*", "KS3Pet Page/\*\*", "KS3Topic Explanations/\*\*", "Audio/KS2Topic Explanations/\*\*", "Audio/KS3Topic Explanations/\*\*", "Backgrounds/KS3\*\*", "Backgrounds/KS2\*\*", "Buttons/KS3\*\*", "Buttons/KS2\*\*", "Miscellaneous/KS3\*\*", "Miscellaneous/KS2\*\*", "Titles/KS3\*\*", "Titles/KS2\*\*", "fish\*.png", "penguin\*.png", "rabbit\*.png", "KS2Icon\*.png", "KS3Icon\*.png", "KS2\*.png", "CurrentStateVariableMapping.txt", "KS1\*.ccscene", "KS3\*.ccscene", "KS2\*.ccscene", "Keystore/\*.keystore" } },     ["excludeFilesKS2"] =     {         all =         {             "ImageSizeLister",             "AssetSwapper",             "CSVDatabases/\*\*"         },         iphone =         {             "\*KS1\*",             "\*KS2\*",             "\*KS3\*",             "\*Overlay/coach\*", "Keystore/\*.keystore"           },         android =         { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*", "KS2Exercise Images/\*\*",             "KS2Pet Page/\*\*",             "KS2Topic Explanations/\*\*",             "KS3Exercise Images/\*\*",             "KS3Pet Page/\*\*",             "KS3Topic Explanations/\*\*",             "Audio/KS1Topic Explanations/\*\*",             "Audio/KS2Topic Explanations/\*\*",             "Audio/KS3Topic Explanations/\*\*",             "Backgrounds/KS1\*\*", "Backgrounds/KS3\*\*",             "Backgrounds/KS2\*\*",             "Buttons/KS1\*\*", "Buttons/KS3\*\*",             "Buttons/KS2\*\*",             "Miscellaneous/KS1\*\*", "Miscellaneous/KS3\*\*",             "Miscellaneous/KS2\*\*",             "Titles/KS1\*\*", "Titles/KS3\*\*",             "Titles/KS2\*\*",             "coach\*.png",             "KS1Icon\*.png", "KS2Icon\*.png",             "KS3Icon\*.png",             "KS1\*.png", "KS3\*.png",             "CurrentStateVariableMapping.txt",             "KS1\*.ccscene", "KS3\*.ccscene",             "KS2\*.ccscene",             "KS3\*.ccscene",             "KS2\*.ccscene", "Keystore/\*.keystore"         }     },       ["excludeFilesKS3"] =      {         all =         {             "ImageSizeLister",             "AssetSwapper",             "CSVDatabases/\*\*"         },         iphone =         {             "\*KS1\*",             "\*KS2\*",             "\*KS3\*",             "\*Overlay/cat\*.png",             "\*Overlay/fish\*.png",             "\*Overlay/penguin\*.png",             "\*Overlay/rabbit\*.png",             "Keystore/\*.keystore"         },         android =         { "KS1Exercise Images/\*\*", "KS1Pet Page/\*\*", "KS1Topic Explanations/\*\*",             "KS2Exercise Images/\*\*",             "KS2Pet Page/\*\*",             "KS2Topic Explanations/\*\*",             "KS3Exercise Images/\*\*",             "KS3Pet Page/\*\*",             "KS3Topic Explanations/\*\*",             "Audio/KS2Topic Explanations/\*\*",             "Audio/KS3Topic Explanations/\*\*",             "Backgrounds/KS3\*\*",             "Backgrounds/KS2\*\*",             "Buttons/KS3\*\*",             "Buttons/KS2\*\*",             "Miscellaneous/KS3\*\*",             "Miscellaneous/KS2\*\*",             "Titles/KS3\*\*",             "Titles/KS2\*\*",             "fish\*.png",             "penguin\*.png",             "rabbit\*.png",             "KS2Icon\*.png",             "KS3Icon\*.png",             "KS2\*.png",             "CurrentStateVariableMapping.txt",             "KS1\*.ccscene",             "KS3\*.ccscene",             "KS2\*.ccscene",             "Keystore/\*.keystore"         }     },   ["CFBundleIdentifierKS1"] = "\*\*\*", -- hidden for security     ["CFBundleIdentifierKS2"] = "\*\*\*", -- hidden for security     ["CFBundleIdentifierKS3"] = "\*\*\*", -- hidden for security       ["FacebookAppIDKS1"] = "\*\*\*", -- hidden for security     ["FacebookAppIDKS2"] = "\*\*\*", -- hidden for security     ["FacebookAppIDKS3"] = "\*\*\*", -- hidden for security }   settings.excludeFiles = versionedSettings["excludeFiles"..BuildVersion] settings.iphone.plist.CFBundleIdentifier = versionedSettings["CFBundleIdentifier"..BuildVersion]   settings.iphone.plist.FacebookAppID = versionedSettings["FacebookAppID"..BuildVersion] settings.android.facebookAppId = versionedSettings["FacebookAppID"..BuildVersion] settings.iphone.plist.CFBundleURLTypes =  {     { CFBundleURLSchemes = { "fb"..versionedSettings["FacebookAppID"..BuildVersion], } } } settings.iphone.plist["URL types"] =  {     item =     {         ["URL Schemes"] = { ["Item 0"] = "fb"..versionedSettings["FacebookAppID"..BuildVersion] },     }, }

There are others reporting this same issue, so it’s not on your side. I’ve asked Engineering to look into it.

Rob

Can I get you to logout (deauth and quit) the simulator and try to login back in?

Thanks

Rob

Thanks Rob,

It eventually stopped crashing and does not now stop at store.init(). However, I have tried everything to get Amazon IAP working with this new plugin, but to no avail. Amazon’s Live App Testing just doesn’t seem to work and never returns any kind of response back to the device. The whole process of code, build, upload via SFTP, install, debug/log, takes an inordinate amount of time, just to discover that the changes made in code made no difference at all. Either I’m obviously doing something very wrong, or the plugin just does’t work. For now I’ve abandoned Amazon IAP and may return to it at a later date.

Regards,

Rob