React-native-iap: [ioS] "์ž˜๋ชป๋œ ์ œํ’ˆ ID"

์— ๋งŒ๋“  2018๋…„ 09์›” 12์ผ  ยท  12์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dooboolab/react-native-iap

react-native-iap ๋ฒ„์ „

2.1.0

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ”Œ๋žซํผ (IOS ๋˜๋Š” Android ๋˜๋Š” ๋‘˜ ๋‹ค?)

iOS

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

RNIap.buyProduct('com.app.product.id') ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

ํ™”๋ฉด์— "์ž˜๋ชป๋œ ์ œํ’ˆ ID"๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

{ [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' }

ํ…Œ์ŠคํŠธ ๋œ ํ™˜๊ฒฝ (์—๋ฎฌ๋ ˆ์ดํ„ฐ? ์‹ค์ œ ์žฅ์น˜?)

์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐ ์‹ค์ œ ์žฅ์น˜.

ํ–‰๋™์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„

๋‚˜๋Š” ๋ฌธ์„œ์˜ ๋ชจ๋“  ์ง€์นจ์„ T์—๊ฒŒ ๋”ฐ๋ฅด๊ณ  Google ๊ฒฐ๊ณผ ํŽ˜์ด์ง€์™€์ด ์ €์žฅ์†Œ์˜ ๊ด€๋ จ ํ•ด๊ฒฐ ๋œ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๊นŒ์ง€์˜ ๋‚ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ :

  1. ํšจ๊ณผ์ ์ธ "๊ณ„์•ฝ, ์„ธ๊ธˆ ๋ฐ ์€ํ–‰ ์—…๋ฌด"๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. "์‚ฌ์šฉ์ž ๋ฐ ์—ญํ• "์—์„œ ์ƒŒ๋“œ ๋ฐ•์Šค ํ…Œ์ŠคํŠธ ๊ณ„์ •์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ƒŒ๋“œ ๋ฐ•์Šค ๊ณ„์ •์œผ๋กœ iOS ๊ธฐ๊ธฐ์— ๋กœ๊ทธ์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ ์ƒํƒœ๋กœ ์„ธ ๊ฐ€์ง€ ์ธ์•ฑ ๊ตฌ๋งค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ๋‚˜๋Š”. ์ œ์ถœ ์ค€๋น„
    ii. ๋ˆ„๋ฝ ๋œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ
    iii. ๋ฆฌ๋ทฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ ์žˆ๋‹ค
  5. Xcode "Capabilities"๋ฐ Apple Developer-> "App ID"์„ค์ •์—์„œ "In-App Purchase"๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  6. ์•ฑ ์‚ญ์ œ / ์žฅ์น˜ ๋‹ค์‹œ ์‹œ์ž‘ / ์•กํ‹ฐ๋น„ํ‹ฐ ๋ชจ๋‹ˆํ„ฐ์—์„œ "์ €์žฅ"๊ด€๋ จ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ / Xcode ๊ฐœ๋ฐœ ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํ•„-> ์ •๋ฆฌ-> ๋นŒ๋“œ
  7. ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฐ ์ œํ’ˆ์— ๋Œ€ํ•ด RNIap.buyProduct('com.app.product.id') ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•„์ง ์‹œ๋„ํ•˜์ง€ ์•Š์€ ์œ ์ผํ•œ ๊ฒƒ์€ ๋นจ๋ฆฌ ๊ฐ๊ธฐ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค (์–ด์ œ ๋ฐค์— ์ž ์ด ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค! :) ์ƒŒ๋“œ ๋ฐ•์Šค ๊ณ„์ •์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ธ์•ฑ์„ ์ดˆ๊ธฐํ™” ํ•œ ํ›„ 24 ์‹œ๊ฐ„์ด๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ๋งค / ์œ„์˜ ๋ชจ๋“  ๊ฒƒ. ์ œ๋ฐœ ๋„์™€์ฃผ์„ธ์š”. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์œ„์˜ ๋‹จ๊ณ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋†“์นœ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๐Ÿ“ฑ iOS ๐Ÿ™ help wanted

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. getProducts๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ ํ•ญ์ƒ ๋นˆ ๋ฐฐ์—ด์„ ์–ป์Šต๋‹ˆ๋‹ค.
@hyochan @ Friendly-Robot

๋ชจ๋“  12 ๋Œ“๊ธ€

@ Friendly-Robot ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. 2.1.1 ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? 2.1.0 ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๋งคํ•˜๊ธฐ ์ „์— getProducts ์ „ํ™” ํ–ˆ์Šต๋‹ˆ๊นŒ?

@dooboolab ์™€์šฐ, ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์˜ณ์€ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ์ขŒ์ ˆํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ๋„ˆ๋ฌด ํ–‰๋ณตํ•˜๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋งค์šฐ ๋ฉ‹์ง„ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ด๋ฆ„์„ ์‚ฌ๋ž‘ํ•ฉ๋‹ˆ๋‹ค! = D

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. getProducts๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ ํ•ญ์ƒ ๋นˆ ๋ฐฐ์—ด์„ ์–ป์Šต๋‹ˆ๋‹ค.
@hyochan @ Friendly-Robot

๋‚˜๋„

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

์œ„์˜ ๋‹จ๊ณ„๋ฅผ ๋ชจ๋‘ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ? ์•„๋ž˜์— ๋‹ค์‹œ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ํšจ๊ณผ์ ์ธ "๊ณ„์•ฝ, ์„ธ๊ธˆ ๋ฐ ์€ํ–‰ ์—…๋ฌด"๋ฅผ ์™„๋ฃŒํ•˜์‹ญ์‹œ์˜ค.
  2. "์‚ฌ์šฉ์ž ๋ฐ ์—ญํ• "์—์„œ ์ƒŒ๋“œ ๋ฐ•์Šค ํ…Œ์ŠคํŠธ ๊ณ„์ •์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ƒŒ๋“œ ๋ฐ•์Šค ๊ณ„์ •์œผ๋กœ iOS ๊ธฐ๊ธฐ์— ๋กœ๊ทธ์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ ์ƒํƒœ๋กœ ์ธ์•ฑ ๊ตฌ๋งค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    ๋‚˜๋Š”. ์ œ์ถœ ์ค€๋น„
    Xcode "Capabilities"๋ฐ Apple Developer-> "App ID"์„ค์ •์—์„œ "In-App Purchase"๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์‚ญ์ œ / ์žฅ์น˜ ๋‹ค์‹œ ์‹œ์ž‘ / ์•กํ‹ฐ๋น„ํ‹ฐ ๋ชจ๋‹ˆํ„ฐ์—์„œ "์ €์žฅ"๊ด€๋ จ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ / Xcode ๊ฐœ๋ฐœ ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํ•„-> ์ •๋ฆฌ-> ๋นŒ๋“œ

Xcode ๊ฐœ๋ฐœ ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํŒŒ์ผ-> ์ •๋ฆฌ-> ๋นŒ๋“œ

์ด ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? Clean Build Folder ์ž…๋‹ˆ๊นŒ?

@djGrill open XCode> ์ œํ’ˆ> ์ฒญ์†Œ

@djGrillํ•˜๋ ค๋ฉด ์ˆ˜๋™์œผ๋กœ ๋‹น์‹ ์€ your_app_name_here ๋ฐ ์‚ญ์ œ ๋นŒ๋“œ ์•„๋ž˜ ํ”„๋กœ์ ํŠธ IOS ํด๋”๋กœ ์ด๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์•Š์Šต๋‹ˆ๋‹ค

์ด๊ฒƒ์€ ๋ฌด์—‡์„ ์˜๋ฏธ ํ•˜๋Š”๊ฐ€?

๊ทธ๋ฆฌ๊ณ  ์• ํ”Œ ๊ฐœ๋ฐœ์ž-> "์•ฑ ID"์„ค์ •.

์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Activity Monitor / Xcode Development Provisioning Profile์—์„œ "์ €์žฅ"๊ด€๋ จ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

ํ—‰ํ—‰

๊ทธ๋ฆฌ๊ณ  ์• ํ”Œ ๊ฐœ๋ฐœ์ž-> "์•ฑ ID"์„ค์ •.

image

  • ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ "์ธ์•ฑ ๊ตฌ๋งค"๊ธฐ๋Šฅ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค (์„ธ๊ธˆ ๋ฐ ์€ํ–‰ ์ •๋ณด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ œ ๊ฒฝ์šฐ์—๋Š” ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Œ).

image

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰