3.3.9
0,59,9
iOS ΠΈ Android
Π― ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ ΡΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π² Play console ΠΈ Appstore.
Π€ΡΠ½ΠΊΡΠΈΠΈ RNIap.getProducts
ΠΈ RNIap.getSubscriptions
Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΡΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.
Π‘ΠΈΠΌΡΠ»ΡΡΠΎΡ iOS, ΡΠΌΡΠ»ΡΡΠΎΡ Android ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Android
Π― ΠΆΠ΄Π°Π» Π±ΠΎΠ»ΡΡΠ΅ 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, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΌΠΎΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² playstore Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ apk.
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ΄ΡΠΊΡ Π² Apple, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ.
const itemSkus = Platform.select({
ios: [
'product1'
],
android: []
});
RNIap.getProducts(itemSkus).then((products) => {
console.log(products); //<< returns empty array
}).catch((error) => console.log(error))
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΎΡΡΠ°Π·ΠΈΠ»ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΎΠΏΡΡΠ΅?
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ, Π½Π°Π»ΠΎΠ³ΠΈ ΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½Ρ
"react-native-iap": "^ 3.4.0",
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ "ΠΠΎΡΠΎΠ²ΠΎ ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅"
@nateblog ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ? ΠΠΎΠ΄ΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ Π»ΠΈ Π²Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² App Store Connect Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° / ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ? ΠΡΠ»ΠΈ Π΄Π°, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π°ΠΊΡΠΈΠ²Π½ΡΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈΠ»ΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅. ΠΠΎΠΌΠ½Ρ, ΡΠ°Π½ΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ Ρ ΡΡΠΈΠΌ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π―Π·ΡΠΊ ΠΌΠΎΠ΅Π³ΠΎ ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ° ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Β«ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ (Π‘Π¨Π)Β» Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ.
@jvandenaardweg - ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ, Π΄Π°, Ρ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° Β«ΠΠΎΡΠΎΠ²ΠΎ ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅Β», Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠΎΠΏΡΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Β«ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ (Π‘Π¨Π)Β», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, ΠΈ Π΄Π°, ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΎΠΉ.
ΠΠΠΠΠΠΠ’Π¬
Π― ΡΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΠ»ΡΡ, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΠ» Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΒ» ΠΈ ΠΏΠΎΠ½ΠΈΠ·ΠΈΠ» Π²Π΅ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎ 2.4.0, Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΡΠ°Π»ΡΡ ΡΠ΅ΠΌ ΠΆΠ΅. . Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ².
Π’Π°ΠΊΠΆΠ΅ Ρ ΡΠ²ΡΠ·Π°Π» ΠΏΠ°ΠΊΠ΅Ρ Π²ΡΡΡΠ½ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅Π°ΠΊΡΠΈΡ, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΠΆΠ΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΎΡ, ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΠΌΠΎΠ΅ΠΌ xcode, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΠΈ ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΡΡΠ½ΡΡ. (iOS)
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΈΠ· Itunes Connect, ΠΈ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ RN: 0.43.4. ΠΡΠΎΠ±ΠΎΠ²Π°Π» Π²Π΅ΡΡΠΈΠΈ 3.3.7 ΠΈ 2.5.5 Π Π-ΠΠΠ. ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ React-Native?
ΠΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π½Π΅Ρ, ΠΏΡΠΎΡΡΠΎ Π½Π΅Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΠΌΠΎΠ΅ΠΌ xcode, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ, @nateblog! Π£ ΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΡΡΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ, ΠΈ Ρ ΡΠΎΠ·Π΄Π°Π» 2 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² App Store Connect. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Ρ Π²Π°ΡΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°? Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π°ΡΡΠΈΠΊΡΠ»Ρ ΡΠΎΠ²Π°ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ»ΠΈ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ - ΡΡΠΎ [ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ°]. [ProductId ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΡΠΏΠΊΠΈ] ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ [ProductId ΡΠΎΠ²Π°ΡΠ°]?
Π’Π°ΠΊΠΆΠ΅ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠΈΡ ΡΡ Π΅ΠΌ Π²ΡΠΏΡΡΠΊΠ° ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ:
ΠΡΠ±ΠΎΠΉ ΡΠΎΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»Π΅Π½.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΠΈ ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΡΡΠ½ΡΡ. (iOS)
Π’Ρ ΡΠΏΠ°Ρ ΠΌΠ½Π΅ Π΄Π΅Π½Ρ!
Π― ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π» response-native-iap ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΡΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ apk Π² Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΈΠ³Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΎΠ΄ΠΈΠ½ ΠΏΠ»Π°Π½ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ. Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠΎΠ³Ρ Π»ΠΈ Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ?
@ShridharCodewave, Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ :(
ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ-native-iap: 3.3.2
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠΌ Android. Π― Π·Π°Π³ΡΡΠ·ΠΈΠ» apk Π² Google Play Store Π½Π° Beta Channel ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΡΠΎΠ΄ΡΠΊΡΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ, Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ
@ismetsezer Π²Π΅ΡΡ Π±ΠΈΠ»Π»ΠΈΠ½Π³ In App Π΄Π»Ρ Android Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅:
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΌΡΠ»ΡΡΠΎΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Google Play Billing; Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Google Play Billing.
https://developer.android.com/google/play/billing/billing_testing
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
Π iOS Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅. ΠΠΎ ΠΊΡΠΏΠΈΡΡ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΅ΡΠ΅ ΠΈ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠ»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π²ΡΡΠ΅: Π’Π°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ versionName
ΠΈ versionCode
Π² android/app/build.gradle
ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π² Google Play Console.
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ·-Π·Π° Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Android:
Π Π°Π½ΡΡΠ΅ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Π³ΡΡΠ·ΠΈΠ² Π½Π΅ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Β«ΡΠ΅ΡΠ½ΠΎΠ²ΡΡΒ» Π²Π΅ΡΡΠΈΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΊΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΡΡΠΎΠΉ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ Π΄ΠΎΡΠΎΠΆΠΊΠ΅. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π ΡΠ°Π·Π΄Π΅Π»Π΅ Π§Π΅ΡΠ½ΠΎΠ²ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ.
https://developer.android.com/google/play/billing/billing_testing
Β«ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΒ» Π½Π° Π·Π°ΠΊΡΡΡΠΎΠΌ / ΠΎΡΠΊΡΡΡΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΉΡΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² Google Play. Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡ ΡΠ°ΡΠΎΠ² Π΄Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π― Π½Π΅ Π·Π½Π°Ρ ΡΠΎΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ΄Π΅Π»Π°Π», Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Android. Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° response-native-iap, Π° ΡΠΊΠΎΡΠ΅Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ README ΠΎΠ± ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @jvandenaardweg, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π΄Π°, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΡΠ»ΠΊΠ΅, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π΅ΡΠ°-ΠΊΠ°Π½Π°Π»Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΏΡΡΡ
ΠΡΠΈΡΡΠ½ΠΎ ΡΠ»ΡΡΠ°ΡΡ @ismetsezer . ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ / ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ³Π΄Π° ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ readme ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ :-)
ΠΠΎΠ½Π΅ΡΠ½ΠΎ.ΠΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Google Play Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Ρ Π·Π΄Π΅ΡΡ
ΠΠΠΠΠΠΠ’Π¬
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π² Google Play Store, ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ. Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 3 Π΄Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @jvandenaardweg
ΠΠΠΠΠΠΠΠΠΠ 2
response-native-iap ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Android, Π΅ΡΠ»ΠΈ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Google Play.
@kesepara ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π² ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
ΠΡΠΈΠ²Π΅Ρ, @ismetsezer ΠΈ @kesepara!
Π― Π±ΡΠ» Π±Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»Π΅Π½ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ-ΡΠΎ ΠΌΠ½Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΡΠ½ΠΎ.
Π― Π½Π°ΡΡΡΠΎΠΈΠ» RN IAP Π΄Π»Ρ iOS, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
Π‘Π΅ΠΉΡΠ°Ρ Ρ Π½Π°ΡΠΈΠ½Π°Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Android-ΡΠ°ΡΡΡΡ, ΠΈ Π·Π΄Π΅ΡΡ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ APK, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π½Π° Π·Π°ΠΊΡΡΡΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅), ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ»Π°ΡΡ.
ΠΠΎ Π² ΡΠ²ΠΎΠΈΡ
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΡΠΎ ΡΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Android, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ APK Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ?
ΠΠ°ΡΠ° ΠΏΠΎΠΌΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»ΡΠ½Π°.
ΠΡΠΈΠ²Π΅Ρ @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, ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Android ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Google Play. ΠΠΎΠΏΡΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ / ΠΏΡΠΎΠ΄ΡΠΊΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Android.
ΠΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π΄Π»Ρ iOS ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ²Π΅Ρ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°? ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊ Β«ΠΠ»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΒ» ΠΈΠ»ΠΈ Β«Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊΒ», ΠΈ Ρ ΠΎΡΡΠ°Π²Π»Ρ Π΅Π³ΠΎ ΠΎΡΠΊΡΡΡΡΠΌ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
RN 0.59.1 Π½Π° Android dev Π·Π΄Π΅ΡΡ, ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π΅ΡΡΠΈΡ iap 4.4.1
ΠΠΎΡ ΡΠ±ΠΎΡΠΊΠ° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π°Π»ΡΡΠ°-ΡΡΠ΅ΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΠ» Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π² Platform.select ({}) Ρ ΡΠΊΠ°Π·Π°Π» ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ Π΅ΡΡΡ Π² Play Console, ΠΈ Π²ΡΠ·Π²Π°Π» getSubscriptions (), Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ Π² Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ? ΠΡΠ±ΡΠ΅ ΠΈΠ΄Π΅ΠΈ?
@edgaralienfoe , Π²Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Google Play?
@acostalima Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ.
@edgaralienfoe Π― ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Google Play, ΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ Π°ΠΊΡΠΈΠ²Π½Π°, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅, ΡΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
@edgaralienfoe ΠΡ Π½Π°ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΡΠ΅, ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ Π² Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ
@edgaralienfoe ΠΡ Π½Π°ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΡΠ΅, ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ Π² Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ
ΠΠ»ΡΡΠ°-ΡΡΠ΅ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π― ΡΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ ΡΠ΅ΡΡΠΈΡΡΡ IAP ΡΠΎ ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠΌΠΈ Π½Π° Alpha Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΡΠ΅ΠΊ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ»Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π·Π΄Π΅ΡΡ, ΡΠ»ΠΎΠ²ΠΊΠ° Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π½Π° iOS Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ²ΡΠ·Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π²ΡΡΡΠ½ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ @ Kuhne1 - ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²ΡΡΡΠ½ΡΡ, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ !
ΠΡΠΈΠ²Π΅Ρ, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° ΠΈΠ»ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°? ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊ Β«ΠΠ»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΒ» ΠΈΠ»ΠΈ Β«Π₯ΠΎΡΠΎΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊΒ», ΠΈ Ρ ΠΎΡΡΠ°Π²Π»Ρ Π΅Π³ΠΎ ΠΎΡΠΊΡΡΡΡΠΌ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠ½Π΅ΡΠ½ΠΎ.ΠΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Google Play Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Ρ Π·Π΄Π΅ΡΡ
ΠΠΠΠΠΠΠ’Π¬
ΠΠΠΠΠΠΠΠΠΠ 2