рдлрд╛рд╕реНрдЯрд▓реЗрди рдХреЗ рд╕рд╛рде GitLab рдХреИрд╕реЗ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдкрд░ рдПрдХрддреНрд░рд┐рдд, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдерд╛
рдпрд╣рд╛рдВ рд╣рдо рд▓реЗрдВрдЧреЗ
Apple рд╕реНрдЯреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж
рд╣рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдРрдк рд╕реНрдЯреЛрд░ рдРрдк, рд╡рд┐рддрд░рдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдПрдХ рдкреНрд░рд╛рд╡рдзрд╛рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдХрдард┐рди рдХрд╛рдо рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрдзрд┐рдХрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдирдП рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдмрддрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣рд╛рдВ Apple рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдкреЛрд╕реНрдЯ рдЖрдкрдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА.
рдореЗрд░реА рдПрдкреНрдкреНрд╕
рдЖрдкрдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдХрдиреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдРрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдбреА рд╣реЛ .xcodebuild
. рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдИрдбреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд┐рд▓реНрдб, рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдФрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдЯреЗрд╕реНрдЯрдлрд╝реНрд▓рд╛рдЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░реАрдХреНрд╖рдг рди рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдореВрд╣ рд╣реИ, рдЖрд╕рд╛рди рд╕реЗрдЯрдЕрдк рд╣реИ, рдФрд░ Apple рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рдЬреА рдкрд░реАрдХреНрд╖рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЖрд░рдВрднреАрдХрд░рдг рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓
рдРрдк рд╕реЗрдЯрдЕрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ Apple рдбреЗрд╡рд▓рдкрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ iOS рд╡рд┐рддрд░рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрди рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдкреНрд░рд╛рд╡рдзрд╛рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЪрд░рдг
рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк
рдЗрд╕ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЗ рднреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .xcodebuild
, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдХрд┐рдЪреЗрди рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рдирд╛рдо рд╕реЗ рд░рдирд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рд╣рдо рдлрд╛рд╕реНрдЯрд▓реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
GitLab рдФрд░ fastlane рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рд╕реАрдЖрдИ рд░рдирд░ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдпрд╣ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо MacOS рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ GitLab рд░рдирд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рдХреЗрд╡рд▓ MacOS рдкрд░ iOS рдРрдкреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ
рд░рдирд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╡рд░реНрддрдорд╛рди рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ
рдЯрд┐рдкреНрдкрдгреАред рдзрд╛рд╡рдХ рдХреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ shell
. рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП macOS рдкрд░ iOS рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ shell
, рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реАрдзреЗ рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдкрд░ рд░рдирд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рдЬрд┐рддрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start
Apple рдХрд┐рдЪреЗрди рдХреЛ рдЗрд╕ рд╣реЛрд╕реНрдЯ рдкрд░ рдЙрди рдХреБрдВрдЬрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ Xcode рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдб рдЪрд▓рд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рдЪреЗрди рдПрдХреНрд╕реЗрд╕ рдорд╛рдВрдЧрддрд╛ рд╣реИ, рддреЛ рд╕реАрдЖрдИ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЕрдиреБрдорддрд┐ рджреЗрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдЕрдм рдЪрд╛рдмреА рдХрд╛ рдЧреБрдЪреНрдЫрд╛ рди рдорд╛рдВрдЧреЗрдВ, рдЕрдВрджрд░ рдЬрд╛рдХрд░ рдкрд╣рд▓реЗ рдХреБрдЫ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ Apple рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдСрдЯреЛ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдлрд╛рд╕реНрдЯрд▓реЗрди init
рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╛рд╕реНрдЯрд▓реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ fastlane init
. рдмрд╕ рдкрд╛рд▓рди рдХрд░реЗрдВ
рдЕрдкрдиреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдпреЗ рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
рдлрд╛рд╕реНрдЯрд▓реЗрди рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдВрдЧреЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рддреАрди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдлрд╛рд╕реНрдЯрд▓реЗрди рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдЧрд╛:
1. fastlane/Appfile
рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ. рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреА рдРрдкреНрдкрд▓ рдЖрдИрдбреА рдФрд░ рдРрдк рдЖрдИрдбреА рд╕рд╣реА рд╣реИрдВред
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
рдирд┐рд░реНрдорд╛рдг рдЪрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдлрд╛рд╕реНрдЯрд▓реЗрди рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рднреА рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣рдо рдПрдХ рд▓рд╛рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдЕрд╕реЗрдВрдмрд▓реА рдХрд░рддреА рд╣реИ рдФрд░ рдЙрд╕реЗ рдЯреЗрд╕реНрдЯрдлрд╝реНрд▓рд╛рдЗрдЯ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди (get_certificates
, get_provisioning_profile
, gym
╨╕ upload_to_testflight
) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╛рд╕реНрдЯрд▓реЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдХрд╛рд░реНрд░рд╡рд╛рдИ get_certificates
╨╕ get_provisioning_profile
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end
3. fastlane/Gymfile
рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИред рдпрд╣ рд╕реАрдЖрдИ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ. рдпрджрд┐ рд░реБрдЪрд┐ рд╣реЛ рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ gym
рдФрд░ рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░
https://docs.fastlane.tools/actions/gym/
рд╣рдорд╛рд░рд╛ .gitlab-ci.yml
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдЖрдИ рд░рдирд░ рд╣реИ, рдФрд░ рд╣рдо рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ .gitlab-ci.yml
:
stages:
- build
variables:
LC_ALL: "en_US.UTF-8"
LANG: "en_US.UTF-8"
GIT_STRATEGY: clone
build:
stage: build
script:
- bundle install
- bundle exec fastlane flappybuild
artifacts:
paths:
- ./FlappyBird.ipa
рдкреВрд░реА рддрд░рд╣ рд╕реЗ! clone
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде shell
, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдлрд╝ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рд╣реЛ, рдФрд░ рдмрд╕ рдХреЙрд▓ рдХрд░реЗрдВ flappybuild
рдлрд╛рд╕реНрдЯрд▓реЗрди, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ TestFlight рдореЗрдВ рдирд╡реАрдирддрдо рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЕрд╕реЗрдВрдмрд▓реА, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рддреИрдирд╛рддреА рдорд┐рд▓рддреА рд╣реИред
рд╣рдо рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рд╛рд░реВрдк .ipa
рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдЖрд░рдПрдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИ рдЬреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЙрд╕ рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдкрде рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
рдЕрдиреНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
рдпрд╣рд╛рдВ рдХреБрдЫ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИрдВ рдЬреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
╨╕ FASTLANE_SESSION
рдлрд╛рд╕реНрдЯрд▓реЗрди рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЯреЗрд╕реНрдЯрдлреНрд▓рд╛рдЗрдЯ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдЖрдИ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рд╡рд░рдг
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИ, рддреЛ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ FASTLANE_SESSION
(рд╡рд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢)ред
FASTLANE_USER
╨╕ FASTLANE_PASSWORD
рдХрд┐ FASTLANE_USER
╨╕ FASTLANE_PASSWORD
. рд╡рд┐рд╡рд░рдг
рдЕрдВрдд рдореЗрдВ
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рдерд╛ рдФрд░ рдЖрдкрдХреЛ GitLab рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ iOS рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рд╣реИ CI_BUILD_ID
(рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП)
рдлрд╛рд╕реНрдЯрд▓реЗрди рдХрд╛ рдПрдХ рдФрд░ рдмрдврд╝рд┐рдпрд╛ рдлреАрдЪрд░ рд╣реИ
рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВ рдФрд░ iOS рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП GitLab рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
рд╕реНрд░реЛрдд: www.habr.com