@dooboolab ๋ฉ์๋ ์ค๋น ํ getProducts ๋ฉ์๋๋ฅผ ํธ์ถ ํ ํ null ๋ฐฐ์ด์ ๋ฐ๊ณ ์์ต๋๋ค.
@ companytest1206 ์ด๋ฐ ์ผ์ด ๋ฐ์ํด์๋ ์๋ฉ๋๋ค. ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ฝ๋, ์ ํ ์ํ, OS, ๊ธฐ๊ธฐ ๋ฑ. ์ธ์ฑ ์ ํ ๊ตฌ์ฑ์ ๋ธ๋ก๊ทธ ๋ฅผ ์ฐธ์กฐ
์ฌ๊ธฐ ๋ด ์ฝ๋์ ๋๋ค ..
async componentDidMount () {
{
๊ธฐ๋ค๋ฆฌ๊ณ RNIap.prepare ();
const ์ ํ = await RNIap.getProducts (itemSkus);
console.log ( '์ ํ', ์ ํ);
}
catch (err) {
console.warn (err.code, err.message);
}
this.fetchData ();
}
๋ด ์ฑ ์ํ๊ฐ ์ํ ๋ชจ๋์ ๋๋ค. ๋๋ฒ๊น ์ nexus 6 ์ฌ์ฉ.
@ companytest1206 ์ฝ๋๊ฐ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. playstore
๋๋ itunesconnect
์ ์ ํ ๊ตฌ์ฑ์ ์ด๋ป์ต๋๊น? Readme๋ฅผ ๋ฐ๋ฅด๊ณ ์ฌ๊ธฐ์ ๊ฒ์ ํ ๋ชจ๋ ๋ด์ฉ์ ํ์ธ
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋น ๋ฐฐ์ด์ ์ป์ต๋๋ค (๋ฌด์์ ์๋ฏธํ๋ null ๋ฐฐ์ด์ด ์๋๋๋ค). ์ฌ๊ธฐ์ ๊ฒ์ํ์ต๋๋ค.
@systemride @sanilcgs getProducts
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ์๋ ํ๋ซํผ์ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น?
Android 7.0 (LG G6์์ ์คํ), MacOS 10.13.4 @dooboolab ์์ ๊ฐ๋ฐํ๋ ๋ฐ
create-react-native-app ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ด ์ฑ์ ๋ง๋ค์์ต๋๋ค. ์ธ์ฑ ๊ตฌ๋งค๋ฅผ ํตํฉํ๊ธฐ ์ํด ์ฑ์ ๋ถ๋ฆฌํ์ต๋๋ค. ๊ทธ ํ react-native-iap ์ ์ฑ์ ํตํฉํ์ต๋๋ค. ๋์๊ฒ ๋ฌธ์ ๋ iOS์ Android ๋ชจ๋์์ ๋ฐ์ํฉ๋๋ค. Android Studio 3.0.1 ๋ฐ Xcode 9.3์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฟก ๋นต๋จ
๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด README ์ ๋ฐ๋ฅด๋ฉด ๋๋ฒ๊ทธ ํ๊ฒฝ (์ํ / ๋ฒ ํ ๋ฆด๋ฆฌ์ค๊ฐ ์๋)์์ ์คํํ ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ์ ์ป์ ์ ์์ด์ผํฉ๋๋ค. ๋ง์ต๋๊น? (Google์ด IAP๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๋์ผํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.)
๋ ๋ค๋ฅธ ๊ด๋ จ ์ง๋ฌธ; SKU ์์ ํจํค์ง ์ด๋ฆ์ ๋ถ์ฌ์ผํฉ๋๊น? ๋ค์ ๋งํด; Google Play Console์์ ์ง์ ํ ID๊ฐ "unlock_premium"์ธ ๊ฒฝ์ฐ ๋ด ์ฝ๋์์ "unlock_premium"๋๋ "com.kimer.unlock_premium"์ด ์ฌ๋ฐ๋ฅธ๊ฐ์?
@axelkennedal SKUS๋ ์ด๋ค ํ์๋ ๊ฐ์ง๊ณ ์์ง ์์ผ๋ฉฐ ์์ ํ ์ฌ์ฉ์ ์ ์ ํ ์ ์์ต๋๋ค. ๊ฐ๋จํ ๋งํด์ "unlock_premium"๋๋ "com.kimer.unlock_premium"์ด ์ ํํฉ๋๋ค.
์ํ๋๋๋ก ์ ํ ID์ ์ด๋ฆ์ ์ง์ ํ ์ ์์์ ์ดํดํฉ๋๋ค.ํ์ง๋ง Google Play Console์์ ID "unlock_premium"์ ์ ํํ ๊ฒฝ์ฐ ๋ด ์ฝ๋์ ๋ฌด์์ ์ ๋ ฅํด์ผํ๋์ง ๋ฌผ์ด ๋ดค์ต๋๋ค (๋ ๋ค ์ ๋์ฌ๋ก "ํ์ฉ"๋์๋์ง ์ฌ๋ถ๊ฐ ์๋). Google Play Console ๋ฐ ๋ด ์ฝ๋). Google Play Console์์ ID "unlock_premium"์ ์ ํํ๋ฉด "unlock_premium"๋ฐ "com.kimer.unlock_premium"๊ณผ ํจ๊ป ์๋ํด์ผํ๋ค๋ ๋ป์ ๋๋ค. ๋ง์ต๋๊น? ํผ๋ ์ค๋ฝ๊ธฐ ๋๋ฌธ์ README์ ์ด๋๊ฐ์ ๋ช ์ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋๋ฅผ ์ํด ์ผํ๊ณ ์์ต๋๋ค ๐! ๋ช ๊ฐ์ง ์๋ํ์ง๋ง ์๋ํ๋ ๋ฐ ํต์ฌ์ด ๋ญ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ๐ค ์ด์จ๋ ์ด๊ฒ์ด ์ ๊ฐ ํ ์ผ์ ๋๋ค.
import InAppPurchase from "react-native-iap;" to "import * as InAppPurchase from 'react-native-iap';"
@axelkennedal ์ด๋ฆ์ ์ฌ์ฉํด์ผํ์ง๋ง Google Play Console> ์ ํ๋ฆฌ์ผ์ด์ > Google Play ์คํ ์ด> ์ฑ ์ ํ์์ ์ฌ์ฉํด์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ค ์ฝ๋์์ ์ฌ์ฉํด์ผํ๋ ๋์ผํ ์ด๋ฆ์ ๋๋ค.
@dooboolab ๋ด productID๋ก RNIap.buyProduct ( ' * ')๋ฅผ ์คํํ๋ ค๊ณ ํ ๋ That item is unavailable ์ด๋ผ๋ ์ค๋ฅ ๋ฉ์์ง
@sanilcgs ์ค๋ฅ๊ฐ ๋ฐ์ํ ํ๋ซํผ์ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
@dooboolab Android ํ๋ซํผ์์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ MacOS High Sierra (10.13.4)์์ ๊ฐ๋ฐ ์ค์ ๋๋ค.
@sanilcgs '0.3.23'์ธ ์ต์ ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๋ํ ์ ์ฌํ ๋ฌธ์ ๋ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค. https://github.com/dooboolab/react-native-iap/issues/142
@dooboolab ์, '0.3.23'์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ด ๋ฌธ์ ๋ ์ด์ RNIap.buyProduct ( ' * ') ์ ๋๋ค.
@sanilcgs ์์ ๋ฌธ์ ์ ๋ํ ๋์๋ง ์ ๋ณด๋ฅผ ๊ฒ์ํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ค์ ๋ถ์ฌ ๋ฃ๊ฒ ์ต๋๋ค. ์๋์์ ํ์ธํ์ธ์.
Do's
1) ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ์๋ช
APK๋ฅผ ๋ง๋ญ๋๋ค.
2) Google Play ์คํ ์ด์ APK๋ฅผ ์
๋ก๋ํ์ญ์์ค.
3) ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ์ ํ์ ๋ง๋ญ๋๋ค.
4) ์คํ ์ด์ ์
๋ฐ์ดํธ ํญ๋ชฉ์ด์์ ๋๊น์ง 6-12 ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
5) Manifest.xml์์ ๊ฒฐ์ ๊ถํ ๋ถ์ฌ
Don't
1) ๋น๋ง ์๋น์ค๋ฅผ ์ง์ํ์ง ์๋ ํ
์คํธ๋ฅผ ์ํด ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
2) ๊ฒฐ์ ์๋น์ค์ ์๋ช
๋์ง ์์ APK๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
์์ธํ ์์๋ณด๊ธฐ : http://www.androidhub4you.com/2013/03/how-to-inegrate-in-app-purchase-billing.html#ixzz5DqRctVJp
@dooboolab ์ด๋ฏธ ๋ด ์ฑ์ด ํ๋ก๋์ ์ผ๋ก ์ถ์๋์ง ์์๋ค๊ณ ๋งํ๋ฏ์ด. ์ด์ ์ํ ๋ฒ์ ๋ง ์ถ์ํ์ต๋๋ค. ๋ฐ๋ผ์์ด RNIap.buyProduct ( ' * * ') **๋ฅผ ์ํ ๋ฒ์ ์ผ๋ก ํ ์คํธ ํ ์
@sanilcgs ์์ ๋ด์ฉ์ ์์ธํ ์ฝ์ผ๋ฉด apk๋ฅผ ํ๋ก๋์ ์ ๋ฆด๋ฆฌ์ค ํ ํ์๊ฐ ์๋ค๋ ์ ์ ์๊ณ ์์ด์ผํฉ๋๋ค. ์ํ ๋๋ ๋ฒ ํ ๋ง ๊ด์ฐฎ์ง ๋ง ์ค๋ช ๋๋ก APK์ ์๋ช ํด์ผํฉ๋๋ค. ์์ ๋ด์ฉ์ ๋ค์ ํ ๋ฒ ํ์ธํ๊ณ ๋จผ์ ๋ฌด์์ด ๋๋ฝ๋์๋์ง ํ์ธํ์ญ์์ค.
@dooboolab ์ ์ํด์ผ ํ ์ผ๊ณผํ์ง ๋ง์์ผ ํ ์ผ์ด ๋์์ด๋ฉ๋๋ค. ์ด๋ณด์์๊ฒ๋ ์ํ / ๋ฒ ํ ๋ฆด๋ฆฌ์ค์์๋ง ํ ์คํธ ํ ์ ์์ผ๋ฉฐ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ๋ฐ ๋น๋์์ ํ ์คํธํ๋ฉด ํญ์ ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค๋ ๊ฒ์ ๋ฌธ์์์ ์ค๋ช ํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ด๋์๋ ์ธ๊ธํ์ง ์๋๋ค. ์ํ์ ๋ค๋ฉด ํ ๋ฆฌํ์คํธ์ ์ถ๊ฐํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
@systemride ๋ชจ๋ PR์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@axelkennedal ์ด ๋ชจ๋ ์์
์
btw ... ์ ๋ ์ฌ์ ํ ์๋ฎฌ๋ ์ดํฐ์์ ํ
์คํธ ์ค์
๋๋ค. ์ค์ iOS ๊ธฐ๊ธฐ์์ ํ
์คํธํด์ผํฉ๋๊น?
iOS์ @axelkennedal getProducts()
๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ ์๋ํฉ๋๋ค. ๊ตฌ๋งค ์์
์ ์๋ ๋ฐ์ค ์ ํ ๊ณ์ ์ด์๋ ์ค์ ๊ธฐ๊ธฐ์์ ํ
์คํธํด์ผํฉ๋๋ค.
App Store ์ ํ ์ค์ ์ ์๋ฒฝํ๊ฒ ์๋ฃํ์ง ์์์ ์ ์์ต๋๋ค.
@JJMoon ๋ด ๋๊ธ์ ์ฝ์ผ๋ฉด ๋ด๊ฐ iOS๊ฐ ์๋ Android์ ์๋ค๋ ๊ฒ์
@axelkennedal ์ ๋น์ ์ ๋๊ธฐ ์ํด ์๋ฐ์ ์ผ๋ก ์์คํ ์๊ฐ์ ๋ณด๋ด๋ ์ฌ๋๋ค์๊ฒ ์๋์ ๊ณต๊ฒฉ์ ์ด์ง ์์ ๊ฒ์ ๋๋ค.
@JJMoon @dooboolab ํ๋ฅญํ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
@raduflp lol ๋ฌด์จ ์๋ฆฌ ์ผ? ๋ฐฉ๊ธ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ํ๋ซํผ์ ์๋ค๊ณ ์ง์ ํ์ต๋๋ค.
@raduflp ์น์ ํ ๋ต๋ณ๊ณผ ๊ด์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. @axelkennedal ์ด ๊ณต๊ฒฉ์ ์ด๋ผ๋ ๋ป์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ react-native-iap
์ฌ์ฉํ์ฌ ๋๋ฌด ์๋์ ์
๋๋ค. ์ด ๋ฌธ์ ๋ ์ข
๊ฒฐ ๋ ์์์ ๊ฒ ๊ฐ์์ ์ข
๊ฒฐํ๊ฒ ์ต๋๋ค. ๋ํ, ์๋ก์ด ์ธ๋๋ฅผ ๋์ธ ์์๋ PR
๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์๋ ํด๋ด. ๋๋ฅผ ์ํด ์ผํ์ญ์์ค :
"ํ ์คํธ ๊ณ์ ์"ํ ์คํธ ์ก์ธ์ค ๊ถํ์ด์๋ Gmail ๊ณ์ "์ ๋ค๋ฅธ ํน์ ๊ณ์ ๋ชฉ๋ก์ ์ถ๊ฐํด์ผํฉ๋๋ค.์ด๋ฅผ Play ๊ณ์ ์ค์ (ํ๋ก์ ํธ ์๋)์์ ์ฐพ์ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ๋ชฉ๋ก์ ๋ณผ ์์๋ ํ์ด์ง์์ ์ค์ ์ ํด๋ฆญ ํ ๋ค์ '๊ณ์ ์ธ๋ถ ์ ๋ณด'ํ์ด์ง (์๋๋ก ์คํฌ๋กคํ๋ฉด ๊ฑฐ์ ํ์ด์ง ํ๋จ์ ์์)์์ 'ํ ์คํธ ์ก์ธ์ค ๊ถํ์ด์๋ Gmail ๊ณ์ '๋ชฉ๋ก์ ์ฐพ์ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
๋ผ์ด์ ์ค ์ค์
์ ํ๋ฆฌ์ผ์ด์
๋ผ์ด์ ์ค๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋จผ์ Play Console์์ ํ
์คํฐ์ Gmail ์ฃผ์ ๋ชฉ๋ก์ ์ถ๊ฐํ์ธ์.
Play Console๋ก ์ด๋ํฉ๋๋ค.
์ค์ ์ค์ > ๊ณ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ํํฉ๋๋ค.
'๋ผ์ด์ ์ค ํ
์คํธ'์์ ํ
์คํฐ์ Gmail ์ฃผ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
ํ๋ฉด ์๋จ์์ ์ ์ฅ์ ์ ํํฉ๋๋ค.
react-native-iap์ ํตํฉํ๊ณ ์๋ช ๋ APK๋ฅผ Play ์คํ ์ด์ ๋ฒ ํ ๋ฆด๋ฆฌ์ค์ ์ ๋ก๋ํ๊ณ ํ๋์ ๊ตฌ๋ ํ๋๋ ์ถ๊ฐํ์ต๋๋ค. ํญ์ ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ ๋๋ฒ๊ทธ ๋ชจ๋์์ ๊ตฌ๋ ID๋ก ๊ตฌ๋ ๋ชฉ๋ก์ ๊ฐ์ ธ ์ค๋ ค๊ณ ํฉ๋๋ค. ์ค์ ๋ก ๋๋ฒ๊ทธ ๋ชจ๋์์ ๊ตฌ๋ ์ ํ ์คํธ ํ ์ ์์ต๋๊น?
@ShridharCodewave ๋น์ ์ ์ค์ ์ฅ์น ๋๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๊น?
@NarekChang ๋๋ ์ค์ ์ฅ์น๋ฅผ ์ฌ์ฉํ๊ณ ์ด์ ์ด๋ป๊ฒ ๋ ๊ตฌ๋ ์ ๋ฐ๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@axelkennedal ์ ๋น์ ์ ๋๊ธฐ ์ํด ์๋ฐ์ ์ผ๋ก ์์คํ ์๊ฐ์ ๋ณด๋ด๋ ์ฌ๋๋ค์๊ฒ ์๋์ ๊ณต๊ฒฉ์ ์ด์ง ์์ ๊ฒ์ ๋๋ค.
@JJMoon @dooboolab ํ๋ฅญํ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค