Xcode рдХреЗ рдкрд╛рдВрдЪрд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ Xcode OS X рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛ ($ 20,
AppStore ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Xcode Service рдХрд┐рд╕реА рднреА Continuous Integration рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдХрдоред рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд▓рд╕ Xcode рдФрд░ Apple рдХреЗ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо" рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рд╣реИред рдореИрдВрдиреЗ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рд╕реАрдЖрдИ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рдФрд░ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдзреВрдореНрд░рдкрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреИрд╕реЗ рдПрдореБрд▓реЗрдЯрд░ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред

XCode Service рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдХрд╛рдо
рдмреЙрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╛рд╡
- GitHub рдпрд╛ SVN рд╕реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
- рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА, рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ Xcode рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

- рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рднреА Xcode рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг CI рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рдкрд┐рдд рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

- рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реВрдЪрдирд╛ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
Apple рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ред
рд╕реЗрдЯрдЕрдк рдореЗрдВ 30 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рд╕рдм рдХреБрдЫ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдФрд░ рдПрдХреАрдХреГрдд рд╣реИред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдмреЙрдЯ рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдФрд░ рдмрд┐рд▓реНрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд╕реБрдВрджрд░ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рд╣реИрдВред
рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реАред
рдкрд░реАрдХреНрд╖рдг рдЙрдбрд╝рд╛рди рдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЖрд░реНрдХрд╛рдЗрд╡ рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдЗрд╕ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╢рди рдХреА рддрд░рд╣ рдХреБрдЫ рдЬреЛрдбрд╝реЗрдВ
curl http://testflightapp.com/api/builds.json -F file=${BUILD_ROOT}/Debug-iphoneos/${FULL_PRODUCT_NAME} -F api_token='your_api_token' -F team_token='your_team_token' -F notes='This build was uploaded via the upload API' -F notify=True -F distribution_lists='Internal, QA'
рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдорд╛рдирдХ
рдпреВрдЖрдИрдпреВрдЯреЛрдореЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдареАрдХ рд╣реИ,
рдЖрдк рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрд╕рдХреЗ рдЧреНрд▓рд┐рдЯреНрд╕ рдлрд╛рдпрджреЗ рдХреЛ рдирдХрд╛рд░рддреЗ рд╣реИрдВ)ред
рдореИрдВ
KIF рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ UI рдкрд░реАрдХреНрд╖рдг рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛
рд╣реВрдВ ред рдпрд╣ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ Xcode рдЯреЗрд╕реНрдЯ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИ рдФрд░ рдмреЙрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ
habr- рдмреНрд▓реЙрдЧ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рд╣рд░ рдЧреБрд░реБрд╡рд╛рд░, рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕, рд╡рд┐рдкрдгрди рдФрд░ рдореЛрдмрд╛рдЗрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд▓реЗрдЦред