React-native-iap: '์•Œ ์ˆ˜ ์—†๋Š” ์œ ํ˜• ์ด๋ฆ„ 'SKPaymentDiscount'๋กœ ์ธํ•ด iOS์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ

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

react-native-iap ๋ฒ„์ „

2.4.9

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „

0.59.5

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

iOS

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

์•ฑ ๋นŒ๋“œ

์‹ค์ œ ํ–‰๋™

์•ฑ์ด ๋นŒ๋“œ๋˜์ง€ ์•Š์Œ

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

์—๋ฎฌ๋ ˆ์ดํ„ฐ

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

์œ„์˜ react-native-iap ๋ฐ React native ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ react-native run-ios๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ป๋Š” ์ •ํ™•ํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

/node_modules/react-native-iap/ios/RNIapIos.m:167:5: unknown type name 'SKPaymentDiscount'; did you mean 'SKProductDiscount'?

ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด SKPaymentDiscount์˜ ์ด๋ฆ„์„ SKProductDiscount๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

โŒ›๏ธ legacy ๐Ÿ“ฑ iOS

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

2.4.11 ๋ฒ„์ „์—์„œ๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @hyochan ์ด ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ์ž‘๋™ํ•œ ์œ ์ผํ•œ ๋ฒ„์ „์€ 2.4.8 ์ž…๋‹ˆ๋‹ค.

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

์ตœ๊ทผ ios ๋ฒ„์ „์—์„œ๋Š” ์•„์ง ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์—์„œ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด PR ๋ฅผ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@hyochan ๊ธฐ์˜์ง€๋งŒ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ 100% ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. PR์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ์ˆ˜์ •์ด ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค

@ndejesus1227 ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

@hyochan ์•„๋‹ˆ์š”. ์ˆ˜์ •์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ JavaScript๋งŒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋ณด๋‹ค ๋„ค์ดํ‹ฐ๋ธŒ iOS๋ฅผ ํ›จ์”ฌ ๋” ์ž˜ ์•„๋Š” ์‚ฌ๋žŒ์„ ๋„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@ndejesus1227 ์‚ฌ์‹ค, ์ด ๊ธฐ๋Šฅ์€ #455์˜ @renatoalencar ์— ์˜ํ•ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๋” ์ด์ƒ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@hyochan๋‹˜, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@renatoalencar ์–ด๋–ค ๋ฒ„์ „์˜ ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ react-native-iap ๋˜๋Š” RN์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @ndejesus1227 ์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ์€ iOS ๋ฒ„์ „์ด 12.2 ๋ฏธ๋งŒ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Apple ์„ค๋ช…์„œ ์— ์„ค๋ช…๋œ ๋Œ€๋กœ SKPaymentDiscount ๋Š” iOS 12.2 ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ iOS ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.

@renatoalencar ์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ ์‹œ๊ฐ„์„ ํ• ์•  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ๊ทธ๋ƒฅ ๊ถ๊ธˆ

@hyochan @renatoalencar๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ์ด ์—…๋ฐ์ดํŠธ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2.4.11 ๋ฒ„์ „์—์„œ๋„ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @hyochan ์ด ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ์ž‘๋™ํ•œ ์œ ์ผํ•œ ๋ฒ„์ „์€ 2.4.8 ์ž…๋‹ˆ๋‹ค.

@ggdegreat ์— ๋Œ€ํ•œ ์„ค๋ช…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” 2.4.8๋กœ ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ 2.4.8๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋”ฐ๋ผ์„œ ํŒจํ‚ค์ง€๋Š” 2.4.9 ์˜ 12 ๋ฏธ๋งŒ ios ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

Apple Pay๋กœ ๊ฒฐ์ œ(ํŒ์—… ์—†์Œ)๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

ํ”„๋กœ๋•์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‘ ๋ฒ„์ „์„ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค์šฉ ๋ฒ„์ „ > 12 ๋˜๋Š” ๋ฒ„์ „ < 12 ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!

๋‚ด๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์ˆ˜๊ณ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @hyochan !

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค - ์ด์ œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1๋…„ ๋„˜๊ฒŒ Xcode๋ฅผ ์—ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์•„์ดํฐ 6s๋ฅผ ๊ฐ€์ง€๊ณ  ํŽŒ์›จ์–ด 12.3.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด Mac์€ ์—ฌ์ „ํžˆ โ€‹โ€‹'Sierra'์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Xcode ์„ค์น˜๊ฐ€ ์ตœ์‹  ios์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. macbook์— ์—ฐ๊ฒฐ๋œ iphone์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์†”๋ฃจ์…˜:

  • Mac-OS๋ฅผ 10.14.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Xcode๋ฅผ 10.2.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” react-native-iap 2.5.5๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • iOS 12.3.1์ด ์„ค์น˜๋œ iPhone 6S
  • sdk 32.0.0์„ ์‚ฌ์šฉํ•˜์—ฌ expo-project๋ฅผ ๋ฐฐ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 0.57์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” expo-modified-react-native๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

---> ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์€ iOS <12.2์—์„œ ์‹คํ–‰๋  ๋•Œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ 3.0.0๋ถ€ํ„ฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 3.0.0์ด ๋ฆด๋ฆฌ์Šค๋  ๋•Œ๊นŒ์ง€ 2.4.8์—์„œ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

@DataGreed ์ง€๊ธˆ 3.0.0 ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

@hyochan v3.0.0 ์—์„œ SKPaymentDiscount์˜ ๋ฌธ์ œ๋ฅผ ์—ฌ์ „ํžˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋†“์น˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฐฉ๊ธˆ package.json์˜ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  xcode์—์„œ ์•ฑ์„ ์„ค์น˜ ๋ฐ ์ •๋ฆฌ/๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

@danidfm ios ์˜ ๋นŒ๋“œ ๋Œ€์ƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋˜ํ•œ npm install node_modules ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

๋นŒ๋“œ ๋Œ€์ƒ์€ 11.0์ด๊ณ  node_modules ํด๋”๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ - 3.0.0์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ 2.4.8๋กœ ๋กค๋ฐฑํ–ˆ์Šต๋‹ˆ๋‹ค.

(๊ทธ๋Ÿฐ๋ฐ ๊ทธ ์ „์— 3.0.0 RC ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค)

๋ชจ๋‘ ์นœ์ ˆํ•˜๊ฒŒ IamExample ํ”„๋กœ์ ํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์™€ ์ฐจ์ด์ ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @ndejesus1227 ์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ์€ iOS ๋ฒ„์ „์ด 12.2 ๋ฏธ๋งŒ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Apple ์„ค๋ช…์„œ ์— ์„ค๋ช…๋œ ๋Œ€๋กœ SKPaymentDiscount ๋Š” iOS 12.2 ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ iOS ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฐ€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ๋กœ ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋ณด๋ƒˆ์ง€๋งŒ ๊ทธ๋Š” ์žŠ์–ด๋ฒ„๋ ธ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์ ˆ๋Œ€๋กœ ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

iOS v12.3.1์ด ์„ค์น˜๋œ iPhone์šฉ Xcode์—์„œ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์‹œ๋„
react-native-iap v3.2.2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜.
2.4.8๋กœ ์ด๋™(๋นŒ๋“œ ์„ฑ๊ณต)

๊ทธ ์ด์œ ๋Š” ์žฅ์น˜์— ์„ค์น˜๋œ iOS ๋ฒ„์ „ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ์ด๋ฏธ ๋นŒ๋“œ๊ฐ€ ์ •์ƒ์ž„์„ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋งค์šฐ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค(์ €๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค). ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ios/build ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

์ด์ œ ๋ง‰ ๊ตฌ์ถ•ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. IapExample ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
image

@hyochan ํฐ ์‘์› ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ฐฉ๊ธˆ ์ด ๋ฌธ์ œ์—์„œ ์–ธ๊ธ‰๋œ ๋ชจ๋“  ํžŒํŠธ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค(npm ์„ค์น˜ ์ „์— node_modules ์™„์ „ํžˆ ์ œ๊ฑฐ, ์•ฑ ์ •๋ฆฌ, ios/build ์ œ๊ฑฐ). ๋ถˆํ–‰ํžˆ๋„ ๋นŒ๋“œ ๋Œ€์ƒ 11.2 ๋ฐ react-native-iap v3.2.2์™€ ํ•จ๊ป˜ ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ฑ๊ณต์ ์ธ ๋นŒ๋“œ๋กœ ์ด์–ด์ง€๋Š” v2.4.8๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ IapExample์„ ์„ค์ •ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ์ด ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฌธ์ œ (https://github.com/facebook/react-native/issues/25252)๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

macOS 10.13์ด ์„ค์น˜๋œ iMac์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 10.15๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‚ด ๋งฅ๋ถ์€ ์ž˜ ๊ตฌ์ถ•๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ mac ๋ฒ„์ „์ด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿค”

@murilobast ๋‹ค๋ฅธ xCode ๋ฒ„์ „?

os ๋ฒ„์ „ #if __IPHONE_12_2 ์˜ค๋ฅ˜ ์ฝ”๋“œ ๋ธ”๋ก ํ™•์ธ ๋ฐ ์žฌ๊ตฌ์ถ•

`#๋งŒ์•ฝ __IPHONE_12_2

    SKPaymentDiscount *discount = [[SKPaymentDiscount alloc]
                                   initWithIdentifier:discountOffer[@"identifier"]
                                   keyIdentifier:discountOffer[@"keyIdentifier"]
                                   nonce:[[NSUUID alloc] initWithUUIDString:discountOffer[@"nonce"]]
                                   signature:discountOffer[@"signature"]
                                   timestamp:discountOffer[@"timestamp"]
                                   ];

    SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
    payment.applicationUsername = usernameHash;
    payment.paymentDiscount = discount;

    [[SKPaymentQueue defaultQueue] addPayment:payment];
    [self addPromiseForKey:RCTKeyForInstance(payment.productIdentifier) resolve:resolve reject:reject];
    #endif `

์ด์™€ ๊ฐ™์ด

๋‚˜๋Š”์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๋‹ค. ๋‚ด xcode๋ฅผ 10.1์—์„œ 10.2.1๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Xcode 10.1๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ, 10.13.6์—์„œ ๋ฉˆ์ถ˜ ์˜ค๋ž˜๋œ iMac์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” OSX 10.14.3์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— XCode๋ฅผ 10.2๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@lc3t35 , Xcode 10.1๋กœ iOS ํ”„๋กœ์ ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๋นŒ๋“œํ•˜์…จ๋‚˜์š”?

@liudmyla-schastlyvets 10.1๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Xcode ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ: 0.59.0
๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ iap:2.4.8
์—‘์Šค์ฝ”๋“œ: 10.1
ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

์–ด ๋‚˜๋„ ๊ทธ๋ž˜ ! ์œ ์ง€ ๋ณด์ˆ˜์˜ ํ›Œ๋ฅญํ•œ ์ž‘์—…!

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