"react-native-iap": "^ 4.5.3"
"๋ฐ์ ๋ค์ดํฐ๋ธ": "0.62.0"
iOS (์๋๋ก์ด๋์์ ์์ง ํ ์คํธ ๋จ)
purchaseUpdatedListener๋ ๊ตฌ์ฑ ์์๊ฐ ๋ง์ดํธ ๋ ํ์๋งํผ๋ง ํธ์ถ๋์ด์ผํฉ๋๋ค.
purchaseUpdatedListener๊ฐ ๋ช ์ด์ 20 ๋ฒ ํธ์ถ๋์์ต๋๋ค. ์ฑ์ ์ด ๋๋ง๋ค ์์ฃผ ์ฌ๋ฌ ๋ฒ ํธ์ถ๋ฉ๋๋ค.
์ค์ ์ฅ์น, ์๋ ๋ฐ์ค ํ๊ฒฝ
๋ฉ์ธ ํ์ด์ง์ ๋ฐ๋ผ ์ง์นจ์ ๋ฐ๋ฅด์ญ์์ค.
ํ์ฌ componentDidMount ()์ ๋ฆฌ์ค๋์ purchaseUpdatedListener๊ฐ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๊ฐ๋ ๋ด ์ฑ์ ์ด๋ฉด ์ฌ๋ฌ ๋ฒ ์คํ๋ฉ๋๋ค. ์ด๊ฒ์ finishTransaction์ ํธ์ถ ํ txns์์ ๋ฐ์ํฉ๋๋ค. ์ด๋ฐ ๊ฑธ ๋ณธ ์ฌ๋ ์๋์?
์ ๋ ๋ง์ฐฌ๊ฐ์ง์ง๋ง ๊ตฌ๋งค ํ๋ฆ์ ์ค์ ๋ก ํธ์ถํฉ๋๋ค.
const { productId } = args
purchaseUpdatedListener(async (purchase) => {
if (!purchase.transactionReceipt) {
Alert("Error")
}
...
})
purchaseErrorListener(error => {
...
})
await requestPurchase(productId, false)
ํ
์คํธ ์ ํ์ด 4 ๊ฐ ์๋๋ฐ purchaseUpdatedListener
4 ๋ฒ ๋ฐ์๋๋ฐ ๊ทธ์ค ํ๋์ ๋ํด์๋ง ๊ตฌ๋งค๋ฅผ ์์ฒญํ์ต๋๋ค.
ํด๋น ํธ๋์ญ์ ์ ์๋ฃํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ ์ฌ๋ฌ ํธ์ถ
ํญ๋ชฉ์ด ์๋ ๊ฐฑ์ ๋ฉ๋๊น? ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง๋ ์๋ ๋ฐ์ค์ ์๊ธฐ ๋๋ฌธ์ ์๊ฐ ๊ตฌ๋ ์ ๊ฐฑ์ ๊ธฐ๊ฐ์ด 5 ๋ถ์ ๋ถ๊ณผํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ ํ์ ๊ฐฑ์ ํ ๋๋ง๋ค ์ด๋ฒคํธ๋ฅผ ๋ณด๋ด๋ฏ๋ก ์ฑ์ด 10 ๋ถ ๋์ ๋ซํ๋ฉด ์ฑ์ด ์ด๋ฆด ๋ ๋ฐ๊ฒ๋๋ 2 ๊ฐ์ ์๋ฆผ์ ๋๋ค.
๋๊ตฌ๋ ์ด๊ฒ์ด ๊ตฌ๋งค๋ฟ๋ง ์๋๋ผ ์๋ ๊ฐฑ์ ์ ๋ํ ์๋ฆผ์ ๋ฐ๊ธฐ ์ํด ์์๋๋ ๋์์์ ํ์ธํ ์ ์์ต๋๊น?
๋ด ๊ตฌ๋งค๋ ์ผํ์ฑ ์๋ชจํ์ ๋๋ค
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๋ชจ๋ ์๋ ๊ฐฑ์ ์ด๋ฒคํธ์์ ๋๋ ์ค์ ์๋ ๊ฐฑ์ ๊ตฌ๋
์ ๋ฐ๊ณ ๋ช ์ด ํ์ purchaseUpdatedListener
์์ 135 ๊ฐ์ ๊ตฌ๋งค ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ด ์ ์ฒด ๊ตฌ๋งค ๋ด์ญ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํธ๋์ญ์
์ ์๋นํ๊ธฐ ์ํด finishTransaction
๋ฐ finishTransactionIOS
๋ฅผ ๋ชจ๋ ํธ์ถํ๋ ค๊ณ ํ์ง๋ง ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๋ค์ ์๋ ๊ฐฑ์ ์ด๋ฒคํธ์์ ํฐ ๊ฑฐ๋ ์ฒญํฌ๊ฐ ์ฆ๊ฐํฉ๋๋ค (136, 137, ...). ๊ฑฐ๋๋ ์๋ ๊ฐฑ์ ๊ตฌ๋ ์ ์ผ๋ฟ์ ๋๋ค. ๋ด ์๋ชจํ / ๋น ์๋ชจํ ์ ํ์ด ๋ชฉ๋ก์ ๋ํ๋์ง ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ๊ตฌ๋งค ๋ด์ญ์ ๊ตฌ๋งค ํ์์ ๋์ผํ ํ์๋ก ์ฒญ์ทจ์์๊ฒ ์ ํ๋ฅผ ๊ฑฐ๋ ๊ฒ์ ํ์ธํฉ๋๋ค.
๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ตฌ๋ ์ด ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค.
iOS 14์์๋ ๋น์ทํ ๊ฒฝํ์ํ์ต๋๋ค.
๋ด ์ฑ์ด ์๋ ๊ฐฑ์ ๊ตฌ๋
์ ํ๋งคํฉ๋๋ค.
๋์ผํ ๊ตฌ๋
์ ๋ค์ ๊ตฌ๋งค ํ ์ดํ๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ๋งํฌ๋์ด ๋ฌธ์ ์ ๊ด๋ จ์ด์์ ์ ์์ต๋๋ค.
https://developer.apple.com/forums/thread/659529
์ด ํฌ์คํธ๋ฅผ ๋ณด์ธ์
๋ฌธ์ ๋ ์ด์ iOS์์ finishTransaction ๋ฐ finishTransactionIOS๊ฐ ์๋ํ์ง ์์ผ๋ฉฐ ํญ์ undefined๋ฅผ ๋ฐํํ๋ฏ๋ก ํธ๋์ญ์
์ ์๋ฃ ํ ์์๊ณ ๋ณด๋ฅ์ค์ธ ํธ๋์ญ์
์ ๊ฐํ ์์ต๋๋ค. ์ฑ์ ์ด๋ฉด ๋ณด๋ฅ์ค์ธ ๋ชจ๋ ํธ๋์ญ์
์ด purchaseUpdatedListener์์ ์ฒ๋ฆฌ๋๋ฏ๋ก 20 ๋ฒ ์ด์์ ์ป์์ต๋๋ค.
: (((๋๊ตฐ๊ฐ์ด plsssssss ์์
์ด ํฌ์คํธ๋ฅผ ๋ณด์ธ์
๋ฌธ์ ๋ ์ด์ iOS์์ finishTransaction ๋ฐ finishTransactionIOS๊ฐ ์๋ํ์ง ์์ผ๋ฉฐ ํญ์ undefined๋ฅผ ๋ฐํํ๋ฏ๋ก ํธ๋์ญ์ ์ ์๋ฃ ํ ์์๊ณ ๋ณด๋ฅ์ค์ธ ํธ๋์ญ์ ์ ๊ฐํ ์์ต๋๋ค. ์ฑ์ ์ด๋ฉด ๋ณด๋ฅ์ค์ธ ๋ชจ๋ ํธ๋์ญ์ ์ด purchaseUpdatedListener์์ ์ฒ๋ฆฌ๋๋ฏ๋ก 20 ๋ฒ ์ด์์ ์ป์์ต๋๋ค.
: (((๋๊ตฐ๊ฐ์ด plsssssss ์์
https://github.com/dooboolab/react-native-iap/issues/1160#issuecomment -716525603
์ฌ๊ธฐ์ ๋ต๊ธ์ ์ฌ๋ ธ๋๋ฐ ์ค์ ๋ก finishTransaction
๊ฐ ์ฝ์์ ํด๊ฒฐํ์ง ๋ชปํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
iOS
์ชฝ์ ๋ก๊ทธ๋ฅผ ๋ฃ์ด ์ค์ ๋ก ํธ๋์ญ์
์ด ์๋ฃ๋์๋์ง ํ์ธํ๊ณ if
๋ฌธ์ด ์
๋ ฅ๋๋์ง ํ์ธํด์ผํฉ๋๋ค.
https://github.com/dooboolab/react-native-iap/issues/1172#issuecomment -721676878์์ ์ธ๊ธ ํ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ชจ๋ ์๋ ๊ฐฑ์ ์ด๋ฒคํธ์์ ๋๋ ์ค์ ์๋ ๊ฐฑ์ ๊ตฌ๋ ์ ๋ฐ๊ณ ๋ช ์ด ํ์
purchaseUpdatedListener
์์ 135 ๊ฐ์ ๊ตฌ๋งค ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ด ์ ์ฒด ๊ตฌ๋งค ๋ด์ญ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํธ๋์ญ์ ์ ์๋นํ๊ธฐ ์ํดfinishTransaction
๋ฐfinishTransactionIOS
๋ฅผ ๋ชจ๋ ํธ์ถํ๋ ค๊ณ ํ์ง๋ง ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.๋ค์ ์๋ ๊ฐฑ์ ์ด๋ฒคํธ์์ ํฐ ๊ฑฐ๋ ์ฒญํฌ๊ฐ ์ฆ๊ฐํฉ๋๋ค (136, 137, ...). ๊ฑฐ๋๋ ์๋ ๊ฐฑ์ ๊ตฌ๋ ์ ์ผ๋ฟ์ ๋๋ค. ๋ด ์๋ชจํ / ๋น ์๋ชจํ ์ ํ์ด ๋ชฉ๋ก์ ๋ํ๋์ง ์์ต๋๋ค.