GitLab, fastlane เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ iOS เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

GitLab, fastlane เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ iOS เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเดจเต‹เดŸเตเด•เต‚เดŸเดฟเดฏ GitLab เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ iOS เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดชเตเดชเดฟเดŸเตเด•เดฏเตเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.

เดžเด™เตเด™เตพเด•เตเด•เต เด…เดŸเตเดคเตเดคเดฟเดŸเต† เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต เด’เดฐเต เด†เตปเดกเตเดฐเต‹เดฏเดฟเดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเด™เตเด™เดจเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดชเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด• GitLab เด’เดชเตเดชเด‚ เด…เดคเดฟเดตเต‡เด— เดชเดพเดค. เด’เดฐเต iOS เด†เดชเตเดชเต เดŽเด™เตเด™เดจเต† เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เด…เดคเต เดŸเต†เดธเตเดฑเตเดฑเตเดซเตเดฒเตˆเดฑเตเดฑเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚. เด…เดคเต เดŽเดคเตเดฐ เดฐเดธเด•เดฐเดฎเดพเดฃเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• GitLab Web IDE เด‰เดณเตเดณ เด’เดฐเต iPad Pro-เดฏเดฟเตฝ เดžเดพเตป เด’เดฐเต เดฎเดพเดฑเตเดฑเด‚ เดตเดฐเตเดคเตเดคเตเด•เดฏเดพเดฃเต, เดžเดพเตป เด…เดธเด‚เดฌเตเดฒเดฟ เดŽเดŸเตเดคเตเดคเต, เดžเดพเตป เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดš เด…เดคเต‡ เดเดชเดพเดกเต เดชเตเดฐเต‹เดฏเดฟเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดŸเต†เดธเตเดฑเตเดฑเต เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดจเต‡เดŸเตเดจเตเดจเต.

เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเด‚ เดธเตเดตเดฟเดซเตเดฑเตเดฑเดฟเดฒเต† เดฒเดณเดฟเดคเดฎเดพเดฏ iOS เด†เดชเตเดชเต, เด†เดฐเตเดฎเดพเดฏเดพเดฃเต เดžเดพเตป เดตเต€เดกเดฟเดฏเต‹ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดšเต†เดฏเตเดคเดคเต.

เด†เดชเตเดชเดฟเตพ เดธเตเดฑเตเดฑเต‹เตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เตเดฑเดšเตเดšเต เดตเดพเด•เตเด•เตเด•เตพ

เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เตผ เด†เดชเตเดชเต, เดตเดฟเดคเดฐเดฃ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ, เดชเตเดฐเตŠเดตเดฟเดทเดจเดฟเด‚เด—เต เดชเตเดฐเตŠเดซเตˆเตฝ เดŽเดจเตเดจเดฟเดต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด‡เดตเดฟเดŸเต† เดเดฑเตเดฑเดตเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเด‚ เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ เดธเตˆเดจเดฟเด‚เด—เต เด…เดตเด•เดพเดถเด™เตเด™เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดธเตเดตเดฏเด‚ เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เดชเตเดคเดฟเดฏ เด†เดณเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เดจเดฟเด™เตเด™เดณเต† เดถเดฐเดฟเดฏเดพเดฏ เดฆเดฟเดถเดฏเดฟเดฒเต‡เด•เตเด•เต เดšเต‚เดฃเตเดŸเดฟเด•เตเด•เดพเดฃเดฟเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เด†เดชเตเดชเดฟเตพ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเด™เตเด•เต€เตผเดฃเดคเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ, เด…เดต เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดฎเดพเดฑเดฟเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดˆ เดชเต‹เดธเตเดฑเตเดฑเต เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚.

เดŽเดจเตเดฑเต† เด†เดชเตเดชเตเด•เตพ

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เตผ เด•เดฃเด•เตเดฑเตเดฑเดฟเตฝ เด’เดฐเต เด†เดชเตเดชเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฏเดฟ เด’เดฐเต เดเดกเดฟ เดฒเดญเดฟเด•เตเด•เตเด‚ .xcodebuild. เดชเตเดฐเตŠเดซเตˆเดฒเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดเดกเดฟเดฏเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดŸเต†เดธเตเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเต เดฌเดฟเตฝเดกเตเด•เตพ, เดตเดฟเดฒเดจเดฟเตผเดฃเตเดฃเดฏเด‚, เดฒเดญเตเดฏเดค, เดŸเต†เดธเตเดฑเตเดฑเตเดซเตเดฒเตˆเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดจเตเดจเดฟเดต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดชเตŠเดคเต เดชเดฐเดฟเดถเต‹เดงเดจ เดจเดŸเดคเตเดคเดฐเตเดคเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด—เตเดฐเต‚เดชเตเดชเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดธเตเดตเด•เดพเดฐเตเดฏ เดชเดฐเดฟเดถเต‹เดงเดจ เดฎเดคเดฟเดฏเดพเด•เตเด‚, เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดธเดœเตเดœเต€เด•เดฐเดฃเด‚, เด†เดชเตเดชเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดงเดฟเด• เด…เดจเตเดฎเดคเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.

เด‡เดจเต€เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เดชเตเดฐเตŠเดซเตˆเตฝ

เด†เดชเตเดชเต เดธเดœเตเดœเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เด†เดชเตเดชเดฟเตพ เดกเต†เดตเดฒเดชเตเดชเตผ เด•เตบเดธเต‹เดณเดฟเดจเตเดฑเต† เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ, เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ & เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เตพ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš iOS เดตเดฟเดคเดฐเดฃเดตเตเด‚ เดตเดฟเด•เดธเดจ เด•เต€เด•เดณเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดˆ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเต†เดฒเตเดฒเดพเด‚ เด’เดฐเต เดชเตเดฐเตŠเดตเดฟเดทเดจเดฟเด‚เด—เต เดชเตเดฐเตŠเดซเตˆเดฒเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚.

เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฃเด‚, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด˜เดŸเตเดŸเด™เตเด™เตพ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด‚ เดจเต†เดŸเตเดตเต€เตผเดชเตเดชเตเด‚ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเดฟเดถเด•เต เด•เดพเดฃเตเด‚.

เดฎเดฑเตเดฑเต เด“เดชเตเดทเดจเตเด•เตพ

เดˆ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟ เด•เต‚เดŸเดพเดคเต†, เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเด‚ เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฑเตเดฑเต เดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เตพ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดŽเดจเตเดจเดคเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด‚ .xcodebuild, เด…เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดซเดฏเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดšเต‚เดฃเตเดŸเดฟเด•เตเด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดฑเดฃเตเดฃเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฌเดฟเตฝเดกเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เด•เต€เดšเต†เดฏเดฟเตป เดฒเดญเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เดธเดฟเด—เตโ€Œเดจเต‡เดšเตเดšเดฑเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเดฒเต‹ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดฃเดฎเต†เด™เตเด•เดฟเตฝ เด…เดตเดฏเตเดŸเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เด’เดชเตเดชเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป.

เดˆ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดžเดพเตป เดธเดฎเต€เดชเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด‚ เดจเต†เดŸเตเดตเต€เตผเดชเตเดชเตเด‚, เดŽเดจเตเดจเดพเตฝ เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเต เด‡เดคเต เด’เดฐเตเดชเด•เตเดทเต‡ เด•เต‚เดŸเตเดคเตฝ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต เดฎเดคเตเดธเดฐเด‚.

GitLab, fastlane เดŽเดจเตเดจเดฟเดต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจเต

เดธเดฟเด เดฑเดฃเตเดฃเตผ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจเต

เดˆ เดกเดพเดฑเตเดฑเดฏเต†เดฒเตเดฒเดพเด‚ เดถเต‡เด–เดฐเดฟเดšเตเดš เดถเต‡เดทเด‚, เดžเด™เตเด™เตพ MacOS เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดฒเต† GitLab เดฑเดฃเตเดฃเดฑเดฟเดจเตเดฑเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต MacOS-เตฝ เดฎเดพเดคเตเดฐเดฎเต‡ iOS เด†เดชเตเดชเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเดพเดตเต‚. เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเด‚ เดฎเดพเดฑเดพเด‚, เดˆ เดฎเต‡เด–เดฒเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดชเตเดฐเต‹เด—เดคเดฟ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด• xcbuild ะธ เด…เดŸเดฏเดพเดณเด‚, เดžเด™เตเด™เดณเตเดŸเต† เด†เดจเตเดคเดฐเดฟเด• เดšเตเดฎเดคเดฒ gitlab-ce#57576.

เดฑเดฃเตเดฃเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดฟเดจเตเดคเตเดŸเดฐเตเด• MacOS-เตฝ GitLab เดฑเดฃเตเดฃเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ.

เด•เตเดฑเดฟเดชเตเดชเต. เดฑเดฃเตเดฃเตผ เด’เดฐเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ 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

Xcode เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸ เด•เต€เด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Apple เด•เต€เดšเต†เดฏเดฟเตป เดˆ เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดฌเดฟเตฝเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดพเดฏเดฟ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดŽเดณเตเดชเตเดช เดฎเดพเตผเด—เด‚. เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต€เดšเต†เดฏเดฟเตป เด†เด•เตโ€Œเดธเดธเตเดธเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, CI เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดŽเดชเตเดชเต‹เดดเตเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด• เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•. เด…เดตเตผ เด‡เดจเดฟ เด•เต€เดšเต†เดฏเดฟเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เด†เดฆเตเดฏเดคเตเดคเต† เดฐเดฃเตเดŸเต เดชเตˆเดชเตเดชเต เดฒเตˆเดจเตเด•เตพ เด…เด•เดคเตเดคเต เดชเต‹เดฏเดฟ เด•เดพเดฃเตเดจเตเดจเดคเต เดฎเต‚เดฒเตเดฏเดตเดคเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดฏเดพเดจเตเดคเตเดฐเดฟเด• เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด†เดชเตเดชเดฟเตพ เดžเด™เตเด™เตพเด•เตเด•เต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตโ€Œเดจเด‚, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เด…เดคเต เดšเต†เดฏเตเดคเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเด•เตเด‚.

เดซเดพเดธเตเดฑเตเดฑเตเดฒเต†เดฏเตเตป 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 เดจเดฟเตผเดฎเตเดฎเดพเดฃ เด˜เดŸเตเดŸเด™เตเด™เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเดจเดฟเดจเตเดฑเต† เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดงเดพเดฐเดพเดณเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดตเดฟเดŸเต†เดฏเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต. เดžเด™เตเด™เตพ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเตˆเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดคเต TestFlight-เดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เดœเต‹เดฒเดฟเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเด‚. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต†เดฒเตเดฒเดพเด‚ (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

เด…เดคเดฟเดจเดพเตฝ, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต CI เดฑเดฃเตเดฃเตผ เด‰เดฃเตเดŸเต, เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เดจเดฎเตเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เด‰เดณเตเดณเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚ .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

เดŽเดฒเตเดฒเดพ เดฆเดฟเดตเดธเดตเตเด‚! เด†เดตเดถเตเดฏเดพเดจเตเดธเดฐเดฃเด‚ เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเดจเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต UTF-8 เด†เดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต, เดคเดจเตเดคเตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• clone เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตŠเดชเตเดชเด‚ shell, เด“เดฐเต‹ เด…เดธเด‚เดฌเตเดฒเดฟเด•เตเด•เตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เด’เดฐเต เดตเตผเด•เตเด•เตโ€Œเดธเตโ€Œเดชเต‡เดธเต เด‰เดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดตเดฟเดณเดฟเด•เตเด•เตเด• flappybuild เดฎเตเด•เดณเดฟเตฝ เด•เดพเดฃเตเดจเตเดจเดคเต เดชเต‹เดฒเต† เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเตˆเตป. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดŸเต†เดธเตเดฑเตเดฑเต เดซเตเดฒเตˆเดฑเตเดฑเดฟเตฝ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเดŸเต† เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเด‚ เด’เดชเตเดชเตเด‚ เดตเดฟเดจเตเดฏเดพเดธเดตเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚.

เดžเด™เตเด™เตพ เดชเตเดฐเดพเดตเดธเตเดคเต เดจเต‡เดŸเตเด•เดฏเตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟเดฏเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• .ipa เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเตเดค เดธเตˆเตป เดšเต†เดฏเตเดค ARM เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด†เดฃเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเดพเดฏเดฟ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดฌเดฟเตฝเดกเต เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต เด…เดคเต เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เดชเดพเดคเดฏเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•.

เดฎเดฑเตเดฑเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

เดŽเดฒเตเดฒเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจ เดฐเดฃเตเดŸเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ะธ FASTLANE_SESSION

เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเตฝ เด†เดงเดฟเด•เดพเดฐเดฟเด•เดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเดจเตเด‚ TestFlight-เดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเดจเดฟเดจเตเดณเตเดณ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, CI-เดฏเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด…เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เด’เดฐเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•. เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‡เดตเดฟเดŸเต†.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฐเดฃเตเดŸเต-เด˜เดŸเด• เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• FASTLANE_SESSION (เด…เดตเดฟเดŸเต†เดฏเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ).

FASTLANE_USER ะธ FASTLANE_PASSWORD

เด† เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด‚ เดจเต†เดŸเตเดตเต€เตผเดชเตเดชเตเด‚ เด‡เดจเต€เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เดชเตเดฐเตŠเดซเตˆเดฒเตเด‚ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเดšเตเดšเดพเตฝ, เดจเดฟเด™เตเด™เตพ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต FASTLANE_USER ะธ FASTLANE_PASSWORD. เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด‡เดตเดฟเดŸเต†. เดจเดฟเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดธเตˆเดจเดฟเด‚เด—เต เดฐเต€เดคเดฟเดฏเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.

เด‰เดชเดธเด‚เดนเดพเดฐเดฎเดพเดฏเดฟ

เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ เดŽเดจเตเดฑเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ.

เด’เดฐเต GitLab เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ iOS เดฌเดฟเตฝเดกเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด‡เดคเต เดธเดนเดพเดฏเด•เดฐเดตเตเด‚ เดชเตเดฐเดšเต‹เดฆเดจเดตเตเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเดพ เดฎเดฑเตเดฑเตŠเดจเตเดจเต CI เดจเตเดฑเตเด™เตเด™เตเด•เตพ เดซเดพเดธเตเดฑเตเดฑเตโ€Œเดฒเต†เดฏเตโ€Œเดจเดฟเดจเดพเดฏเดฟ, เด…เด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเตฝ. เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚ CI_BUILD_ID (เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเตฝ เดฌเดฟเตฝเดกเตเด•เตพเด•เตเด•เต) เดตเดฐเต† เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เตเด•เดพเดฏเดฟ เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเต เดชเดคเดฟเดชเตเดชเต.

เดซเดพเดธเตเดฑเตเดฑเตเดฒเต†เดฏเดฟเดจเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เดฐเดธเด•เดฐเดฎเดพเดฏ เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเต เดฏเดพเดจเตเดคเตเดฐเดฟเด• เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเตเด•เตพ เด†เดชเตเดชเต เดธเตเดฑเตเดฑเต‹เดฑเดฟเดจเดพเดฏเดฟ, เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดจเตเดญเดตเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดžเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด•, iOS เด†เดชเตเดชเต เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ GitLab เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดถเดฏเด™เตเด™เตพ เดชเด™เตเด•เดฟเดŸเตเด•.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•