React-native-iap: рдЙрддреНрдкрд╛рджреЛрдВ / рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдЧре░ 2019  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dooboolab/react-native-iap

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

рей.рей.реп

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

0.59.9 рд╣реИ

рдЬрд┐рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдореЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рд╣реБрдИ (IOS рдпрд╛ Android рдпрд╛ рджреЛрдиреЛрдВ?)

iOS рдФрд░ Android

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдореИрдВ рдкреНрд▓реЗ рдХрдВрд╕реЛрд▓ рдФрд░ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдлрд╝рдВрдХреНрд╢рдВрд╕ RNIap.getProducts рдФрд░ RNIap.getSubscriptions рд╣рдореЗрд╢рд╛ рдЦрд╛рд▓реА рд╕рд░рдгрд┐рдпрд╛рдБ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред

рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг (рдПрдореБрд▓реЗрдЯрд░? рд░рд┐рдпрд▓ рдбрд┐рд╡рд╛рдЗрд╕?)

рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

  1. Google Play рдХрдВрд╕реЛрд▓ рдФрд░ Apple Appstore Connect рдореЗрдВ рдЙрддреНрдкрд╛рдж рдЬреЛрдбрд╝реЗрдВ
  2. рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
  3. рдореИрдВрдиреЗ рдЙрддреНрдкрд╛рдж / рд╕рджрд╕реНрдпрддрд╛ рдЖрдИрдбреА рдмрджрд▓ рджрд┐рдП

рдореИрдВрдиреЗ 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>
        );
    }
}
ЁЯУ▒ iOS ЁЯЩП help wanted ЁЯЪ╢ЁЯП╗ stale ЁЯдЦ android

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмреЗрд╢рдХред Google play store рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рдкреБрд╖реНрдЯрд┐ рдХрд░реВрдБрдЧрд╛

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдореЗрд░реЗ рдРрдк рдХреЗ Google Play Store рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЦрд░реАрджрд╛рд░реА рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдордВрдЬреВрд░ рд╣реЛрдиреЗ рдореЗрдВ 3 рджрд┐рди рд▓рдЧрддреЗ рд╣реИрдВред @Jvandenaardweg рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

рдЕрджреНрдпрддрди реи

рд░рд┐рдПрдХреНрдЯрд░-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЧреВрдЧрд▓ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред

рд╕рднреА 31 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ 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]ред рдЦрд░реАрдж рдХреА рд╡рд╕реНрддреБ]

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░реА рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдбрд┐рдмрдЧ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд▓рдЧ рдмрдВрдбрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ:

  • рд░рд┐рд▓реАрдЬрд╝ - 'domain.appName';
  • рдбреАрдмрдЧ - 'domain.appName.dev';
    рдЗрди-рдРрдк рдЦрд░реАрджрд╛рд░реА рдЖрдЗрдЯрдо рдЬреЛ рдореИрдВрдиреЗ рдмрдирд╛рдП рд╣реИрдВ, рдРрдк рдХреЗ рдЙрддреНрдкрд╛рджрди (рдпрд╛рдиреА рд░рд┐рд▓реАрдЬрд╝) рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдРрдк рдХреЗ рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛?

рдХрд┐рд╕реА рднреА рд╕рд▓рд╛рд╣ рдХреА рдХрд╛рдлреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдерд╛, рдФрд░ рдореБрдЭреЗ рдмрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред (ios)

рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛!

рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреНрд▓реЗ рд╕реНрдЯреЛрд░ рдкрд░ рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдкреАрдХреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рднреА рдЬреЛрдбрд╝реА рд╣реИред рдореИрдВ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@ShridharCodewave рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :(

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА: 3.3.2

рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдмреАрдЯрд╛ рдЪреИрдирд▓ рдореЗрдВ Google Play Store рдкрд░ рдПрдкреАрдХреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред

image

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдиреЗрдХреНрд╢рди 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 рдкрд░ рдХреНрдпрд╛ рдЪрд╛рд▓ рдЪрд▓реА рдЧрдИ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреЛрдбреНрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ!

рдЕрд░реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рдореБрджреНрджрд╛ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрднреА рднреА рд╕рдореБрджрд╛рдп рдХреЗ рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рди рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ "рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП" рдпрд╛ "рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MacMillan13 picture MacMillan13  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lc3t35 picture lc3t35  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

HamzaIkram2727 picture HamzaIkram2727  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

iutin picture iutin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jvandenaardweg picture jvandenaardweg  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ