React-native-iap: Android์—์„œ getProducts (itemSkus)์˜ ๋นˆ ๋ฐฐ์—ด

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

react-native-iap ๋ฒ„์ „

2.4.9

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

0.57.8

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

๊ธฐ๊ณ„์  ์ธ์กฐ ์ธ๊ฐ„

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

์ œํ’ˆ์„ ๊ฒ€์ƒ‰ ํ•  ์ˆ˜ ์žˆ๋„๋ก

์‹ค์ œ ํ–‰๋™

๋นˆ ๋ฐฐ์—ด์„ ์–ป์Šต๋‹ˆ๋‹ค.

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

์—๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ์‹ค์ œ ์žฅ์น˜ ๋ชจ๋‘

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

์ด๋ฏธ Play Console์—์„œ ์•ŒํŒŒ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ณ  ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ์•ฑ์„ ๋””๋ฒ„๊ทธํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ฆฌ๋˜๋Š” ์ œํ’ˆ์ด ์•„๋‹Œ ๊ตฌ๋…์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
Screenshot 2019-04-25 at 13 38 19

์•”ํ˜ธ

const itemSkus = Platform.select({
  android: [
    'com.synesthesiameditation.yearly',
    'com.synesthesiameditation.monthly'
  ]
});
async componentDidMount() {

    try {
      await RNIap.initConnection()
      const products = await RNIap.getProducts(itemSkus);
      console.log(products)
      this.setState({ products });
    } catch (err) {
      console.warn(err); // standardized err.code and err.message available
    }

  }

  componentWillUnmount() {
    RNIap.endConnection();
  }
๐Ÿ™ help wanted ๐Ÿค– android

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

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
[initConnection ()]์€ 'true'๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ [getProducts ๋˜๋Š” getSubscriptions]๋Š” ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋ฌด์—‡์„ / ์–ด๋””์—์„œ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

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

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
[initConnection ()]์€ 'true'๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ [getProducts ๋˜๋Š” getSubscriptions]๋Š” ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋ฌด์—‡์„ / ์–ด๋””์—์„œ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@hyochan ์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ

iap ์ œํ’ˆ์„ ๋ฐฉ๊ธˆ ๋งŒ๋“  ๊ฒฝ์šฐ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์ตœ๋Œ€ 24 ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜์‹ญ์‹œ์˜ค. @thodwris for android , ์ œํ’ˆ ๊ฐ€์ ธ ์˜ค๊ธฐ๋Š” emulator ์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํšจ์ฐฌ
๋‹ต๋ณ€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
24 ์‹œ๊ฐ„ ์ „์— ์ œํ’ˆ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

<strong i="8">@thodwris</strong> for android, fetching product won't even work in emulator (just fyi).

๋ฌด์Šจ ๋œป์ด์—์š”? ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๊ทธ๋“ค์„ ํšŒ์ˆ˜ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ชฉ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ
RNIap.getProducts(itemSkus)
์—ฌ๊ธฐ์„œ ๋ญ”๊ฐ€๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@thodwris ios ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ fetching ์ž‘๋™ํ•˜์ง€๋งŒ android ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. android ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ํ…Œ์ŠคํŠธํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ ๋ชจ๋“ˆ๊ณผ ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ๋Š๋‚๋‹ˆ๋‹ค. anrdoid iap ์™€ (๊ณผ) ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ฉฐ, ์•ฝ๊ฐ„์˜ ๊ฒฌ์ธ๋ ฅ์ด์žˆ์„ ๋•Œ ๋‹ค์‹œ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํšจ์ฐฌ
์†”์งํžˆ ๋งํ•ด์„œ ๋‹น์‹ ์„ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด RNIap.getProducts (itemSkus)์˜ ๋ชฉ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œํ’ˆ์„ ์–ป์ง€ ๋ชปํ•˜๋ฉด ๊ฒฐ๊ตญ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? : /
๋งค์šฐ ์—ด์•…ํ•œ ๋ฌธ์„œ ..

@thodwris ์•ˆ๋…•ํ•˜์„ธ์š”, ๊ท€ํ•˜์˜ ๋ฌธ์ œ๋Š” ์•„์ง ํ™•์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹น์‹ ์„ ๋„์šฐ๋ ค๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์‹๋ณ„๋˜์ง€ ์•Š์€ Poor documentation ์€ ๋ง๋„ ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ๋„ค์ดํ‹ฐ๋ธŒ ์ธก๋ฉด์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ™•์ธํ•œ ํ›„์— ์•ฝ๊ฐ„์˜ ๊ฒฌ์ธ๋ ฅ์„ ์ œ๊ณตํ•˜๊ธฐ๋ฅผ ๊ฐ„์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ‚ค์›Œ๋“œ๋กœ stackoverflow์—์„œ ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋งํฌ ์˜ˆ ์ž…๋‹ˆ๋‹ค.

@hyochan le 's๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ์—์„œ IAP๋ฅผ ์‹œ๋„ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐ˜์‘ ๊ธฐ๋ณธ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?
์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ๋ฅผ ์ฐพ์•„์•ผํ•ฉ๋‹ˆ๋‹ค

@tmjordan ์‹ค์ œ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. IAP ๊ธฐ๋Šฅ์€ ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@hyochan ok ์—ฌ๋Ÿฌ๋ถ„์˜ ๋„์›€๊ณผ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‹ค์ œ ์žฅ์น˜๋ฅผ ์ฐพ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘

๋ฟก ๋นต๋€จ

getProducts๊ฐ€ ์•„๋‹Œ getSubscriptions ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋ฆฌ์„์€ ์‹ค์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ตฌ๋…๊ณผ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ธ๊ธ‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค :)

์•ผ,
๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. android. [initConnection ()]์˜ ๋นˆ ๋ฐฐ์—ด์€ 'true'๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ [getProducts ๋˜๋Š” getSubscriptions]๋Š” ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” everthing.need help๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ : 0.59.9
react-native-iap : "4.1.1",

๋‚ด๊ฐ€ ํ•ด๊ฒฐ ํ–ˆ์–ด! ์ด ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

react-native-iap: ^4.3.0
react-native: 0.60.5

๊ทธ๋ƒฅ ์ด๋ ‡๊ฒŒ ํ•ด

const itemSkus = Platform.select({
    ios: [
        '100coins' // just remove bundle id from product id
    ],
    android: [
        '100coins' // just remove bundle id from product id
    ]
});
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰