react-native-iap: [ioS] "Invalid Product ID"

Version of react-native-iap

2.1.0

Platforms you faced the error (IOS or Android or both?)

iOS

Expected behavior

RNIap.buyProduct('com.app.product.id') should return an object.

Actual behavior

Screen displays “Invalid Product ID” and catches error:

{ [Error: Invalid product ID.]
  line: 2060,
  column: 26,
  sourceURL: 'http://192.168.1.65:8081/index.bundle?platform=ios&dev=true&minify=false',
  framesToPop: 1,
  code: 'E_DEVELOPER_ERROR',
  userInfo: null,
  nativeStackIOS: 
   [ '0   O2Balloons                          0x006c2c8f RCTJSErrorFromCodeMessageAndNSError + 104',
     '1   O2Balloons                          0x00669129 __41-[RCTModuleMethod processMethodSignature]_block_invoke_2.218 + 184',
     '2   O2Balloons                          0x005d5caf -[RNIapIos buyProduct:resolve:reject:] + 886',
     '3   CoreFoundation                      0x1b4c8354 <redacted> + 68',
     '4   CoreFoundation                      0x1b3ec2b9 <redacted> + 300',
     '5   CoreFoundation                      0x1b3efe87 <redacted> + 48',
     '6   O2Balloons                          0x0066ab9b -[RCTModuleMethod invokeWithBridge:module:arguments:] + 1806',
     '7   O2Balloons                          0x0070104d _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 640',
     '8   O2Balloons                          0x00700bd1 _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 176',
     '9   O2Balloons                          0x00700b1d ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 16',
     '10  libdispatch.dylib                   0x022d7467 _dispatch_call_block_and_release + 10',
     '11  libdispatch.dylib                   0x022e366f _dispatch_queue_serial_drain + 988',
     '12  libdispatch.dylib                   0x022daa39 _dispatch_queue_invoke + 872',
     '13  libdispatch.dylib                   0x022e3b31 _dispatch_queue_override_invoke + 342',
     '14  libdispatch.dylib                   0x022e576b _dispatch_root_queue_drain + 666',
     '15  libdispatch.dylib                   0x022e5471 _dispatch_worker_thread3 + 112',
     '16  libsystem_pthread.dylib             0x1ad4687d _pthread_wqthread + 1040',
     '17  libsystem_pthread.dylib             0x1ad4645c start_wqthread + 8' ],
  domain: 'RCTErrorDomain' }

Tested environment (Emulator? Real Device?)

Emulator and real device.

Steps to reproduce the behavior

I followed every instruction in the documentation to the T and have scoured through pages of Google results as well as relevant resolved issues in this repo. My checklist to date:

  1. Completed an effective “Agreements, Tax, and Banking.”
  2. Setup sandbox testing account in “Users and Roles.”
  3. Signed into iOS device with sandbox account.
  4. Set up three In-App Purchases with the following status: i. Ready to Submit ii. Missing Metadata iii. Waiting for Review
  5. Enable “In-App Purchase” in Xcode “Capabilities” and in Apple Developer -> “App ID” setting.
  6. Delete app / Restart device / Quit “store” related processes in Activity Monitor / Xcode Development Provisioning Profile -> Clean -> Build
  7. Attempt RNIap.buyProduct('com.app.product.id') for each product all throwing the same error.

The only thing I haven’t tried yet is fast forward time (I thought going to sleep last night might help! 😃 because it hasn’t been a full 24 hours since I’ve created the sandbox account / initialized the in-app purchases / everything above basically. Please help, it seems as though many people were missing one of the steps above before it started working for them but I’ve tried them all and it still doesn’t work. Am I missing something?

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 1
  • Comments: 15 (3 by maintainers)

Most upvoted comments

Hi everyone, I have the same problem. I always get an empty array when calling getProducts @hyochan @Friendly-Robot

@dooboolab Wow, upgrading really solved the issue. Thank you so much! I was starting to get really frustrated because everything seemed to be correct but it just wasn’t working. I’m so happy now. Very awesome work on this library. And I love your name by the way! =D

What does this mean?

and in Apple Developer -> “App ID” setting.

And how can I do this exactly?

Quit “store” related processes in Activity Monitor / Xcode Development Provisioning Profile

@djGrill To do it manually you can just go to your Project ios folder under your_app_name_here and delete build

@djGrill open XCode > Product > Clean

Have you all checked above steps? I’ll post this below again.

  1. Complete an effective “Agreements, Tax, and Banking.”
  2. Setup sandbox testing account in “Users and Roles.”
  3. Signed into iOS device with sandbox account.
  4. Set up In-App Purchases with the following status: i. Ready to Submit Enable “In-App Purchase” in Xcode “Capabilities” and in Apple Developer -> “App ID” setting. Delete app / Restart device / Quit “store” related processes in Activity Monitor / Xcode Development Provisioning Profile -> Clean -> Build