2.2.2
(рдХреНрдпреЛрдВрдХрд┐ # 279 рдХреЗ рдХрд╛рд░рдг iOS рдкрд░ рдХреЛрдИ рднреА рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ)
рдЖрдИрдУрдПрд╕
рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЦрд░реАрджрд╛рд░реА рд╕рдлрд▓ рд░рд╣реА (рд▓рд╛рдЗрд╡ рдФрд░ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ)
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"}
рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ред рд▓рд╛рдЗрд╡ рдЧреНрд░рд╛рд╣рдХред рдмрд╣реБрдд рд╕рд╛рдордВрдЬрд╕реНрдп рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
@ рдЧреИрдпрд╛-рдкреЛрд╖рдг рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ? рдпрд╣ рдПрдХ рд╣реА рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
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) рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдирдП рдРрдк рд╕реНрдЯреЛрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреЛрдВрдЫрдирд╛ рдерд╛ред рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдм рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ред
{
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}
}
}
}
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ!
@ рдпреЛрдЪрди
рдХрдИ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рд╣реВрдВред рдХреЛрдб рдмреЙрд▓реЛ рдореЗрдВ, 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 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
: +1: рд╣рдо рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рдЧрднрдЧ 10% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдВрддрддрдГ рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред @hyochan рдХреНрдпрд╛ рдХреЛрдИ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ