
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдбреЗрдирд┐рд╕ рд╣реИ, рдореИрдВ Apphud рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ , рдЬреЛ рдХрд┐ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдСрдЯреЛ-рд░рд┐рдиреНрдпреВрдПрдмрд▓ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ iOS 12 рдФрд░ iOS 13. рдореЗрдВ рдСрдЯреЛ-рд░рд┐рдиреНрдпреВрдПрдмрд▓ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдФрд░ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдКрдВрдЧрд╛, рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЙрди рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдЬреЛ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред
рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдкрд░ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрдВрдбрд▓ рдЖрдИрдбреА рдФрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
рдЖрдкрдХреЛ Apple рдбреЗрд╡рд▓рдкрд░ рдкреЛрд░реНрдЯрд▓ рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрдВрдбрд▓ рдЖрдИрдбреА (рдРрдк рдЖрдИрдбреА) рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рдорд╛рдг рдкрддреНрд░, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдПрдХ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред рдЬреВрди 2019 рдореЗрдВ, Apple рдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ ASC (рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреЛрд░реНрдЯрд▓ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред

2019 рдореЗрдВ Apple рдбреЗрд╡рд▓рдкрд░ рдкреЛрд░реНрдЯрд▓ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди

рд╕реНрдкрд╖реНрдЯ рдмрдВрдбрд▓ рдЖрдИрдбреА рдЖрдорддреМрд░ рдкрд░ рдбреЛрдореЗрди рд╢реИрд▓реА ( com.apphud.subscriptionstest
) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддреА рд╣реИред рдХреНрд╖рдорддрд╛рдУрдВ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрди-рдРрдк рдЦрд░реАрджрд╛рд░реА рдХреЗ рдЖрдЧреЗ рд╡рд╛рд▓рд╛ рдЪреЗрдХрдорд╛рд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪреЗрдХ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реИред рдмрдВрдбрд▓ рдЖрдИрдбреА ( рдРрдк рдЖрдИрдбреА ) рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдкрд░ рдЬрд╛рдПрдВред
рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛)
рднрд╡рд┐рд╖реНрдп рдХреА рдЦрд░реАрдж рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдЯреИрдм рдореЗрдВ рдПрдПрд╕рд╕реА рдкрд░ рдЬрд╛рдПрдВ, рдлрд┐рд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЯреЗрд╕реНрдЯрд░реНрд╕ рдХреЗ рдкрд╛рд╕ред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдкрддреНрд░
рдкрд░реАрдХреНрд╖рдХ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдХрд┐рд╕реА рднреА рдЧреИрд░-рдореМрдЬреВрдж рдбреЗрдЯрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдлрд┐рд░ рдИрдореЗрд▓ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рди рднреВрд▓реЗрдВ!
рдореИрдВ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЦрд░реАрджрд╛рд░реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдПрдХ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо " рд╕рдордЭреМрддреЗ, рдХрд░реЛрдВ рдФрд░ рдмреИрдВрдХрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ " рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдиреБрдмрдВрдз рдФрд░ рдмреИрдВрдХ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреБрдмрдВрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдСрдЯреЛ-рдЕрдХреНрд╖рдп рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ!
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдкреИрдХреЗрдЬ рдЖрдИрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреА рдмрдВрдбрд▓ рдЖрдИрдбреА рдЪреБрдиреЗрдВред

рдкреИрдХреЗрдЬ рдЖрдИрдбреА рдЖрдкрдХреА рдмрдВрдбрд▓ рдЖрдИрдбреА рд╣реИ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред
рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдпрд╣рд╛рдВ рд╕реЗ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд╡рддрдГ-рдирд╡реАрдХрд░рдгреАрдп рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:
1. рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрдирд╛рдПрдБ рдФрд░ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рд╕рдореВрд╣ рдмрдирд╛рдПрдБред рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рд╕рдореВрд╣ рд╡рд┐рднрд┐рдиреНрди рдЕрд╡рдзрд┐рдпреЛрдВ рдФрд░ рдХреАрдорддреЛрдВ рдХреЗ рд╕рд╛рде рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рджрд╕реНрдпрддрд╛ рд╕рдореВрд╣ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐: рд╢реБрд▓реНрдХ рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рд╣реА рд╕рдХреНрд░рд┐рдп рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рджрд╕реНрдпрддрд╛рдПрдБ рд╣реЛрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рджреЛ рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗред
2. рд╕рджрд╕реНрдпрддрд╛ рдбреЗрдЯрд╛ рдореЗрдВ рднрд░рдирд╛: рдЕрд╡рдзрд┐, рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛрдВ) рдФрд░ рд╡рд┐рд╡рд░рдгред рдпрджрд┐ рдЖрдк рд╕рдореВрд╣ рдореЗрдВ рдкрд╣рд▓реА рд╕рджрд╕реНрдпрддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдореВрд╣ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╣реЗрдЬрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ, ASC рдХрд┐рд╕реА рднреА рдХреНрд╖рдг рдлреНрд░реАрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рджрд╕реНрдпрддрд╛ рд╕реНрдХреНрд░реАрди
3. рд╕рджрд╕реНрдпрддрд╛ рдореВрд▓реНрдп рднрд░рдирд╛ред рджреЛ рдЪрд░рдг рд╣реИрдВ: рдореВрд▓реНрдп рдФрд░ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╕реНрддрд╛рд╡ рдмрдирд╛рдирд╛ред рдХрд┐рд╕реА рднреА рдореБрджреНрд░рд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕рднреА рджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдЧрдгрдирд╛ рд╣реИред рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдСрдлрд╝рд░: рдпрд╣рд╛рдВ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рдГрд╢реБрд▓реНрдХ рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдпрд╛ рдкреНрд░реАрдкреЗрдб рдЫреВрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 2019 рдореЗрдВ рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдРрдк рд╕реНрдЯреЛрд░ рдкрд░ рдкреНрд░рдЪрд╛рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛: рд╡реЗ рдЖрдкрдХреЛ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдЫреВрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреА рд╣реИ рдФрд░ рдЖрдк рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рд╛рдЭрд╛ рдХреБрдВрдЬреА рд╕рд╛рдЭрд╛рдХрд░рдг
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реВрдЪреА рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдкрд░, рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдХреБрдВрдЬреА рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдЗрди рд╣реИ рдЬреЛ рдПрдХ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЪреЗрдХ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╛рдЭрд╛ рдХреБрдВрдЬреА рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ: рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рдпрд╛ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдХреА рдПрдХрд▓ рдХреБрдВрдЬреАред рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рддреЛ рдХреБрдВрдЬреА рдХреЛ рдлрд┐рд░ рд╕реЗ рди рдмрдирд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреЗрдХ рдХреЛ рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддреАрди рд╕рджрд╕реНрдпрддрд╛ рд╕рдореВрд╣ рдФрд░ 3 рд╡рд╛рд░реНрд╖рд┐рдХ рд╕рджрд╕реНрдпрддрд╛рдПрдБ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
рдЕрдкрдиреЗ рд╕рднреА рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рд╢реЗрдпрд░ рдХреА рдЧрдИ рдХреБрдВрдЬреА рдХреА рдЖрдИрдбреА рдХреЙрдкреА рдХрд░реЗрдВ, рдпрд╣ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛ред
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
рдЪрд▓реЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛред рдкреВрд░реНрдг рдЦрд░реАрджрд╛рд░реА рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ? рдХрдо рд╕реЗ рдХрдо, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЦрд░реАрджрд╛рд░реА рдХрд░рддреЗ рд╕рдордп
рд╕рджрд╕реНрдпрддрд╛ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдВрдЪреЗрдВ
рдЕрджреНрдпрддрди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рд▓реЗрди-рджреЗрди рдХреА рд╡рд╕реВрд▓реА (рдЪреЗрдХ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреА рдирд╣реАрдВ!)
рд╕рдВрдкреВрд░реНрдг рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ 2 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ ( SKProduct
рд╡рд░реНрдЧ) рдФрд░ рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ ( SKPayment
class)ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ SKPaymentTransactionObserver
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
IAP_PRODUCTS_DID_LOAD_NOTIFICATION
рд╕реВрдЪрдирд╛ IAP_PRODUCTS_DID_LOAD_NOTIFICATION
рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ UI рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо рдЦрд░реАрдж рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
func purchaseProduct(product : SKProduct, success: @escaping SuccessBlock, failure: @escaping FailureBlock){ guard SKPaymentQueue.canMakePayments() else { return } guard SKPaymentQueue.default().transactions.last?.transactionState != .purchasing else { return } self.successBlock = success self.failureBlock = failure let payment = SKPayment(product: product) SKPaymentQueue.default().add(payment) }
SKPaymentTransactionObserver
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
extension IAPManager: SKPaymentTransactionObserver { public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { for transaction in transactions { switch (transaction.transactionState) { case .purchased: SKPaymentQueue.default().finishTransaction(transaction) notifyIsPurchased(transaction: transaction) break case .failed: SKPaymentQueue.default().finishTransaction(transaction) print("purchase error : \(transaction.error?.localizedDescription ?? "")") self.failureBlock?(transaction.error) cleanUp() break case .restored: SKPaymentQueue.default().finishTransaction(transaction) notifyIsPurchased(transaction: transaction) break case .deferred, .purchasing: break default: break } } } private func notifyIsPurchased(transaction: SKPaymentTransaction) { refreshSubscriptionsStatus(callback: { self.successBlock?() self.cleanUp() }) { (error) in
рд╕рдлрд▓ рд╕рджрд╕реНрдпрддрд╛ рдкрд░, рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкрджреНрдзрддрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ purchased
ред
рд▓реЗрдХрд┐рди рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Apple рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред
рд╕рджрд╕реНрдпрддрд╛ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдВрдЪреЗрдВ
рдЪреЗрдХ Apple рдХреЛ verifyReceipt
POST рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЪреЗрдХ рдХреЛ рдПрдХ рдЖрдзрд╛рд░ 64-рдПрдиреНрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рдореЗрдВ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдЪреЗрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ, рдореБрдЦреНрдп latest_receipt_info
рдЯреНрд░рд╛рдпрд▓ рдЕрд╡рдзрд┐ рд╕рд╣рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдпрддрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рдзрд┐ рд╕реЗ рд╕рднреА рд▓реЗрдирджреЗрди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ред рд╣рдо рдХреЗрд╡рд▓ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
WWDC 2017 рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ verifyReceipt
рдЕрдиреБрд░реЛрдз рдореЗрдВ exclude-old-transactions
рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдЪреЗрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ред
func refreshSubscriptionsStatus(callback : @escaping SuccessBlock, failure : @escaping FailureBlock){
рд╡рд┐рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪреЗрдХ рдХреА рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд╣реИред рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪреЗрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрд╡реЗрджрди рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдХреЛрдИ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо verifyReceipt
рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рдиреАрдп рдЪреЗрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред SKReceiptRefreshRequest
рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
private func refreshReceipt(){ let request = SKReceiptRefreshRequest(receiptProperties: nil) request.delegate = self request.start() } func requestDidFinish(_ request: SKRequest) {
refreshReceipt()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЪреЗрдХ рдЕрдкрдбреЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЪреЗрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рдзрд┐ requestDidFinish(_ request : SKRequest)
рдХрд╣рд▓рд╛рддреА рд╣реИ, рдЬреЛ refreshSubscriptionsStatus
рд╡рд┐рдзрд┐ рдХреЛ refreshSubscriptionsStatus
рдХреЙрд▓ рдХрд░рддреА рд╣реИред
рдЦрд░реАрдж рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд╣рдореЗрдВ рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд╛ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгреА рд╣реЛрддрд╛ рд╣реИ ( latest_receipt_info
рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛)ред рд╣рдо рдПрд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, expires_date
рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рддрд╛рд░реАрдЦ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЖрдИ рд╣реИред
private func parseReceipt(_ json : Dictionary<String, Any>) {
рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдХрд┐ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реА рдЬрд╛рдПред рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦрд░реАрдж рдХреА рд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реИ ( рд░рджреНрдж рдХрд░рдиреЗ рдХреА рддрд╛рд░реАрдЦ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ)ред
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рд╕рджрд╕реНрдпрддрд╛ рд╕рдХреНрд░рд┐рдп рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдмрд╕ рдЙрддреНрдкрд╛рдж рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрдореА рд╕реЗ рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ рдпрд╛ рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
func expirationDateFor(_ identifier : String) -> Date?{ return UserDefaults.standard.object(forKey: identifier) as? Date } let subscriptionDate = IAPManager.shared.expirationDateFor("YOUR_PRODUCT_ID") ?? Date() let isActive = subscriptionDate > Date()
рд▓реЗрди-рджреЗрди рдХреА рд╡рд╕реВрд▓реА рдПрдХрд▓ рдкрдВрдХреНрддрд┐ SKPaymentQueue.default().restoreCompletedTransactions()
ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкрджреНрдзрддрд┐ func paymentQueue(**_** queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рднреА рдкреВрд░реНрдг рдХрд┐рдП рдЧрдП рд▓реЗрдирджреЗрди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ func paymentQueue(**_** queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
ред
рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рди рд░рд┐рдХрд╡рд░реА рд╕реЗ рдЪреЗрдХ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЖрдкрдХреЗ рдЦрд░реАрдж рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ? Wwdc рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрджреНрднреБрдд рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:

WWDC рд╕реЗ рдЦрд░реАрдж рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЛрдВ рдХреА рдЕрдВрддрд░ рддрд╛рд▓рд┐рдХрд╛
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдмрд╕ SKReceiptRefreshRequest()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рд╕реНрд╡рддрдГ-рдирд╡реАрдХрд░рдгреАрдп рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрди-рджреЗрди рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдЪреЗрдХ рдЕрдкрдбреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рд▓реЗрдирджреЗрди рд╡рд╕реВрд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦрд░реАрдж рдкрд░ рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (Apple рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА) рдпрд╛ рдпрджрд┐ рдЖрдк рдЕрднреА рднреА iOS 7 рд╕реЗ рдиреАрдЪреЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рдЦрд░реАрджрд╛рд░реА рдкрд░реАрдХреНрд╖рдг (рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкрд░реАрдХреНрд╖рдг)
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЦрд░реАрдж рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ iPhone рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдРрдк рд╕реНрдЯреЛрд░ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдкреВрд░реНрдг рдРрдкреНрдкрд▓ рдореНрдпреВрдЬрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдпрд╣ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдЦрд╛рддрд╛ рдЕрдм рдореБрдЦреНрдп рдЦрд╛рддреЗ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдореМрдЬреВрдж рд╣реИред

рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦрд░реАрдж рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВ:
рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдореЗрд╢рд╛ рд▓реЙрдЧрд┐рди рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЯрдЪ рдЖрдИрдбреА / рдлреЗрд╕ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЦрд░реАрдж рдЕрднреА рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред
рдпрджрд┐, рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдкрд░, рд╕рд┐рд╕реНрдЯрдо рдмрд╛рд░-рдмрд╛рд░ рд▓реЙрдЧрд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдкреВрдЫрддрд╛ рд╣реИ, рддреЛ "рд░рджреНрдж рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ , рдЖрд╡реЗрджрди рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ рдмрдХрд╡рд╛рд╕ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рджреВрд╕рд░реЗ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рдмрд╛рдж рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИред
рдЖрдк рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рд╕рджрд╕реНрдпрддрд╛ рдЕрд╡рдзрд┐ рдХреА рдЕрд╡рдзрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред рдФрд░ рдЙрдиреНрд╣реЗрдВ рджрд┐рди рдореЗрдВ 6 рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
IOS 13 рдореЗрдВ StoreKit рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?
рдирдП рдореЗрдВ рд╕реЗ - рдХреЗрд╡рд▓ SKStorefront
рд╡рд░реНрдЧ, рдЬреЛ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рджреЗрд╢ рдореЗрдВ рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИред рдпрд╣ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рд╣рд░ рдХреЛрдИ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдЯреАрдХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рдерд╛ред рдЕрдм рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рджреЗрд╢ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ: SKPaymentQueue.default().storefront?.countryCode
рдЕрдЧрд░ рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рджреЗрд╢ рдмрджрд▓ рдЧрдпрд╛ рддреЛ рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдиреБрдХрд╕рд╛рди
- рдРрдкреНрдкрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕реАрдзреЗ рдЪреЗрдХ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ WWDC (5:50 рд╕реЗ) рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдФрд░ рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдПрдХ рдордзреНрдп-рдордзреНрдп рд╣рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪреЗрдХ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдорд╛рдиреНрдпрддрд╛ рд╣реИ рдпрд╛ рддреЛ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
- рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдордп рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ - рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдЯреАрдХ рд╡рд┐рд╢реНрд╡ рд╕рдордп рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред
- рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдирд┐: рд╢реБрд▓реНрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЪреЗрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдЙрд╕реЗ рдорд╛рдиреНрдп рдХрд░рдирд╛ рдФрд░ JSON рдореЗрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ред рдХрдИ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдзрдирд╡рд╛рдкрд╕реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ JSON рдХреЛ
cancellation_date
рдХрд░ cancellation_date
рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди expires_date
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, cancellation_date
expires_date
рдлрд╝реАрд▓реНрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреЛ рдХрд┐ expires_date
рд╕реЗ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред - рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЪреЗрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╡реНрдпрд░реНрде рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдРрдкреНрдкрд▓ рдЖрдИрдбреА рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреЗрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЦрд░реАрджрд╛рд░реА рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИред
- рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреИрд╕реЗ рдХрд░реЗрдВ рдХрд┐ рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдмрд┐рдВрджреБ рд╣реИрдВ? рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╛ рдХреЗрд╡рд▓ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪреЗрдХ рдХреЛ рдорд╛рдиреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪреЗрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрд┐рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдзрдирд╡рд╛рдкрд╕реА рдЬрд╛рд░реА рдХреА рд╣реИ, рд╡рд╣ рдЕрд╡рдзрд┐ рдХреЗ рдЕрдВрдд рддрдХ рдореБрдлреНрдд рдореЗрдВ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рди рдХреЗрд╡рд▓ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдмрд▓реНрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБрдУрдВ рдХреЛ рднреА рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдкреВрд░реА рдХреНрд▓рд╛рд╕ рдХрд╛ рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╣ рд╡рд░реНрдЧ рдиреМрд╕рд┐рдЦрд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓рд╛рдЗрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SwiftyStoreKit ред
10 рдорд┐рдирдЯ рдореЗрдВ рдЕрдкрдиреЗ iOS рдРрдк рдореЗрдВ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? Apphud рдФрд░ рдПрдХреАрдХреГрдд рдХрд░реЗрдВ:
- рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд░реАрджрд╛рд░реА рдХрд░реЗрдВ;
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ;
- рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдВ
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рдореБрджреНрд░рд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдПрдореНрдкреНрд▓рд┐рдЯреНрдпреВрдб, рдорд┐рдХреНрд╕рдкреИрдирд▓, рд╕реНрд▓реИрдХ рдФрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЛ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рднреЗрдЬреЗрдВ;
- рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдордВрдерди рджрд░ рдШрдЯрд╛рдПрдВ рдФрд░ рдмрд┐рдирд╛ рд╕рджрд╕реНрдпрддрд╛ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рдПрдВред