рей.рей.реп
0.59.9 рд╣реИ
iOS рдФрд░ Android
рдореИрдВ рдкреНрд▓реЗ рдХрдВрд╕реЛрд▓ рдФрд░ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред
рдлрд╝рдВрдХреНрд╢рдВрд╕ RNIap.getProducts
рдФрд░ RNIap.getSubscriptions
рд╣рдореЗрд╢рд╛ рдЦрд╛рд▓реА рд╕рд░рдгрд┐рдпрд╛рдБ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред
рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕
рдореИрдВрдиреЗ 24 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреАред рдореИрдВрдиреЗ Google Play рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬрд╝ рднреА рдмрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдЦрд╛рд▓реА рд╕рд░рдгрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХрдм рдореБрдЭреЗ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдореЗрд░рд╛ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рд░реЛрд▓ рдЖрдЙрдЯ рдЕрднреА рднреА Google Play рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд▓рдВрдмрд┐рдд рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ react-native-iap
рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛? рдХреНрдпрд╛ рдореБрдЭреЗ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдРрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рди рд╣реЛ рдЬрд╛рдП?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ / рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рднреА рдкрд░реАрдХреНрд╖рдг рдЦрд░реАрдж рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдореБрд▓реЗрдЯрд░ рдкрд░ getProducts
/ getSubscriptions
рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
const itemSkus = Platform.select({
ios: ['product_1'],
android: ['1', '2']
});
const itemSubs = Platform.select({
ios: ['subscription_1'],
android: ['subscription_1', 'subscription_2']
});
let purchaseUpdateSubscription;
let purchaseErrorSubscription;
class App extends Component {
constructor(props) {
super(props);
this.state = {
productList: [],
receipt: '',
availableItemsMessage: ''
};
}
async componentDidMount() {
SplashScreen.hide();
try {
const result = await RNIap.initConnection();
await RNIap.consumeAllItemsAndroid();
console.log('result', result);
} catch (err) {
console.warn(err.code, err.message);
}
purchaseUpdateSubscription = purchaseUpdatedListener(async purchase => {
console.log('purchaseUpdatedListener', purchase);
if (purchase.purchaseStateAndroid === 1 && !purchase.isAcknowledgedAndroid) {
try {
const ackResult = await acknowledgePurchaseAndroid(purchase.purchaseToken);
console.log('ackResult', ackResult);
} catch (ackErr) {
console.warn('ackErr', ackErr);
}
}
this.setState({ receipt: purchase.transactionReceipt }, () => this.goNext());
});
purchaseErrorSubscription = purchaseErrorListener(error => {
console.log('purchaseErrorListener', error);
Alert.alert('purchase error', JSON.stringify(error));
});
}
componentWillMount() {
if (purchaseUpdateSubscription) {
purchaseUpdateSubscription.remove();
purchaseUpdateSubscription = null;
}
if (purchaseErrorSubscription) {
purchaseErrorSubscription.remove();
purchaseErrorSubscription = null;
}
}
goNext = () => {
Alert.alert('Receipt', this.state.receipt);
};
getItems = async () => {
try {
const products = await RNIap.getProducts(itemSkus);
console.log('Products', products);
this.setState({ productList: products });
} catch (err) {
console.warn(err.code, err.message);
}
};
getSubscriptions = async () => {
try {
const products = await RNIap.getSubscriptions(itemSubs);
console.log('Products', products);
this.setState({ productList: products });
} catch (err) {
console.warn(err.code, err.message);
}
};
getAvailablePurchases = async () => {
try {
console.info('Get available purchases (non-consumable or unconsumed consumable)');
const purchases = await RNIap.getAvailablePurchases();
console.info('Available purchases :: ', purchases);
if (purchases && purchases.length > 0) {
this.setState({
availableItemsMessage: `Got ${purchases.length} items.`,
receipt: purchases[0].transactionReceipt
});
}
} catch (err) {
console.warn(err.code, err.message);
Alert.alert(err.message);
}
};
requestPurchase = async sku => {
try {
RNIap.requestPurchase(sku);
} catch (err) {
console.warn(err.code, err.message);
}
};
requestSubscription = async sku => {
try {
RNIap.requestSubscription(sku);
} catch (err) {
Alert.alert(err.message);
}
};
render() {
const { productList, receipt, availableItemsMessage } = this.state;
const receipt100 = receipt.substring(0, 100);
return (
<View style={styles.container}>
<View style={styles.header}>
<Text style={styles.headerTxt}>react-native-iap V3</Text>
</View>
<View style={styles.content}>
<ScrollView style={{ alignSelf: 'stretch' }}>
<View style={{ height: 50 }} />
<NativeButton
onPress={this.getAvailablePurchases}
activeOpacity={0.5}
style={styles.btn}
textStyle={styles.txt}
>
Get available purchases
</NativeButton>
<Text style={{ margin: 5, fontSize: 15, alignSelf: 'center' }}>
{availableItemsMessage}
</Text>
<Text style={{ margin: 5, fontSize: 9, alignSelf: 'center' }}>
{receipt100}
</Text>
<NativeButton
onPress={() => this.getItems()}
activeOpacity={0.5}
style={styles.btn}
textStyle={styles.txt}
>
Get Products ({productList.length})
</NativeButton>
{productList.map((product, i) => {
return (
<View
key={i}
style={{
flexDirection: 'column'
}}
>
<Text
style={{
marginTop: 20,
fontSize: 12,
color: 'black',
minHeight: 100,
alignSelf: 'center',
paddingHorizontal: 20
}}
>
{JSON.stringify(product)}
</Text>
<NativeButton
// onPress={() => this.requestPurchase(product.productId)}
onPress={() => this.requestSubscription(product.productId)}
// onPress={() => this.buyItem(product.productId)}
// onPress={() => this.buySubscribeItem(product.productId)}
activeOpacity={0.5}
style={styles.btn}
textStyle={styles.txt}
>
Request purchase for above product
</NativeButton>
</View>
);
})}
</ScrollView>
</View>
</View>
);
}
}
рдЖрдк рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ real device
рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ios
рдХреЗ рд▓рд┐рдП getProducts
/ getSubscription
рдореЗрдВ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ android
ред android
рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдЦрд░реАрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Google рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВред
рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдРрдк рдХреЛ рдкреНрд▓реЗрд╕реНрдЯреЛрд░ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдкреАрдХреЗ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рднреА рд╣реИ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реЗрдм рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
const itemSkus = Platform.select({
ios: [
'product1'
],
android: []
});
RNIap.getProducts(itemSkus).then((products) => {
console.log(products); //<< returns empty array
}).catch((error) => console.log(error))
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ?
рд╕рдордЭреМрддреЗ, рдХрд░ рдФрд░ рдмреИрдВрдХрд┐рдВрдЧ рд╕рднреА рд╕рдХреНрд░рд┐рдп рд╣реИрдВ
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА": "^ 3.4.0",
рдФрд░ рдЗрди-рдРрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд░реЗрдбреА рдЯреВ рд╕рдмрдорд┐рдЯ" рд╕реНрдерд┐рддрд┐ рд╣реИ
@nateblog рдЖрдкрдиреЗ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдпрд╛? рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдпрд╛ рдХреБрдЫ рдФрд░?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рдж / рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЬреЛрдбрд╝рд╛ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдп рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдХреБрдЫ рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ рдереАред рдореЗрд░реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд▓реЛрдХреЗрд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ "рдЕрдВрдЧреНрд░реЗрдЬреА (рдпреВрдПрд╕)" рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЬреЛрдбрд╝рд╛ рд╣реИред
@jvandenaardweg - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рддрд╣рдд рдЗрди-рдРрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЬ рдХреЛ 2.4.0 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рд╣реИред ред рдореИрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдЦрд╛рд▓реА рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдкреЛрд╕реНрдЯ рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡рд╣реА рдкрд░рд┐рдгрд╛рдоред рдореИрдВ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЕрдм рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рдЖрдИрдбреА рдореЗрдВ рдмрдВрдбрд▓ рдЖрдИрдбреА рдерд╛, рдореИрдВ рдЧрд▓рдд рдмрдВрдбрд▓ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдерд╛, рдФрд░ рдореБрдЭреЗ рдмрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред (ios)
рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, Itunes рдХрдиреЗрдХреНрдЯ рд╕реЗ рдХрд┐рд╕реА рднреА рдЙрддреНрдкрд╛рдж рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд╣рд╛рдВ рд╢реБрд░реВ рдХрд░рдиреА рд╣реИред рдРрдк RN: 0.43.4 рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ 3.3.7 рдФрд░ RN-IAP рдХреЗ 2.5.5 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реВрдВ?
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рд╣реИрдВ, рдмрд╕ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЕрдм рдЗрд╕реЗ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рдЖрдИрдбреА рдореЗрдВ рдмрдВрдбрд▓ рдЖрдИрдбреА рдерд╛, рдореИрдВ рдЧрд▓рдд рдмрдВрдбрд▓ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЕрд░реЗ, @nateblog! рдореИрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рдореБрдЭреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд╕рд░рдгрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ рдФрд░ рдореИрдВрдиреЗ рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ 2 рд╕рджрд╕реНрдпрддрд╛ рдЖрдЗрдЯрдо рдмрдирд╛рдП рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдмрдВрдбрд▓ рдЖрдИрдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдереЗ рдХреГрдкрдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рд╕рд╣реА рдЖрдЗрдЯрдо SKU рдЬрдорд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рд╡реЗ рдХреНрдпрд╛ рд╣реИрдВ - рд╡реЗ [рдмрдВрдбрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛] рд╣реИрдВред [рдЦрд░реАрдж рдЖрдЗрдЯрдо рдХрд╛ ProductId] рдпрд╛ рд╕рд┐рд░реНрдл [ProductId]ред рдЦрд░реАрдж рдХреА рд╡рд╕реНрддреБ]
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░реА рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбрд┐рдмрдЧ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд▓рдЧ рдмрдВрдбрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ:
рдХрд┐рд╕реА рднреА рд╕рд▓рд╛рд╣ рдХреА рдХрд╛рдлреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдерд╛, рдФрд░ рдореБрдЭреЗ рдмрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред (ios)
рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛!
рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдкрд░ рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдкреАрдХреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рднреА рдЬреЛрдбрд╝реА рд╣реИред рдореИрдВ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
@ShridharCodewave рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :(
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА: 3.3.2
рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдмреАрдЯрд╛ рдЪреИрдирд▓ рдореЗрдВ Google Play Store рдкрд░ рдПрдкреАрдХреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдиреЗрдХреНрд╢рди init рддреЛ рдореИрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдВрд╕реЛрд▓ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдпрд╣рд╛рдБ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ
рдЗрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯреА рдирд╣реАрдВ рд╣реИ
@ismetsezer рд╕рдВрдкреВрд░реНрдг Android рдХреЗ рд▓рд┐рдП рдРрдк рдмрд┐рд▓рд┐рдВрдЧ рдореЗрдВ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
Google Play рдмрд┐рд▓рд┐рдВрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; Google Play рдмрд┐рд▓рд┐рдВрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
https://developer.android.com/google/play/billing/billing_testing
рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
IOS рдореЗрдВ рдЖрдк рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЦрд░реАрдж рдирд╣реАрдВ рд╕рдХрддреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП: рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ versionName
рдФрд░ versionCode
android/app/build.gradle
Google Play рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдорд╛рди рдпрд╛ рдЙрдЪреНрдЪрддрд░ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рдирдИ рд╕рдореАрдХреНрд╖рд╛ рдиреАрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рдЙрддреНрдкрд╛рджрди рдЯреНрд░реИрдХ рдореЗрдВ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕рдореАрдХреНрд╖рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдкрд╣рд▓реЗ рдЖрдк рдПрдХ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд "рдбреНрд░рд╛рдлреНрдЯ" рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрд▓реЛрдб рдХрд░рдХреЗ рдПрдХ рдРрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рдереЗред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдмрдВрдж рдпрд╛ рдЦреБрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдЯреНрд░реИрдХ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдбреНрд░рд╛рдлреНрдЯ рдРрдкреНрд╕ рдХреЛрдИ рд▓рдВрдмреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
https://developer.android.com/google/play/billing/billing_testing
рдмрдВрдж / рдЦреБрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдЯреНрд░реИрдХ рдореЗрдВ "рдкреНрд░рдХрд╛рд╢рди" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ Google Play рдХреА рдирдИ рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬреЛ рдирдП рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХрд╛ рд╕рдордпред
рдореБрдЭреЗ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╕рдЯреАрдХ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдкреИрдХреЗрдЬ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдмрд╛рдд рд╣реИред
рдпрджрд┐ рдХреЛрдИ рдЙрдкрд░реЛрдХреНрдд рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ README рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рд╕реЗ рдХреБрдЫ рдирдпрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж @jvandenaardweg рдЬрдм рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореБрдЭреЗ рдмреАрдЯрд╛ рдЪреИрдирд▓ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрд╕реНрдЯ рдРрдк рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕рд░рдгреА рдЦрд╛рд▓реА рдЖрддреА рд╣реИ
рд╕реБрдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ @ismetsezer рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореАрдХреНрд╖рд╛ / рдкреНрд░рдХрд╛рд╢рд┐рдд рдкрд░реАрдХреНрд╖рдг рдРрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рддрдм рд╣рдо рдЙрд╕ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд░реАрдбрдореА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :-)
рдмреЗрд╢рдХред Google play store рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рдкреБрд╖реНрдЯрд┐ рдХрд░реВрдБрдЧрд╛
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдореЗрд░реЗ рдРрдк рдХреЗ Google Play Store рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЦрд░реАрджрд╛рд░реА рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдордВрдЬреВрд░ рд╣реЛрдиреЗ рдореЗрдВ 3 рджрд┐рди рд▓рдЧрддреЗ рд╣реИрдВред @Jvandenaardweg рдХреЛ рдзрдиреНрдпрд╡рд╛рдж
рдЕрджреНрдпрддрди реи
рд░рд┐рдПрдХреНрдЯрд░-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЧреВрдЧрд▓ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред
@kesepara рдореБрдЭреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдкрд░ рдирдИ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рд╣рд╛рдп @ismetsezer рдФрд░ @kesepara ,
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ iOS рдХреЗ рд▓рд┐рдП RN IAP рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдЕрдм рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЕрдм рдПрдВрдбреНрд░реЙрдЗрдб рдкрд╛рд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛
рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд╣рдореЗрдВ рд╕реНрдЯреЛрд░ рдкрд░ рд╕рд╛рдЗрди рдЗрди рдПрдкреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╣рдо рдбрд┐рдмрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЖрдкрдХреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рд╣рд╛рдп @beeremy рдЖрдкрдХреЗ рдЕрдЪреНрдЫреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ iap рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Google Play рд╕рдорд░реНрдерди рд╣реИред IAP рдиреЗ Google Play Store рдкрд░ рдРрдк рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдкрд░ рдбреНрд░рд╛рдлреНрдЯ рдЕрдкрд▓реЛрдб рдпрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ 2 - 3 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред
рд╣рд╛рдп @ismetsezer , рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЬреЛ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЧрдпрд╛ рд╣реВрдВ: https://stackoverflow.com/questions/36113347/is-it-possible-to-debug-locally/google.plays -рдЗрди-рдРрдк-рдмрд┐рд▓рд┐рдВрдЧ-рдЗрди-рдПрдВрдбреНрд░реЙрдЗрдб-рд╕реНрдЯреВрдбрд┐рдпреЛ
рдореИрдВ @ismetsezer рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛
рдЖрдИрдУрдПрд╕ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдкрд░ рдРрдк рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣рд╛рдБ рдПрдВрдбреНрд░реЙрдЗрдб рджреЗрд╡ рдкрд░ рдЖрд░рдПрди 0.59.1 рдФрд░ рдореИрдВ рдЖрдИрдПрдкреА рд╕рдВрд╕реНрдХрд░рдг 4.4.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореЗрд░рд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд▓реНрдлрд╛ рдЯреНрд░реИрдХ рдкрд░ рд╣реИред рдмрд╛рдж рдореЗрдВ , рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛, Platform.select ({}) рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рд╕рджрд╕реНрдпрддрд╛ рдЖрдИрдбреА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд▓реЗ рдХрдВрд╕реЛрд▓ рдкрд░ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЧреЗрдЯрдмрд╕рдкреНрд▓реЗрд╢ () рдХрд╣рд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдпрд╣ рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИ? рдХреЛрдИ рд░рд╛рдп?
@edgaralienfoe рдХреНрдпрд╛ рдЖрдкрдиреЗ Google Play рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдкрдиреА рд╕рджрд╕реНрдпрддрд╛ рд╕рдХреНрд░рд┐рдп рдХрд░ рджреА рд╣реИ?
@acostalima рдЗрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рд╢рд╛рдпрдж рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рджрд┐рди рд▓рдЧрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд┐рд╕реНрдордд рдирд╣реАрдВред
@edgaralienfoe рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ Google Play рдХрдВрд╕реЛрд▓ рдкрд░ рдХрд┐рд╕реА рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ рдпрджрд┐ рдпрд╣ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ рдЖрдкрдХреЗ рдРрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧреАред рд▓реЗрдХрд┐рди, рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЕрдиреНрдп рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
@edgaralienfoe рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд╣рд▓ рдорд┐рд▓рд╛? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдРрдк рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓реНрдлрд╛ рдЯреНрд░реИрдХ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
@edgaralienfoe рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд╣рд▓ рдорд┐рд▓рд╛? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдРрдк рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓реНрдлрд╛ рдЯреНрд░реИрдХ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрд▓реНрдлрд╛ рдЯреНрд░реИрдХ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП IAPs рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдЕрд▓реНрдлрд╛ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рдеред рджреВрд╕рд░реА рдУрд░, рдЖрдВрддрд░рд┐рдХ рдЯреНрд░реИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╣рд░ рдХреЛрдИ рдЬреЛ рдпрд╣рд╛рдВ рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП iOS рдкрд░ рдХреНрдпрд╛ рдЪрд╛рд▓ рдЪрд▓реА рдЧрдИ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреЛрдбреНрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ!
рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмреЗрд╢рдХред Google play store рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рдкреБрд╖реНрдЯрд┐ рдХрд░реВрдБрдЧрд╛
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдЕрджреНрдпрддрди реи