React-native-iap: buySubscription рд╕рдлрд▓ рдЦрд░реАрджрд╛рд░реА рдХреЗ рдмрд╛рд╡рдЬреВрдж E_UNKNOWN рд▓реМрдЯрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдХреНрддреВре░ 2018  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dooboolab/react-native-iap

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

2.2.2 (рдХреНрдпреЛрдВрдХрд┐ # 279 рдХреЗ рдХрд╛рд░рдг iOS рдкрд░ рдХреЛрдИ рднреА рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ)

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

рдЖрдИрдУрдПрд╕

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

рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЦрд░реАрджрд╛рд░реА рд╕рдлрд▓ рд░рд╣реА (рд▓рд╛рдЗрд╡ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ)

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

E_UNKNOWN рддреНрд░реБрдЯрд┐ рд╡рд╛рджрд╛ рд╕реЗ рд▓реМрдЯрд╛ рджреА рдЧрдИ рд╣реИ
рд╣рдорд╛рд░реЗ Sentry.io рддреНрд░реБрдЯрд┐ рдЯреНрд░реИрдХрд┐рдВрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд░рд┐рдкреЛрд░реНрдЯ:

{"framesToPop":1,"code":"E_UNKNOWN","nativeStackIOS":["0   LuCoaching                          0x000000010062f6fc LuCoaching + 1996540","1   LuCoaching                          0x000000010060aa98 LuCoaching + 1845912","2   LuCoaching                          0x00000001007cad98 __cxa_throw + 438380","3   LuCoaching                          0x00000001007cc62c __cxa_throw + 444672","4   libdispatch.dylib                   0x000000019d078484 <redacted> + 16","5   libdispatch.dylib                   0x000000019d025610 <redacted> + 56","6   LuCoaching                          0x00000001007cc46c __cxa_throw + 444224","7   libdispatch.dylib                   0x000000019d0776c8 <redacted> + 24","8   libdispatch.dylib                   0x000000019d078484 <redacted> + 16","9   libdispatch.dylib                   0x000000019d0249ec <redacted> + 1068","10  CoreFoundation                      0x000000019d5ce1bc <redacted> + 12","11  CoreFoundation                      0x000000019d5c9084 <redacted> + 1964","12  CoreFoundation                      0x000000019d5c85b8 CFRunLoopRunSpecific + 436","13  GraphicsServices                    0x000000019f83c584 GSEventRunModal + 100","14  UIKitCore                           0x00000001ca444bc8 UIApplicationMain + 212","15  LuCoaching                          0x000000010044d110 LuCoaching + 20752","16  libdyld.dylib                       0x000000019d088b94 <redacted> + 4"],"userInfo":{"NSLocalizedDescription":"Verbindung mit iTunes Store nicht m├╢glich"},"domain":"SKErrorDomain","line":26,"column":1877,"sourceURL":"/var/containers/Bundle/Application/818C8439-E250-42E8-AD57-EC4FB5FE5547/LuCoaching.app/main.jsbundle"}

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

рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ред рд▓рд╛рдЗрд╡ рдЧреНрд░рд╛рд╣рдХред рдмрд╣реБрдд рд╕рд╛рдордВрдЬрд╕реНрдп рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

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

рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

ЁЯРЫ bug ЁЯУ▒ iOS

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

: +1: рд╣рдо рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рдЧрднрдЧ 10% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдВрддрддрдГ рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред @hyochan рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ

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

@ рдЧреИрдпрд╛-рдкреЛрд╖рдг рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ? рдпрд╣ рдПрдХ рд╣реА рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
https://github.com/dooboolab/react-native-iap/issues/201

#JJMoon # 201 рдореЗрдВ рддреНрд░реБрдЯрд┐ E_DEVELOPER_ERROR рдФрд░ validProducts рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ getSubscriptions() validProducts рд╕реВрдЪреА рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ рдереАред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓рддреА рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг getSubscriptions() рдФрд░ buySubscription() рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдХреБрдЫ рд╕рдордп рдХреА рджреЗрд░реА рд╣реЛ, рдпрджрд┐ рд╡рд╣ рдЦрд░реАрджрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмреАрдЪ рдРрдк рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдЦрд░реАрдж рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрдк рд╕реНрдЯреЛрд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ

рдирдорд╕реНрдХрд╛рд░,

"BuyProductWithoutFinishTransaction" рдпрд╛ "buyProduct" рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ред

рд╕рдВрд╕реНрдХрд░рдг 2.2.1

рд╕рдВрдЧреНрд░рд╣рд┐рдд рд░рд┐рдЯрд░реНрди рд╣реИ
{ "framesToPop": 1, "code": "E_UNKNOWN", "nativeStackIOS": [...], "userInfo": { "NSLocalizedDescription": "Connexion ├а lтАЩiTunes Store impossible" }, "domain": "SKErrorDomain", "line": 16, "column": 1599, "sourceURL": "..." }

рд╣рдордиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рджрди рдкрд░ рдЗрд╕ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЦрд░реАрдж рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ iOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд▓рдЧрднрдЧ 1% рд╣реЛрддрд╛ рд╣реИред

@fierysolid рд╕рдорд╛рди рдорд╛рдорд▓рд╛, рд╣рдо iOS рдкрд░ рд▓рдЧрднрдЧ 5% рдЦрд░реАрдж рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдЬрдм рдЧреНрд░рд╛рд╣рдХ рдлрд┐рд░ рд╕реЗ рдЦрд░реАрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЦрд░реАрдж рдкреЙрдк рдЕрдк рд╣реЛрддрд╛ рд╣реИред

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЬ рд╣рдорд╛рд░реЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ 2.3.15 ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ ios рдореЗрдВ рд╢реБрджреНрдз рд░реВрдк рд╕реЗ NSDictionary рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╣рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХреГрдкрдпрд╛ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред

рдХреГрдкрдпрд╛ рддрдм рднреА рдкреБрдирдГ рдЦреЛрд▓реЗрдВ рдЬрдм рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реЛред

@dooboolab
IPhone 6S рдХреЗ рд╕рд╛рде рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЯреЗрд╕реНрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде buySubscription() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред

{"userInfo":{"NSLocalizedDescription":"Cannot connect to iTunes Store"}}

@danrevah рддреЛ рдЖрдкрдиреЗ рд╣рдорд╛рд░реЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреЛ 2.3.15 ? @JJMoon рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@dooboolab рд╣рд╛рдБ Im рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред

@danrevah рдХреГрдкрдпрд╛ 2.3.16 рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

@dooboolab рдиреЗ рдПрдХ рдмрд╛рд░ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдВ

@JJMoon рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕реБрд░рд╛рдЧ рд╣реИ? рд╡рд╣ iPhone6S рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИред cc @ рдЬреЗрдПрдордореВрди

рдпрджрд┐ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡реЛрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреЛрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

@danrevah рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рджреЗрдЦреЗрдВред
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subsults.html#//apple_ref/doc/uid/TP40008267 -CH7-SW6
рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЛрдб рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦрд░реАрджрдирд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдФрд░ Apple рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреБрдЫ рдЕрдЬреАрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛рддреА рд╣реИрдВред

рдпрджрд┐ @JJMoon рдорд╛рдорд▓рд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рддреЛ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдкреБрдирдГ рдЦреЛрд▓реЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред @danrevah

@JMMoon рдореИрдВрдиреЗ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди? buySubscription рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рднреА рднреБрдЧрддрд╛рди рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
@ рд╣рд╛рдпреЛрдЪрди

+1 рдореИрдВрдиреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

buySubscription рднреА addAdditionalSuccessPurchaseListenerIOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ # 307 рдЬреИрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИред

buySubscription рднреА addAdditionalSuccessPurchaseListenerIOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ # 307 рдЬреИрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?

@hyochan , рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ред

if (subscription && subscription.success) {
      this.props.subscribe(subscription.result);
    } else {
      if (Platform.OS === 'ios') {
        const sub = RNIap.addAdditionalSuccessPurchaseListenerIOS(async (purchase) => {
          this.props.subscribe(purchase); // -> This code is never fired
          sub.remove();
        });
      }
    }

@cbfranca рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдЖрдк promises рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рджреЗ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ addAdditionalSuccessPurchaseListenerIOS рд╕реБрдирдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд Platform.OS === 'ios' рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@ рдпреЛрдЪрди
рдореЗрд░реА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭ рдкрд╛рдпрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдореБрдХрджрдорд╛ рдХрд░рддреЗ рд╣реБрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЙрдиреНрд╣реАрдВ рдЖрдзрд╛рд░реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдПрдХ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд╛рджреЗ рдХреЛ рдПрд╕рд┐рдВрдХреНрд╕ / рд╡реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рджрд╕реНрдпрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрд░реЗ рдЕрдореВрд░реНрдд рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

static purchaseSubscription(newSubscriptionID, currentSubscriptionID) {
    if (Platform.OS === 'ios') {
      const purchaseResult = KinvoBilling.purchaseSubscriptionIOS(newSubscriptionID);
      return purchaseResult;
    }

    const purchaseResult = KinvoBilling.purchaseSubscriptionANDROID(newSubscriptionID, currentSubscriptionID);
    return purchaseResult;
  }

  static purchaseSubscriptionANDROID = async (newSubscriptionID, currentSubscriptionID) => {
    const hasCurrentSubscription = currentSubscriptionID !== null;

    if (hasCurrentSubscription) {
      const purchaseResult = KinvoBilling.updateSubscription(newSubscriptionID, currentSubscriptionID);
      return purchaseResult;
    }
    const purchaseResult = KinvoBilling.buySubscription(newSubscriptionID);
    return purchaseResult;
  }

  static purchaseSubscriptionIOS = async (subscriptionID) => {
    await KinvoBilling.getSubscriptions();
    const purchaseResult = await KinvoBilling.buySubscription(subscriptionID);

    return purchaseResult;
}

@cbfranca
`` `
рд╕реНрдереИрддрд┐рдХ рдЦрд░реАрджрд╕рдорд╛рд░реЛрд╣ IOS = async (рдЕрдВрд╢рджрд╛рди) => {
рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдиреЛрд╡реЛрдЗрдВрдЧ.рдЧреЗрдЯрд╕рдмреНрд╕ ();
рдкреНрд░рдпрддреНрди {
const PurchaseResult = рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдХрд┐рдиреЛрд╡реНрдмрд┐рд▓рд┐рдВрдЧ.рдмрдпреВрдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди (рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди);
} рдкрдХрдбрд╝ (рдЧрд▓рддреА) {
const рд╕рджрд╕реНрдпрддрд╛ = RNIap.addAdditionalSuccessPurchaseListenerIOS (async (рдЦрд░реАрдж) => {
// dooboolab => рдпрд╣рд╛рдВ рдХреЙрд▓ рдЪреЗрдХ рдХрд░реЗрдВред
this.setState ({рд░рд╕реАрдж: рдЦрд░реАрдж.рдЯреНрд░рд╛рдВрд╕рдПрдХреНрдЯрд┐рд╡реЗрд╢рди}, () => this.goToNext ());
subscribe.remove ();
}
}
рд╡рд╛рдкрд╕реА рдЦрд░реАрдж;
}
`` ``

рдХреЛрдб рд╕реЗ рдКрдкрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@hyochan рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдиреЗрд░рд┐рдпреЛ рд╣реИ:

  • рдорд╛рд╕рд┐рдХ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рдЦрд░реАрджреЗрдВ - рдареАрдХ рд╣реИ
  • рд╡рд╛рд░реНрд╖рд┐рдХ рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ - рд╡рд┐рдлрд▓ рдФрд░ рд╢реНрд░реЛрддрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдПрдХ рдФрд░ рд╕рдВрджреЗрд╣: рдХреНрдпрд╛ рдореБрдЭреЗ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рднреА рдлрд┐рдирд┐рд╢рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?

рдореИрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЬрд╛рдирддрд╛ рд╣реВрдВред

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

^ 2.4.1

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

https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz

рдордВрдЪ

iOS, рдЬрдм рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ TestFlight рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдореЗрд░реЗ рдРрдк рдореЗрдВ рдХрд┐рд╕реА рднреА RNIap рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ iOS рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ iTunes / App Store рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ (рдЬреЛ рдореИрдВрдиреЗ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ iOS рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ)ред рдореИрдВрдиреЗ рдХрд╣реАрдВ рдСрдирд▓рд╛рдЗрди рдкрдврд╝рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ, рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЖрдИрдлреЛрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдбреЙрдЧ рдХрд░рддрд╛ рд╣реИ: рдХрднреА-рдХрднреА рдПрдХ рдРрдк рдХреЛ рдПрдХ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдЦрд░реАрджрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдлреЛрди рдХреЛ рдПрдХ рдирдП рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдЦрд╛рддреЗ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрдк рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдВрдЧрддрд╛ рд░рд╣рддрд╛ рд╣реИ рдкреБрд░рд╛рдирд╛ iTunes рдЦрд╛рддрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдРрдк (рдФрд░ TestFlight) рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдирдП рдРрдк рд╕реНрдЯреЛрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреЛрдВрдЫрдирд╛ рдерд╛ред рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдм рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ред

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

  1. рдЦрд░реАрджреЗрдВ рд╕рджрд╕реНрдпрддрд╛ ()
  2. IOS рдореЛрдбрд▓ "рд╕рджрд╕реНрдпрддрд╛ рд╢рд░реНрддреЗрдВ" рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  3. IOS рдореЛрдбрд▓ рдХреЗ "рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреА рдкреБрд╖реНрдЯрд┐" рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рд╣реЛрдиреЗ рдкрд░ рдареАрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  4. BuySubscription рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ ():
{
   code: E_UNKNOWN, 
   column: 1565, 
   domain: NSURLErrorDomain, 
   framesToPop: 1, 
   line: 20, 
   nativeStackIOS: [...],
   sourceURL: ...,
   userInfo: {
      _kCFStreamErrorCodeKey: -4, 
      _kCFStreamErrorDomainKey: 4, 
      NSErrorFailingURLKey: None, 
      NSErrorFailingURLStringKey: https://p100-sandbox.itunes.apple.com/WebObjects/MZFinance.woa/wa/inAppBuy, 
      NSLocalizedDescription: Cannot connect to iTunes Store, 
      NSUnderlyingError: {
         code: "-1005", 
         domain: "kCFErrorDomainCFNetwork", 
         message: "underlying error", 
         nativeStackIOS: [...],
         userInfo:{"NSErrorPeerAddressKey":null,"_kCFStreamErrorCodeKey":-4,"_kCFStreamErrorDomainKey":4}
      }
   }
}

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

  1. рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ
  2. рдРрдк рд╕реНрдЯреЛрд░ рд╕реЗ рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ (рдпрд╛ TestFlight рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ TestFlight рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ TestFlight рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрдк)
  3. рдРрдк рдореЗрдВ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдЦрд░реАрджреЗрдВ
  4. рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рджреЗрдВ
  5. рд▓реЙрдЧрдЖрдЙрдЯ iOS Apple ID (рд╕реЗрдЯрд┐рдВрдЧреНрд╕> Apple ID, рд╕рд╛рдЗрди рдЖрдЙрдЯ рдХрд░реЗрдВ)
  6. рдирдИ Apple рдЖрдИрдбреА рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ
  7. рдРрдк рдореЗрдВ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдЦрд░реАрджреЗрдВ

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ!

@ рдпреЛрдЪрди

рдХрдИ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рд╣реВрдВред рдХреЛрдб рдмреЙрд▓реЛ рдореЗрдВ, RNIap.buySubscription (sku) рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред рдХреГрдкрдпрд╛, рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?

`` `
рд╕реНрдереИрддрд┐рдХ рдЦрд░реАрджрд╕рдорд╛рд░реЛрд╣ IOS = async (рдЕрдВрд╢рджрд╛рди) => {
рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдиреЛрд╡реЛрдЗрдВрдЧ.рдЧреЗрдЯрд╕рдмреНрд╕ ();

try {
  const purchaseResult = await RNIap.buySubscription(subscriptionID);
  return createResponse(true, purchaseResult);
} catch (error) {
  const subscription = RNIap.addAdditionalSuccessPurchaseListenerIOS(async (purchase) => {
    // dooboolab => check the call here.
    console.tron.log('--- ERROR ----');
    console.tron.log(error);
    console.tron.log('--- PURCHASE ----');
    console.tron.log(purchase);
    const result = purchase;
    subscription.remove();
    console.tron.log(result);

    if (result) {
      return createResponse(true, result);
    }
    return createResponse(false, result);
  });
}

};
`` `

: +1: рд╣рдо рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рдЧрднрдЧ 10% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдВрддрддрдГ рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред @hyochan рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ

рд╣рдореЗрдВ 3.4.6 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ: E_UNKOWN рд╕рд╛рде рдкрд╣рд▓реА рдЦрд░реАрдж рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ buyProduct рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ buySubscription ред @hyochan рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╣реА рдореВрд▓ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рд╣реИрд▓реЛ! RNIap.requestSubscription () рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднреБрдЧрддрд╛рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рд╕реЗ рд╢реБрд▓реНрдХ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЦрд░реАрдж рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛? рдореИрдВ 3.5.9 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

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

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

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

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

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

bakedbean picture bakedbean  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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