
рдирдП рджрд╛рдВрд╡ рдпрд╣рд╛рдВ рд╣реИрдВ рдФрд░ рдпреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреА рд╣реИрдВред
рддреАрд╡реНрд░
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд╡реАрдирддрдо Xcode рдмреАрдЯрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрд╡рд┐рдлреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
Apple Swift version 5.0 (swiftlang-1001.0.45.7 clang-1001.0.37.7) Target: x86_64-apple-darwin18.2.0 ABI version: 0.6
рдЖрдЗрдП рд╕рдмрд╕реЗ рд░реЛрдорд╛рдВрдЪрдХ рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ:
рд╕реНрд╡рд┐рдлреНрдЯ рдРрдкреНрд╕ рдореЗрдВ рдЕрдм рд╕реНрд╡рд┐рдлреНрдЯ рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдбрд╛рдпрдиреЗрдорд┐рдХрд▓реА рд▓рд┐рдВрдХреНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдИрдУрдПрд╕ 12.2, рд╡реЙрдЪрдУрдПрд╕ 5.2 рдФрд░ рдЯреАрд╡реАрдУрдПрд╕ 12.2 рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ рдПрд╕рдбреАрдХреЗ рдУрд╡рд░рд▓реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдирддреАрдЬрддрди, рд╕реНрд╡рд┐рдлреНрдЯ рдРрдкреНрд╕ рдЫреЛрдЯреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЯреЗрд╕реНрдЯрдлрд▓рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдРрдк рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкрддрд▓рд╛ рдХрд░рддреЗ рд╕рдордпред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрд╛рдЗрдирд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрдерд┐рд░рддрд╛ рдЖ рд░рд╣реА рд╣реИ! рдФрд░ рдпрд╣ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд╛рдЪрд╛рд░ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдордп рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╕рд╛рдЗрдб-рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкрд┐рдЫрд▓реЗ рд╡рд╛рджреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдгред рд╡реИрд╕реЗ рднреА, рдореИрдВ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдЬрд╛рдирддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╛рдЗрдирд░реА рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ C рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ Apple рд╡реЙрдЪ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ C рдореЗрдВ 15MB рдмрдирд╛рдо ~ 1MB рдЬреИрд╕рд╛ рдХреБрдЫ)ред рдпрджрд┐ рдЖрдк ABI рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВ:
рд╕реНрд╡рд┐рдлреНрдЯ - ABI рдбреИрд╢рдмреЛрд░реНрдб рдФрд░
рд╕реНрд╡рд┐рдлреНрдЯ ABI рд╕реНрдерд┐рд░рддрд╛ рдореИрдирд┐рдлреЗрд╕реНрдЯреЛ ред
@dynamicCallable
рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЖрдк рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рд╕рд░рд▓ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╛рдердорд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рдЕрдВрддрд░ рд╣реИред (
рдПрд╕рдИ -0216 )
рдЙрджрд╛рд╣рд░рдг:
@dynamicCallable struct ToyCallable { func dynamicallyCall(withArguments: [Int]) {} func dynamicallyCall(withKeywordArguments: KeyValuePairs<String, Int>) {} } let x = ToyCallable() x(1, 2, 3) // Desugars to `x.dynamicallyCall(withArguments: [1, 2, 3])` x(label: 1, 2) // Desugars to `x.dynamicallyCall(withKeywordArguments: ["label": 1, "": 2])
рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╡рд┐рд╖рдп рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдлреАрдЪрд░ рдХреЛ рд▓реЗрдХрд░ рдореЗрд░реА рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рддреЛ, рдкреЙрд▓ рд╣рдбрд╕рди рдХреЗ
"рд╕реНрд╡рд┐рдлреНрдЯ 5.0 рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ" рдкреЛрд╕реНрдЯ рдХреЛ рдкрдврд╝реЗрдВ рдпрджрд┐ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖ рд░рд╣рд╛ рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ 3 рдореЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред -swift-version
рдлреНрд▓реИрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдорд╛рди 4, 4.2 рдФрд░ 5 рд╣реИрдВред
рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╕реНрд╡рд┐рдлреНрдЯ 3 рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рд╕рдВрдЧрддрддрд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реНрд╡рд┐рдлреНрдЯ 5 рд░реЛрдбрдореИрдк рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд┐рдд рдФрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдореЗрдореЛрд░реА рдХреЛ
"рд╕реНрд╡рд┐рдлреНрдЯ 5.0 рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ 5 рд▓рдЧрднрдЧ рдпрд╣рд╛рдБ рд╣реИред рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдУред
рд╕реНрд╡рд┐рдлреНрдЯ 5 рдореЛрдб рдореЗрдВ, рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдореЗрдВ рдШреЛрд╖рд┐рдд рдПрдиреНрдпреБрдорд░реЗрд╢рдВрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдпрд╛ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдЖрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдРрд╕реЗ рдорд╛рдорд▓реЗ рдЬрд┐рдиреНрд╣реЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рдЬреА рддреМрд░ рдкрд░ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп-рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, Objective-C рдХрд┐рд╕реА рднреА рдорд╛рди рдХреЛ рд╕рдВрдЪрдп рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡рд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред
рдЗрди рдЕрдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рдирдП @unknown default
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдХрд┐рд╕реА рднреА рдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп default
рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЧрдгрдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк NS_CLOSED_ENUM
рдмрдЬрд╛рдп NS_CLOSED_ENUM
рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ 4 рдФрд░ 4.2 рдореЛрдб рдореЗрдВ, рдЖрдк рдЕрднреА рднреА @unknown default
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдорд╛рди рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯреНрд░реИрдк рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ Xcode 10.1 рдореЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ 4.2 рд╣реИред ( SE-0192 )
рдпрд╣ рдерд╛, рдФрд░ рдПрдХ рджрд░реНрдж рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЖрдк рд╕реНрд╡рд┐рдЪ рдХреЗ рднреАрддрд░
рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐
UNAuthorizationOptions
12 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП
UNAuthorizationOptions
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдирдП
.provisional
рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдмрджрд╕реВрд░рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, рдЕрдм рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░
рдкреИрдХреЗрдЬ рдЕрдм рд╕реНрд╡рд┐рдлреНрдЯ 5 Package.swift рдЯреВрд▓-рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп Apple рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рдХреНрд╖реНрдп рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдпрджрд┐ рдкреИрдХреЗрдЬ рдХреА рдХреЛрдИ рднреА рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛ рдиреНрдпреВрдирддрдо рдкреИрдХреЗрдЬ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рдХреНрд╖реНрдп рд╕реЗ рдЕрдзрд┐рдХ рдиреНрдпреВрдирддрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИред ( рдПрд╕рдИ -0236 )
рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдмрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрд╕рдкреАрдПрдо рдХреЛ рдЖрдИрдУрдПрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ "
рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг " рдореИрдВрдиреЗ рдЖрдИрдУрдПрд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрд╕рдкреАрдПрдо рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдФрд░ рдЕрдм рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдХреБрдЫ рдмреБрд░реЗ рдореБрджреНрджреЗ рднреА рд╣реИрдВ:
рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рд░рд┐рд▓реАрдЬ рд╕реЗ рд╕рдВрдХрд▓рди рд╕рдордп рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;
рд╕реНрд╡рд┐рдлреНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ "рдбрд╛рдЗрд▓реНрдб: рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдбреЗрдб рдирд╣реАрдВ" рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдкрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмрд┐рд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ
SWIFT_FORCE_STATIC_LINK_STDLIB=YES
рд╕реНрд╡рд┐рдлреНрдЯ 5 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд
рдЪреИрдВрдЬ рдореЗрдВ рдХрдИ рдореБрджреНрджреЛрдВ рдФрд░ рд╕рд╛рде рд╣реА рдЕрдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ рдЬреЛ рдЖрдк рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡реЗрд░рд┐рдПрдбрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЗрдирд╣реЗрд░рд┐рдЯ рдХреА рдЧрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢реБрд░реБрдЖрддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдХрдХреНрд╖рд╛рдУрдВ рдФрд░
@objc
рдЬреБрдбрд╝реА рдЬрдЯрд┐рд▓ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЧрддрд┐рд░реЛрдз рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдереЗ, рдпрд╛ рдЖрдк рдПрдХ
@objc
рд╡рд┐рдзрд┐ рдХреЗ рднреАрддрд░ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдо рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рд╣реИрдВред
Apple Clang Compiler
Apple Clang Compiler рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реА рдирдИ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╣реИрдВред рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
рдПрдХ рдирдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реЗрдбрд░ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдЬреЛ рдЙрджреНрдзрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╢реИрд▓реА рдХреЗ рдмрдЬрд╛рдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЪреЗрддрд╛рд╡рдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рдХреЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -Wquoted-include-in-framework-header
рдХреЛ -Wquoted-include-in-framework-header
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЗрдбрд░ рдЧрд▓рддреА рд╕реЗ #import
рдпрд╛ #include
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдирд┐рдЬреА рд╣реЗрдбрд░, рдЬреЛ рд▓реЗрдпрд░рд┐рдВрдЧ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдореЙрдбреНрдпреВрд▓ рдЪрдХреНрд░реЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдирд┐рджрд╛рди рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ -Wframework-include-private-from-public
рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдСрдл рд╣реИ рдФрд░ рдЗрд╕реЗ -Wframework-include-private-from-public
рдзреНрд╡рдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реЗрдбрд░ рдореЗрдВ @import
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЗрдбрд░ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк - fmodules
рдзреНрд╡рдЬ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ @import
рд╣реЗрдбрд░ рдореЗрдВ @import
рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдмрдВрдж рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реИ рдФрд░ - Watimport-in-framework-header
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
рдкрд╣рд▓реЗ, framework
рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп framework
рдХреАрд╡рд░реНрдб рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╕рдВрдХрд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдПрдХ рдирдпрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ, - Wincomplete-framework-module-declaration
, рдФрд░ рдПрдХ рдирдпрд╛ рдлрд┐рдХреНрд╕-рдпрд╣ рдЙрдкрдпреБрдХреНрдд рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдЬрдм рдЖрдк -fmodules
рдзреНрд╡рдЬ рдХреЛ -fmodules
рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддреА рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ: рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП
рд╕реЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрдЯреЛ,
"рдПрдкреНрдкрд▓ рдХреНрд▓реИрдВрдЧ - рдХрд╕реНрдЯрдо рдХрдВрдкрд╛рдЗрд▓рд░ рдлреНрд▓реИрдЧ" рдвреВрдВрдвреЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдзреНрд╡рдЬ рдХреЛ
"рдЕрдиреНрдп рд╕реА рдлреНрд▓реИрдЧ" рдореЗрдВ рдбрд╛рд▓реЗрдВред

рдореИрдВрдиреЗ рдПрдХ рдкреБрд░рд╛рдиреА, тАЛтАЛрдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд╕реА-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдврд╛рдВрдЪреЗ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рдирд┐рдЬреА рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЗ рдкрд╛рдП:

рдФрд░ рдЪреМрдЦрдЯреЗ рдХреЗ рднреАрддрд░ рджреЛрд╣рд░реЗ-рдЙрджреНрдзреГрдд рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореБрджреНрджреЗ:

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдЕрдкрдиреЗ рдмреИрдХрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░реЗрдВред рдПрдХ рджрд┐рди, рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЖрдкрдХреЛ рдЕрд╕рд▓реА рд╕рд┐рд░рджрд░реНрдж рд╣реЛрдЧрд╛ред
рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдВ
рдПрдХ рдЕрдЪреНрдЫрд╛, рдирдпрд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдлреАрдЪрд░ рднреА рд╣реИ:
рдЕрдиреБрдорд╛рдирд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЕрдм рд▓рд┐рдВрдХреНрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд▓рд┐рдВрдХрд░ рдлреНрд▓реИрдЧ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЦреЛрдЬрдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ -framework
, -weak_framework
, -reexport_framework
, -lazy_framework
, -weak-l,
-reexport-l
, -lazy-l
, рдФрд░ -l
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ
.xcconfig
рдпрд╛
xcodebuild
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрди
xcodebuild
рд╕реЗ рдмрдЪреЗрдВ /
Xcode рдХреЗ рднреАрддрд░ рдЪрд░рдгрдмрджреНрдз рдПрдореНрдмреЗрдб рдХрд░реЗрдВред
рдбрд┐рдмрдЧрд┐рдВрдЧ
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдорд┐рд▓реА рд╣реИрдВ:
UIStackView рдЧреБрдг рдЕрдм рджреГрд╢реНрдп рдбрд┐рдмрдЧрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ;
рдбреАрдмрдЧрд░ рд╡реНрдпреВ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ 3D рд▓реЗрдЖрдЙрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

Xcode рдЕрдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореЗрдореЛрд░реА рдЧреНрд░рд╛рдл рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рд╕рдВрд╕рд╛рдзрди рдЕрдкрд╡рд╛рдж рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдореЗрдореЛрд░реА рдЧреНрд░рд╛рдл рдХреИрдкреНрдЪрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреАрдо рдХреА рд░рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ;
IOS рдФрд░ watchOS рдкрд░, Xcode рдореЗрдореЛрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдРрдк рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд▓рд┐рдорд┐рдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд▓рд┐рдорд┐рдЯ рдХреЛ рдЕрдкреНрд░реЛрдЪ рдХрд░рддреЗ рд╣реИрдВ;

рд▓рд╛рд▓ рд░реЗрдЦрд╛ рджреЗрдЦреЗрдВ? рд╡реЙрдЪрдбреЙрдЧ рднреЗрдЬрддрд╛ рд╣реИ
applicationDidReceiveMemoryWarning(...)
рдореЗрдореЗрд░реАрд╡реЗрд░рд┐рдВрдЧ
applicationDidReceiveMemoryWarning(...)
рдЬрдм рдЖрдк рдХрд┐рдирд╛рд░реЗ рдкрд░ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдорд╛рдореВрд▓реА, рдЕрдЪреНрдЫрд╛ рд╕реБрдзрд╛рд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдПрд▓рдПрд▓рдбреАрдмреА рдбреАрдмрдЧрд░
рдФрд░ LLDB рдбреАрдмрдЧрд░ рдХреЛ рднреА рдХреБрдЫ рдкреНрдпрд╛рд░ рдорд┐рд▓рд╛:
рдЕрдм рдЖрдк $0, $1,
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ $0, $1,
... рдПрд▓рдПрд▓рдбреАрдмреА рдореЗрдВ рд╢реЙрд░реНрдЯрд╣реИрдВрдбреНрд╕ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдЕрдВрджрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ;
LLDB рдбрд┐рдмрдЧрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб рдЙрдкрдирд╛рдо рд╣реИ, v
, "рд╕реНрдЯреИрдХ рд╡реЗрд░рд┐рдПрдмрд▓" рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореВрд▓реНрдпрд╛рдВрдХрдирдХрд░реНрддрд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ, v
рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ p
рдпрд╛ po
рдкрд░ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
v
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ
po
рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди
рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдЕрдиреБрднрд╛рдЧ? рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди! рдЖрдЗрдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдореБрджреНрджреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд:
рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рдЕрдорд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореМрдЬреВрджрд╛ рдмреАрдЯрд╛ рдореЗрдВ рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдЪрд╛рд░ рд╣реИред
рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░
рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдиреЛрдЯреНрд╕:
рд╕рд┐рд░реА watchOS рдФрд░ iOS рд╕рд┐рдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;
MacOS рдФрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб iOS рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдкреЗрд╕реНрдЯрдмреЛрд░реНрдб рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ;
рдореБрдЭреЗ рд╡рд╛рдХрдИ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣
рдЕрдм рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╕рднреА рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдПрдХреНрд╕реЗрд╕ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдВрдЧреЗред
рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реБрдзрд╛рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рд╕реАрдЖрдИ рдФрд░ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛, рдХрдо рд╕реЗ рдХрдо, рд╣рдо рдЕрдкрдиреЗ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ "рдПрдХ рдмрд╛рд░ рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЪрд▓рд╛рдПрдВ" рдХрджрдо рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдг
xccov
рдХрдИ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрджреНрдз рдЕрднрд┐рд▓реЗрдЦ - рдПрдХ рд╕рд╛рде рдПрдХ рд╕рдордЧреНрд░ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВред рд░рд┐рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рдорд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рдЧрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕реНрд░реЛрдд рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рддреЛ рдХреБрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛;
xccov
рдЕрдм рдЕрд▓рдЧ-рдЕрд▓рдЧ Xcode рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╡рд░реЗрдЬ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ before.xccovreport
рдФрд░ after.xccovreport
рдмрд╛рдж рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ before.xccovreport
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ xccov
рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ: xccov diff тАФ json before.xccovreport after.xccovreport
;
рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рдХреНрд╖реНрдп рдЕрдм рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрди рдХрд╡рд░реЗрдЬ рдорд╛рди рд╣реИрдВ рдЬреЛ рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдкрд░ рдПрдХрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕реНрдерд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓реЗрдВ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛рдПрдВрдЧреА, рднрд▓реЗ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЛ рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдб рдХрд╡рд░реЗрдЬ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реЛред
рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд╛рдЪрд╛рд░ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрд▓рдЧред рдЕрдкрдиреА рд░рд┐рд▓реАрдЬрд╝ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЯреАрдо рдХреЛ рдмрддрд╛рдПрдВ рдФрд░ рдРрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдПрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдорд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:
рдЬрдм рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреНрд▓реЛрди рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ;
рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдВрддрд░ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдг рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ;
рдХреБрдЫ рд╣реЛрдирд╣рд╛рд░ рдмрдЧ рдлрд┐рдХреНрд╕ рднреА рд╣реИрдВ:
рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдкрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Xcode рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕рдореГрджреНрдз рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рдкрд░реАрдХреНрд╖рдг рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЙрдЧ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк xcodebuild
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ stdout
рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдмрдВрдбрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рдВрд░рдЪрд┐рдд рд▓реЙрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐ рднреА рдореМрдЬреВрдж рд╣реИред
рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдРрд╕реЗ рдореБрджреНрджреЗ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХрднреА-рдХрднреА, рдпрд╣ рдЧрд▓рдд рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рд╕рд┐рд╕реНрдЯрдо рдЕрдзрд┐рднрд╛рд░ рдХреЗ рд▓рд┐рдПред рдпрд╣ flakiness рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдПрдХрддреНрд░рд┐рдд рдХреНрд░реИрд╢ рд░рд┐рдкреЛрд░реНрдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░реЛрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕рдорд╛рдкреНрддрд┐ рдХрд╛ рдХрд╛рд░рдг рдФрд░ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдЫреЛрдбрд╝рддреА рд╣реИред
рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╕рд┐рд░реНрдл рдкреНрдпрд╛рд░
рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА Xcode рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ, Xcode рдЕрдм
macOS рд╕рд╛рдордЧреНрд░реА рдХреИрд╢рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ Xcode рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрд╢рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореБрджреНрджреЗ
рдореИрдВ рдмреАрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдзрд┐рдХрддрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдЯреВрд▓ рдХреЗ рд╕рд╛рде: рдХрд╛рд░реНрдЯрд╛рдЬ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
Could not find any available simulators for iOS
рдореИрдВрдиреЗ рдЙрдкрд▓рдмреНрдз рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдмреАрдЯрд╛ рдореЗрдВ рдХреБрдЫ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ; Xcode рд╕реЗ рдЕрдиреНрдп рд░рдирдЯрд╛рдЗрдо рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рднреА рдЕрд╕рдВрднрд╡ рд╣реИ, рдЙрдкрд▓рдмреНрдз рд╕рд┐рдореБрд▓реЗрдЯрд░ рдХреА рд╕реВрдЪреА рд╕рд┐рд░реНрдл рдЦрд╛рд▓реА рд╣реИ (рдПрдХ рд░рд╛рдбрд╛рд░ рднрд░рд╛ рд╣реБрдЖ):
$ xcrun simctl list devices --json | grep -A16 12.1 "com.apple.CoreSimulator.SimRuntime.iOS-12-1" : [ { "availability" : "(unavailable, runtime profile not found)", "state" : "Shutdown", "isAvailable" : false, "name" : "iPhone 5s", "udid" : "DDD36346-A76F-42E8-80F4-6F11E1EE4BEB", "availabilityError" : "runtime profile not found" }, { "availability" : "(unavailable, runtime profile not found)", "state" : "Shutdown", "isAvailable" : false, "name" : "iPhone 6", "udid" : "21794717-BC89-45E4-9F57-8CF9D14A87D1", "availabilityError" : "runtime profile not found" }, --
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреАрдЯрд╛ рд╣реИред рдФрд░ рдЪреИрдВрдЬ рд╡рд┐рд╢рд╛рд▓ рд╣реИред рдзреИрд░реНрдп рд░рдЦреЗрдВ рдФрд░ рдЙрдЪрд┐рдд :)
рдкреАрдПрд╕ рдХрд╛рд░реНрдереЗрдЬ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдлрд┐рдХреНрд╕ (
# 2691 ) рд╣реИред
рдареАрдХ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡реЗ рдЕрдкрдиреЗ рддрдХрдиреАрдХ-рдЛрдг рдХреЛ рдкреЙрд▓рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЛ рдЪреАрдЬреЗрдВ рдЯреВрдЯреА рд╣реИрдВ:
рдХрд╛рд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рд╡реЙрд▓реЗрдЯ рдХреЗ рднреАрддрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ;
рдЖрдк рд╕реЗрд▓реБрд▓рд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реАрдкреЗрдб рдбреЗрдЯрд╛ рдкреНрд▓рд╛рди рдЦрд░реАрджрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░
Apple рдиреНрдпреВрдЬ рдХрдирд╛рдбрд╛ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ ред рджреЗрдЦрддреЗ рд░рд╣реЛред
рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рдирдИ рдЪреАрдЬ рд╕рдлрд╛рд░реА 12.1 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдореБрджреНрджрд╛ рд╣реИред рд╕рдлрд╛рд░реА рд╕реЗ рдЙрдиреНрдирдпрди рдХреЗ рдмрд╛рдж 10.1.2:
рд╕рдлрд╛рд░реА 10.1 рд╕реЗ рд╕рдлрд╛рд░реА 12.1 рдкрд░ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдкреЗрдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди: рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
defaults delete com.apple.Safari
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде:
рдЪреЗрддрд╛рд╡рдиреА: рдКрдкрд░ рдХреА рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рд╕рдлрд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЦреЛ рджреЗрдВрдЧреЗред
рдЕрдВрддрд┐рдо рдХрдЯ
рдпрд╣ рд▓реЗрдЦ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рдирд┐рдХрд▓рд╛ред рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЦрдВрдбреЛрдВ рдкрд░ рдЕрдкрдиреЗ рд╕рднреА рд╡рд┐рдЪрд╛рд░ рджрд┐рдПред рдкреВрд░реЗ рд▓реЗрдЦ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг рдмрд╕ рд╣реИ, 'рд╕реНрд╡рд┐рдлреНрдЯ 5 рдЖ рдЧрдпрд╛ рд╣реИ!'
рдмрдиреЗ рд░рд╣реЗрдВ рдФрд░ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рд░рд╣реЗрдВ! рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред