
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдвреЗрд░ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдЬреАрд╡рди рдореЗрдВ, рдПрдХ рд╕рдордп рдЖрддрд╛ рд╣реИ рдЬрдм рдЗрд╕ рдвреЗрд░ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
IOS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдРрдкреНрдкрд▓ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред
- рдкрд╣рд▓реЗ рд╕реЗ рдПрдХрддреНрд░ рдХреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред
рджреВрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирддреЗ рд╕рдордп, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░-рд╕реЗ-рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CI / CD рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, Apple рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдХреНрд╕рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрддрд┐рдо рдЙрддреНрдкрд╛рдж рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рддреБрдЪреНрдЫ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, рдпрд╣ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдФрд░ рдмреЗрд╣рдж рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рдерд╛, Apple рд╕реЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдмрд╛рдЗрдирд░реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ WWDC 2019 рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк XCFramework рд╣реИред
XCFramework рд╕реНрдерд╛рдкрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдкрд░ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:
- рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдПрдХрд▓ рдмрдВрдбрд▓ рдореЗрдВ рд╕рднреА рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧред
- XCFramework рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдмрдВрдбрд▓, рд╕рднреА рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВред
- рд╡рд╕рд╛ / рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдврд╛рдВрдЪреЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- AppStore рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ x86_64 рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдирдпрд╛ рдкреНрд░рд╛рд░реВрдк рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИред
Apple рдиреЗ рдкрд╣рд▓реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛ред
рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рдкреАрдПрдо рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореИрдВ рд╕реНрд╡рд┐рдлреНрдЯ рдкреАрдПрдо рдХреЗ рджреЛ рдкрд╣рд▓реБрдУрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
- рд╕реНрдкрд╖реНрдЯ рдорд╛рдЗрдирд╕ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛рд░рдг рд╕реЗ, рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХреНрд░реЗрддрд╛ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдирд╣реАрдВ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
- рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд▓рд╕ - рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рддрд╛ рд╣реИред
XCFramework Apple рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реБрдПред
рдпрд╣ рдкреНрд░рд╛рд░реВрдк, рд╕рд╛рде рд╣реА XCFramework рдореЗрдВ рдЗрдХрдЯреНрдареЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, Xcode 11 рдФрд░ рдЗрд╕рдХреЗ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИред
XCFramework рдХреНрдпрд╛ рд╣реИ
рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, XCFramework рдЕрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдФрд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╣реИред
рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдпрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрдкрдиреА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реА / рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рд▓рд┐рдЦрд╛ рд╣реИред
рдкреНрд░рд╛рд░реВрдк рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдПрдХрд▓ рдмрдВрдбрд▓ рдореЗрдВ рд╕рднреА рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧ
рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрд╕реЗрдВрдмрд▓реА рдЕрдм рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓ рдореЗрдВ рдкреИрдХ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдордп, рдЖрдкрдХреЛ Xcode 11 рдХреЗ рд▓рд┐рдП рдирдП -create-xcframework
рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде xcodebuild
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЖрдЧреЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
XCFramework рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдмрдВрдбрд▓, рд╕рднреА рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ
рдЪреВрдВрдХрд┐ рдмрдВрдбрд▓ .xcframework рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рд▓рдХреНрд╖реНрдп рдордВрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
Xcode 11 рдореЗрдВ, .xxframework рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рдирд┐рдпрдорд┐рдд .framework рдХреА рддрд░рд╣ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓рдХреНрд╖реНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- "ред рд╕рд╛рдорд╛рдиреНрдп" рдЯреИрдм рдХреЗ "рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ .xcframework рдЬреЛрдбрд╝рдирд╛
- "рдмрдирд╛рдПрдБ рдЪрд░рдгреЛрдВ" рдЯреИрдм рдкрд░ .xcframework рдХреЛ "рд▓рд┐рдВрдХ рдмрд╛рдЗрдирд░реА рд╡рд┐рдж рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝" рдЬреЛрдбрд╝рдирд╛
рд╡рд╕рд╛ / рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдврд╛рдВрдЪреЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ
рдкрд╣рд▓реЗ, рдПрдХ рдкреНрд▓рдЧ-рдЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдХрдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд рд╡рд╕рд╛ рдпрд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдпрд╣ lipo
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдХрдЯреНрдареЗ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдПрдХ рдПрдХрд▓ рдореЛрдЯреА рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕реАрд╡реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ:
AppStore рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ x86_64 рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдЖрдк AppStore рдореЗрдВ x86_64 рд╕реНрд▓рд╛рдЗрд╕ рд╡рд╛рд▓реА рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рддреНрд░реБрдЯрд┐ ITMS-90087 рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
XCFramework рдмрдирд╛рдирд╛ рдФрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ: рд╕рд┐рджреНрдзрд╛рдВрдд
рдкрд╣рд▓реЗ рдмрддрд╛рдИ рдЧрдИ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ , рдХрдИ рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ XCFramework рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддреИрдпрд╛рд░реА
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрди рд╕рднреА рд▓рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЬреЛ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдЖрдкрдХреЛ Xcode 11 рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рдг рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирдИ рдмрд┐рд▓реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓рд┐рдВрдЧ рдХрдорд╛рдВрдб рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ "XCFrameworkExample-iOS" рдФрд░ "XCFramework-macOS"ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджреЛ рд▓рдХреНрд╖реНрдп рд╣реИрдВ рдЬреЛ рдЖрдИрдУрдПрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред

рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, iOS рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рдПрдВрдб рдбрд┐рд╡рд╛рдЗрд╕ (ARM) рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (x86_64) рдХреЗ рд▓рд┐рдПред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдореЗрдВ 3 рд░реВрдкрд░реЗрдЦрд╛рдПрдБ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк xcodebuild
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдирддреАрдЬрддрди, рд╣рдореЗрдВ 3 рдЗрдХрдЯреНрдареЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдорд┐рд▓реЗ, рдЬрд┐рд╕реЗ рд╣рдо .xcframework рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрдЧреЗ рдкреИрдХ рдХрд░реЗрдВрдЧреЗред
рдкреИрдХрд┐рдВрдЧ рдЗрдХрдЯреНрдареА рд╣реБрдИ
рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
xcodebuild -create-xcframework \ -framework "./build/ios.xcarchive/Products/Library/Frameworks/XCFrameworkExample.framework" \ -framework "./build/ios_sim.xcarchive/Products/Library/Frameworks/XCFrameworkExample.framework" \ -framework "./build/macos.xcarchive/Products/Library/Frameworks/XCFrameworkExample.framework" \ -output "./build/XCFrameworkExample.xcframework"
рд╡рд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ -framework
рдкреИрд░рд╛рдореАрдЯрд░ -framework
рдЬреЛ рд╕рднреА .framework рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк .xcframework рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рднрд╡рд┐рд╖реНрдп рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ XCFramework рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдЯреАрдПрд▓; рдбреАрдЖрд░: рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЧрд┐рддреБрдм рдкрд░ рднрдВрдбрд╛рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рджреЛ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛: рдЖрдИрдУрдПрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ред
рд╣рдо рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ: рджреЛ рдпреЛрдЬрдирд╛рдПрдВ рдФрд░ iOS рдФрд░ macOS рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рдХреНрд╖реНрдпред
рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ String?
рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ String?
( Optional where Wrapped == String
), рдПрдХ рд╣реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рдеред
рд╣рдо рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ isNilOrEmpty
рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА isNilOrEmpty
рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╣рдореЗрдВ isNilOrEmpty
рдХрд┐ String?
рдЕрдВрджрд░ рдХрдм рд╣реИ String?
рд▓рд╛рдкрддрд╛ рдорд╛рди рдпрд╛ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рд╣реИред
рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
public extension Optional where Wrapped == String { var isNilOrEmpty: Bool { if case let .some(string) = self { return string.isEmpty } return true } }
рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрдкрдХреА рдкрд╕рдВрдж рдХреЗ рджреЛ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП "рдлреНрд░реЗрдорд╡рд░реНрдХ" рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЖрдИрдУрдПрд╕ рдпрд╛ рдореИрдХрдУрдПрд╕ред
рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдо "рдлрд╝рд╛рдЗрд▓" => "рдирдпрд╛" => "рдкреНрд░реЛрдЬреЗрдХреНрдЯ", рдпрд╛ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ keyboard + + N (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Xcode рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛, рд╕рдВрд╡рд╛рдж рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, рдЗрдЪреНрдЫрд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (iOS рдпрд╛ macOS) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ "рдЕрдЧрд▓рд╛" рдмрдЯрди рдкрд░ рдЬрд╛рдПрдВред
рдЕрдЧрд▓реА рд╕реНрдХреНрд░реАрди рдкрд░, рд╣рдореЗрдВ "рдЙрддреНрдкрд╛рдж рдХрд╛ рдирд╛рдо" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ "рдЖрдзрд╛рд░" рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдпрд╣ "XCFrameworkExample" рд╣реИред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рд▓рдХреНрд╖реНрдп рдХреЗ рдирд╛рдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрдзрд╛рд░ рдирд╛рдо рдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реВрдЪреАрдмрджреНрдз рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдк "рдлреНрд░реЗрдорд╡рд░реНрдХ" рдХрд╛ рдПрдХ рдФрд░ рдЯрд╛рд░рдЧреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХреЗрд╡рд▓ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдиреВ рдЖрдЗрдЯрдо "рдлрд╝рд╛рдЗрд▓" => "рдирдпрд╛" => "рд▓рдХреНрд╖реНрдп" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рджреЛ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдПрдХ рдФрд░ (рдкреИрд░рд╛ 1 рдореЗрдВ рдЪрдпрдирд┐рдд рдПрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖) рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ "рдлреНрд░реЗрдорд╡рд░реНрдХ" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
"рдЙрддреНрдкрд╛рдж рдХрд╛ рдирд╛рдо" рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП, рд╣рдо рддреБрд░рдВрдд рдордВрдЪ рдХреЗ рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо macOS рд╣реИ, рддреЛ рдирд╛рдо "XCFrameworkExample-macOS" (% base_name% -% рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо%) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдЙрдиреНрд╣реЗрдВ рднреЗрдж рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдФрд░ рдЪрд╛рд░реНрдЯ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдЙрдирд╕реЗ рдЬреБрдбрд╝реЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдирд╛рдо рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
- ┬лXCFrameworkExample-рдЖрдИрдУрдПрд╕┬╗
- ┬лXCFrameworkExample-MacOS┬╗
рдЕрдЧрд▓рд╛, String?
рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ String?
"Optional.swift" рдирд╛рдо рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ .swift рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред
рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдордиреЗ Optional
рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рд▓ рджрд┐рдпрд╛ред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВред

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рд╕реЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XCFramework рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕реЗ .xcframework рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ bash рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдЖрдИ / рд╕реАрдбреА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрджрд╕реВрд░рдд рд╕рд░рд▓ рд▓рдЧрддреА рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рддрд╛ рд╣реИ:
.Xcframework рд╕рд╛рдордЧреНрд░реА
рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдмрдВрдбрд▓ .xcframework рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдо рдЗрд╕ рдмрдВрдбрд▓ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ .framework, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВрдЧреЗ:

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ .xcframework рдЕрдВрджрд░ .framework рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓рд┐рдпрд╛рдБ рд╣реИрдВ, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджреНрд╡рд╛рд░рд╛ рдЯреВрдЯ рдЧрдИ рд╣реИрдВред рдмрдВрдбрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .xcframework, рдЕрдВрджрд░ рдПрдХ Info.plist рдлрд╝рд╛рдЗрд▓ рд╣реИред
Info.plist рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рд╣реИ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>AvailableLibraries</key> <array> <dict> <key>LibraryIdentifier</key> <string>ios-arm64</string> <key>LibraryPath</key> <string>XCFrameworkExample.framework</string> <key>SupportedArchitectures</key> <array> <string>arm64</string> </array> <key>SupportedPlatform</key> <string>ios</string> </dict> <dict> <key>LibraryIdentifier</key> <string>ios-x86_64-simulator</string> <key>LibraryPath</key> <string>XCFrameworkExample.framework</string> <key>SupportedArchitectures</key> <array> <string>x86_64</string> </array> <key>SupportedPlatform</key> <string>ios</string> <key>SupportedPlatformVariant</key> <string>simulator</string> </dict> <dict> <key>LibraryIdentifier</key> <string>macos-x86_64</string> <key>LibraryPath</key> <string>XCFrameworkExample.framework</string> <key>SupportedArchitectures</key> <array> <string>x86_64</string> </array> <key>SupportedPlatform</key> <string>macos</string> </dict> </array> <key>CFBundlePackageType</key> <string>XFWK</string> <key>XCFrameworkFormatVersion</key> <string>1.0</string> </dict> </plist>
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "CFBundlePackageType" рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП .framework рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╡рд┐рдкрд░реАрдд, рдирдпрд╛ рдорд╛рди "XFWK" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ "FMWK"ред
рдкрд░рд┐рдгрд╛рдо
рддреЛ, XCFramework рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк .framework рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреНрд░рд╛рд░реВрдк рдЖрдкрдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡рд╕рд╛ / рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдирд┐рд╣рд┐рдд рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рд╕рдордп, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ XCFramework рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╣реИ - рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди, рдЬрд┐рд╕реЗ Apple рдиреЗ XCFramework рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рд┐рдлреНрдЯ рдкреАрдПрдо, рдХрд╛рд░реНрдереЗрдЬ, рдХреЛрдХреЛрдЖрдкреЛрдбреНрд╕ рдФрд░ рдЕрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдЙрдирдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рдЖрджрддрди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирдП рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдХреЛрдХреЛрдЖрдкреЙрдбреНрд╕ рдФрд░ рдХрд╛рд░реНрдереЗрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерди рдЬрд╛рд░реА рд╣реИред