рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╕реАрдЖрдИ / рд╕реАрдбреА

рдЫрд╡рд┐

рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдЫреЛрдЯреА gamedev рдХрдВрдкрдиреА рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ рдФрд░ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрднреА рднреА, 2020 рдпрд╛рд░реНрдб рдореЗрдВ рд╣реИ, рдпрд╣ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ ...

рдорд╛рдЙрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рдРрд╕рд╛ рдордЬрд╛рдХ рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рддрдХ, рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЧреЗрдо рдХреЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рдереА:

рдПрдВрдбреНрд░реЙрдпрдб


  1. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ
  2. Android рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛ рд░рд╣рд╛ рд╣реИ
  3. Google рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рд╕рд╛рдЭрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
  4. рдкрд░реАрдХреНрд╖рдХ рдирд╡реАрдирддрдо рдмрд┐рд▓реНрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
  5. Redmine рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрд╛рд░реНрдп рдлреЗрдВрдХрддрд╛ рд╣реИ
  6. рдЧреЛрдЯреЛ: рдЪрд░рдг 1

IOS рд╕рдВрд╕реНрдХрд░рдг рдереЛрдбрд╝рд╛ рдкреЗрдЪреАрджрд╛ рд╣реИ:

рдЖрдИрдУрдПрд╕


  1. рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ
  2. Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
  3. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, рдПрд╕рдбреАрдХреЗ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ
  4. рд╕рдВрдХрд▓рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛
  5. рд╕рдВрдЧреНрд░рд╣реАрдд
  6. IPA рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╣рд╛рд╣рд╛)
  7. рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк Google рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЖрдИрдкреАрдП рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  8. рдпрд╛ TestFlight рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдХреБрдЫ рджрд┐рдиреЛрдВ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  9. рдкрд░реАрдХреНрд╖рдХ рдирд╡реАрдирддрдо IPA рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
  10. рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реИ
  11. Redmine рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрд╛рд░реНрдп рдлреЗрдВрдХрддрд╛ рд╣реИ
  12. рдЧреЛрдЯреЛ: рдЪрд░рдг 1

рдпрд╣рд╛рдБ рдРрд╕рд╛ рджреБрдГрдЦ рд╣реИред рдФрд░ рдЕрдЧрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп (рдирд╣реАрдВ) рд╣реИ, рддреЛ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП - рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд▓рдВрдмрд╛, рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЧрд▓рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░ (рдпрд╣рд╛рдВ рдорд╛рдЙрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рд╕рдордп рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрддрд╛ рд╣реИ, рдПрдХреНрд╕рдХреЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рд░ рдХреЛрдИ рдПрдХ рд╣реА рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЗрд╕ рд╕рдВрдкреВрд░реНрдг рдирд╛рд░рдХреАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рдХреБрдЫ рдкреВрдЫрдиреЗ / рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧреЗрдо рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ :)

рдФрд░ рдпрд╣рд╛рдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд▓рд┐рдпреЛрдкреЛрдЯрдо рдХреЗ рджрд╛рдЦрд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╕рд╛рдЗрдХрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░реЗрдореА рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди, рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдПрдХ BASH рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ:

  • GIT рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ
  • рдПрдВрдбреНрд░реЙрдпрдб рдХреЗ рд▓рд┐рдП рдПрдкреАрдХреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд╡рд┐рдХрд╛рд╕ рдФрд░ рд░рд┐рд▓реАрдЬ рдореЗрдВ
  • IOS Xcode рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдбреЗрд╡рд▓рдк рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ
  • рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ
  • рдкреБрд░рд╛рд▓реЗрдЦ рдФрд░ рдирд┐рд░реНрдпрд╛рдд IPA
  • рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрдЯреАрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
  • рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTML рдкреГрд╖реНрда рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
  • Sshpass рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╣ рд╕рдм рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
  • рд╕рднреА рд▓реЙрдЧ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ
  • рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реВрдЪрдирд╛ рднреЗрдЬреЗрдВ

рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рдмрдЯрди рдХреЗ рд╕реНрдкрд░реНрд╢ рдореЗрдВред рдПрдХрддрд╛ рдФрд░ Xcode рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ред рдХрд┐рд╕реА рддрд░рд╣ рдЕрдзрд┐рдХ рдордЬрд╝рд╛, рд╣реБрд╣?

рдЫрд╡рд┐

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, BASH рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдлреЗрдВрдЧрд╢реБрдИ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдиреАрдЪреЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рджрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ


рдореИрдиреБрдЕрд▓ рдЙрди рд╕рднреА рддрд░реНрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рд▓реНрдб APK рдЪрд▓рд╛рдПрдВ:

$UNITY -batchmode -quit -projectPath "$PATH" -executeMethod Game.BuildActions.AndroidDevelopment -buildTarget android -logFile "$LOGS_PATH/android_development.log" 

рдпрд╣рд╛рдБ -buildTarget рдмрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ - executeMethod рдПрдХрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 static void AndroidDevelopment () { PlayerSettings.SetScriptingBackend (BuildTargetGroup.Android, ScriptingImplementation.IL2CPP); PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.Android, "DEV"); EditorUserBuildSettings.SwitchActiveBuildTarget (BuildTargetGroup.Android, BuildTarget.Android); EditorUserBuildSettings.development = true; EditorUserBuildSettings.androidETC2Fallback = AndroidETC2Fallback.Quality32Bit; BuildReport report = BuildPipeline.BuildPlayer (GetScenes (), ANDROID_DEVELOPMENT_FILE, BuildTarget.Android, BuildOptions.None); int code = (report.summary.result == BuildResult.Succeeded) ? 0 : 1; EditorApplication.Exit (code); } 

рдпрд╣рд╛рдБ рдЖрдк рдмрд┐рд▓реНрдб, рдХрдВрдбреАрд╢рди рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо BASH рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред

Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ


рдПрдХрддрд╛ рдиреЗ Xcode рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ IPA рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд, рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 xcodebuild -project "$IOS_PATH/Unity-iPhone.xcodeproj" -quiet > "$LOGS_PATH/ios_build_release.log" 2>&1 

 xcodebuild -project "$IOS_PATH/Unity-iPhone.xcodeproj" -scheme "Unity-iPhone" archive -archivePath "$IOS_RELEASE/Unity-iPhone.xcarchive" -quiet > "$LOGS_PATH/ios_archive_release.log" 2>&1 

 xcodebuild -exportArchive -archivePath "$IOS_RELEASE/Unity-iPhone.xcarchive" -exportOptionsPlist "$IOS_RELEASE/options.plist" -exportPath $IOS_RELEASE -allowProvisioningUpdates -quiet > "$LOGS_PATH/ios_export_release.log" 2>&1 


рдпрд╣рд╛рдВ Options.plist рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрдЯ рд╣реИ рдЬреЛ рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рдзрд┐, рдЯреАрдордЖрдИрдбреА рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдЙрдкрд▓рдмреНрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 xcodebuild -help 

рдЗрди рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХрддрд╛ рдПрдХрддрд╛- iPhone.xcodeproj рдЬреЛ рдПрдХрддрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ xcworkspace рд╣реИ , рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

BASH рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдкрд░ рд╕рдВрджреЗрд╢ рдХреИрд╕реЗ рднреЗрдЬреЗрдВ


рдЖрдкрдХреЛ рдмреЙрдЯрдлрд╝рд╛рджрд░ рдмреЙрдЯ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ , рдЙрд╕реЗ рд▓рд┐рдЦреЗрдВ / рд╢реБрд░реВ рдХрд░реЗрдВ, рдпрд╛ / рдиреНрдпреВрдмреЙрдЯ, рдЦреЗрддреЛрдВ рдореЗрдВ рднрд░реЗрдВ рдФрд░ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 curl $BOT_PROXY https://api.telegram.org/bot$BOT_TOKEN/sendMessage -m 60 -s -X POST -d chat_id=$CHAT_ID -d text="$1" > "$LOGS_PATH/bot.log" 2>&1 

рдпрд╣рд╛рдБ CHAT_ID рдЪреИрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рд╣реИ рдЬрд╣рд╛рдБ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрд╕ рд╕рдореВрд╣ рдореЗрдВ рдмреЙрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдХ рдмреИрдареЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рдВрджреЗрд╢ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 https://api.telegram.org/bot[BOT_TOKEN]/getUpdates 

рдФрд░ рдЙрд╕ рд╕рдореВрд╣ рдХреА рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рджрд╕реНрдпред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдореВрд╣ рдХреА рдЖрдИрдбреА рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рджрд╕реНрдп рдХреЛ рднреЗрдЬреЗрдВ рдХрд┐ рдХрд┐рд╕рдХреЛ рднреЗрдЬрдирд╛ рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕, рдкреИрдЪ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ HTML рд╕реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ sshpass рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред

рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 # # PARAMS TO CHANGE # BRANCH='master' COMPANY='my_company' GAME_NAME='new_game' BUNDLE='com.mygames.game' TEAM='ios_team_id' REMOTE_PATH='url_my_builds_server' SSH_LOGIN='my_login' SSH_PASS='my_pass' SSH_HOST='my_builds_server.ru' SSH_PATH='~/domains/my_builds_server.ru/builds' TEMPLATE_FILE=$(PWD)'/template.html' MANIFEST_FILE=$(PWD)'/manifest.plist' VERSION_FILE=$(PWD)'/version.txt' LOGS_PATH=$PROJECT_PATH'/Logs' ANDROID_PATH=$PROJECT_PATH'/Builds/Android' BUILDS_PATH=$PROJECT_PATH'/Builds' IOS_PATH=$PROJECT_PATH'/Builds/iOS' IOS_BUILD_PATH=$PROJECT_PATH'/Builds/iOS/build' IOS_DEVELOPMENT=$PROJECT_PATH'/Builds/iOS/build/development' IOS_RELEASE=$PROJECT_PATH'/Builds/iOS/build/release' BOT_TOKEN='my_bot_token' BOT_PROXY='--proxy 185.189.211.70:8080' CHAT_ID='123456798' UNITY='/Applications/Unity/Hub/Editor/2019.3.0f1/Unity.app/Contents/MacOS/Unity' # # # 

рдбреЗрдореЛ рдФрд░ рд╕реНрд░реЛрдд



рдмреЗрд╢рдХ, рдпрд╣ рд╕рдм рдПрдХ рд╣реА Gitlab CI / CD рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рд░рдирд░реНрд╕, рдмрд┐рд▓реНрдб рдФрд░ рдЯреЗрд╕реНрдЯред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рддреИрдпрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдФрд░ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рд╣рдо рдЗрд╕ рдкрд░ рдЖрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдпрд╣ рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд▓реНрджреА рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд▓рд┐рдЦреА рдЧрдИ рдереАред

2020 рдореЗрдВ рд╕рднреА рд╕реНрд╡рдЪрд╛рд▓рди! рд░реЛрдмреЛрдЯ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрдореА рдирд╣реАрдВред

Source: https://habr.com/ru/post/hi479884/


All Articles