GitLab āĻāĻŦāĻ‚ fastlane āϏāĻš āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇ iOS āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž

GitLab āĻāĻŦāĻ‚ fastlane āϏāĻš āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇ iOS āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž

āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ āϏāĻš āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇ iOS āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋ āϏāĻ‚āĻ—ā§āϰāĻš, āϏāĻžāχāύ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇⧎

āφāĻŽāϰāĻž āϏāĻŽā§āĻĒā§āϰāϤāĻŋ āĻ›āĻŋāϞ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĻā§āϰ⧁āϤ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ“ āϚāĻžāϞ⧁ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒā§‹āĻ¸ā§āϟāĨ¤ Android GitLab āĻāϰ āϏāĻžāĻĨ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĨāĻŽ āĻ—āϞāĻŋ. āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āĻŦ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ iOS āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻāϟāĻŋ TestFlight-āĻ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻ•āϤāϟāĻž āĻļā§€āϤāϞ āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻĻ⧇āϖ⧁āύ āφāĻŽāĻŋ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ āĻ“āϝāĻŧ⧇āĻŦ āφāχāĻĄāĻŋāχ āĻāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āφāχāĻĒā§āϝāĻžāĻĄ āĻĒā§āϰ⧋āϤ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻ›āĻŋ, āφāĻŽāĻŋ āϏāĻŽāĻžāĻŦ⧇āĻļ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻāĻ•āχ iPad āĻĒā§āϰ⧋āϤ⧇ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻāĻ•āϟāĻŋ āφāĻĒāĻĄā§‡āϟ āĻĒāĻžāχ āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāĻŋ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋ⧎

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āύ⧇āĻŦ āϏ⧁āχāĻĢāĻŸā§‡ āϏāĻšāϜ iOS āĻ…ā§āϝāĻžāĻĒ, āϝāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āφāĻŽāĻŋ āĻ­āĻŋāĻĄāĻŋāĻ“ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧇āĻ›āĻŋāĨ¤

āĻ…ā§āϝāĻžāĻĒāϞ āĻ¸ā§āĻŸā§‹āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻļāĻŦā§āĻĻ

āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ āĻ…ā§āϝāĻžāĻĒ, āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻāĻŦāĻ‚ āϏāĻŦāĻ•āĻŋāϛ⧁āϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ­āĻŋāĻļāύāĻŋāĻ‚ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇āĨ¤

āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ•āĻ āĻŋāύ āϜāĻŋāύāĻŋāϏ āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇ āϏāĻžāχāύ āĻ•āϰāĻžāϰ āĻ…āϧāĻŋāĻ•āĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāĨ¤ āφāĻŽāĻŋ āφāĻļāĻž āĻ•āϰāĻŋ āφāĻĒāύāĻŋ āύāĻŋāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāχ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ. āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āύāϤ⧁āύ āĻšāύ, āφāĻŽāĻŋ āφāĻĒāύāĻžāϕ⧇ āϏāĻ āĻŋāĻ• āĻĻāĻŋāĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āĻāĻ–āĻžāύ⧇ Apple āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāϟāĻŋāϞāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŦ āύāĻž āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋ āĻ•ā§āϰāĻŽāĻžāĻ—āϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāĻšā§āϛ⧇⧎ āĻāχ āĻĒā§‹āĻ¸ā§āϟ āφāĻĒāύāĻžāϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇.

āφāĻŽāĻžāϰ āĻ…ā§āϝāĻžāĻĒāϏ

āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒ āĻĻāϰāĻ•āĻžāϰ āϝāĻžāϤ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āφāχāĻĄāĻŋ āĻĨāĻžāϕ⧇ .xcodebuild. āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āφāχāĻĄāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻŋāϤāϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ, āĻŽā§‚āĻ˛ā§āϝ āĻāĻŦāĻ‚ āĻĒā§āϰāĻžāĻĒā§āϝāϤāĻž āĻāĻŦāĻ‚ TestFlight āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύāϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āϰāĻŦ⧇āύ āύāĻž, āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ—ā§āϰ⧁āĻĒ āĻĨāĻžāϕ⧇, āϏāĻžāϧāĻžāϰāĻŖ āϏ⧇āϟāφāĻĒ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ Apple āĻĨ⧇āϕ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ…āύ⧁āĻŽāϤāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύāĻž āĻšāϝāĻŧ āϤāĻŦ⧇ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ āĻĒāϰ⧀āĻ•ā§āώāĻžāχ āϝāĻĨ⧇āĻˇā§āϟāĨ¤

āĻĒā§āϰāĻžāϰāĻŽā§āĻ­āĻŋāĻ• āĻĒā§āϰ⧋āĻĢāĻžāχāϞ

āĻ…ā§āϝāĻžāĻĒ āϏ⧇āϟāφāĻĒ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ…ā§āϝāĻžāĻĒāϞ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰ āĻ•āύāϏ⧋āϞ⧇āϰ āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ, āφāχāĻĄā§‡āĻ¨ā§āϟāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻŦāĻŋāĻ­āĻžāϗ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž iOS āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻļāύ āĻāĻŦāĻ‚ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ āϕ⧀āϗ⧁āϞāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ­āĻŋāĻļāύāĻŋāĻ‚ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞāĻŋ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘāĻļā§āĻŦāĻžāϏ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύāĨ¤

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ…āĻĒāĻļāύ

āĻāχ āϏāĻšāϜ āĻĒāĻĻā§āϧāϤāĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻžāϰ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āωāĻĒāĻžāϝāĻŧ āφāϛ⧇āĨ¤ āϏ⧁āϤāϰāĻžāĻ‚, āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āύ āϤāĻŦ⧇ āφāĻĒāύāĻžāϕ⧇ āĻŽāĻžāύāĻŋāϝāĻŧ⧇ āύāĻŋāϤ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ āφāĻĒāύāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ .xcodebuild, āϝāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āύāĻžāĻŽā§‡ āϰāĻžāύāĻžāϰ āϚāϞāϛ⧇ āϤāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āϕ⧀āĻšā§‡āύ āĻ…āĻŦāĻļā§āϝāχ āωāĻĒāϞāĻŦā§āϧ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ⧇āϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϝāĻŧ āĻŦāĻž āφāĻĒāύāĻŋ āφāϰāĻ“ āϜāĻžāύāϤ⧇ āϚāĻžāύ, āϤāĻžāĻĻ⧇āϰ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻ⧇āϖ⧁āύ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ.

āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇ āφāĻŽāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻ›āĻŋ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘāĻļā§āĻŦāĻžāϏ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āϏāĻŽā§āĻ­āĻŦāϤ āφāϰāĻ“ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻŽā§āϝāĻžāϚ.

āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ āĻāĻŦāĻ‚ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āϏāĻŋāφāχ āϰāĻžāύāĻžāϰ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻŽāϰāĻž MacOS āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ āϰāĻžāύāĻžāϰ⧇āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇ āϚāϞ⧇ āϝāĻžāχāĨ¤ āĻĻ⧁āĻ°ā§āĻ­āĻžāĻ—ā§āϝāĻŦāĻļāϤ, āφāĻĒāύāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ MacOS āĻ iOS āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāχ āĻāϞāĻžāĻ•āĻžāϝāĻŧ āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āφāĻļāĻž āĻ•āϰ⧇āύ, āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻŽāϤ āύāϜāϰ āϰāĻžāϖ⧁āύ xcbuild и āϚāĻŋāĻšā§āύāĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻ•āĻžāϜ gitlab-ce#57576.

āϰāĻžāύāĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āϖ⧁āĻŦ āϏāĻšāϜāĨ¤ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧁āύ GitLab Runner āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ macOS.

āĻŦāĻŋāσāĻĻā§āϰāσ. āϰāĻžāύāĻžāϰāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ shelliOS āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ macOSāĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āĻžāϜ āύāĻž āĻ•āϰ⧇, āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ 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

āĻ…ā§āϝāĻžāĻĒāϞ āϕ⧀āĻšā§‡āύāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āĻāχ āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻāĻ•ā§āϏāϕ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŽāύ āϕ⧀āϗ⧁āϞāĻŋāϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āϰāϝāĻŧ⧇āϛ⧇⧎ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āωāĻĒāĻžāϝāĻŧ āĻšāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāĻŋāϏāĻžāĻŦ⧇ āϞāĻ— āχāύ āĻ•āϰāĻž āϝāĻŋāύāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāĻŦ⧇āύ āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŦ⧇āύāĨ¤ āϝāĻĻāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϕ⧀āĻšā§‡āύ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰ⧇, CI āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻ°ā§āĻŦāĻĻāĻž āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāύ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧁āύāĨ¤ āϤāĻžāϰāĻž āφāϰ āϕ⧀āĻšā§‡āύ⧇āϰ āϜāĻ¨ā§āϝ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰāĻŦ⧇ āύāĻž āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻĨāĻŽ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇ āϝāĻžāĻ“āϝāĻŧāĻž āĻāĻŦāĻ‚ āĻĻ⧇āĻ–āĻžāϰ āĻŽā§‚āĻ˛ā§āϝ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϞ āĻ…ā§āϝāĻžāĻĒāϞ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻŸā§‹ āĻŽā§‹āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏāĻšāϜ āĻ•āϰ⧇ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āĻŦāĻžāϰ āφāĻĒāύāĻŋ āĻāϟāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāϞ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻ āĻŋāĻ• āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇āĨ¤

fastlane init

āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, āϚāĻžāϞāĻžāύ fastlane init. āĻļ⧁āϧ⧁ āĻ…āύ⧁āϏāϰāĻŖ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ āχāύāĻ¸ā§āϟāϞ āĻāĻŦāĻ‚ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŦāĻŋāĻ­āĻžāϗ⧇ āĻœā§‡āĻŽāĻĢāĻžāχāϞ, āĻ•āĻžāϰāĻŖ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ CI āĻĒāĻžāχāĻĒāϞāĻžāχāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āĻ…āύ⧁āĻŽāĻžāύāϝ⧋āĻ—ā§āϝ āϞāĻžā§āϚ āĻĻāϰāĻ•āĻžāϰāĨ¤

āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇, āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āϚāĻžāϞāĻžāύ:

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("your-email@your-domain.com") # 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

āϝāĻĻāĻŋ āύāĻž! āφāĻŽāϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ⧇āϰ āϜāĻ¨ā§āϝ UTF-8 āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟ āϏ⧇āϟ āĻ•āϰ⧇āĻ›āĻŋ, āĻ•ā§ŒāĻļāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ clone āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟāĻŋāĻ‚ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϏāĻš shell, āϝāĻžāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏāĻŽāĻžāĻŦ⧇āĻļ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āĻ°ā§āĻŽāĻ•ā§āώ⧇āĻ¤ā§āϰ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āϕ⧇āĻŦāϞ āĻ•āϞ āĻ•āϰ⧁āύ flappybuild āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ, āϝ⧇āĻŽāύ āωāĻĒāϰ⧇ āĻĻ⧇āĻ–āĻž āϗ⧇āϛ⧇āĨ¤ āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž TestFlight-āĻ āϏāĻ°ā§āĻŦāĻļ⧇āώ āϏāĻŽāĻžāĻŦ⧇āĻļ⧇āϰ āϏāĻŽāĻžāĻŦ⧇āĻļ, āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž āĻĒāĻžāχāĨ¤

āφāĻŽāϰāĻž āφāĻ°ā§āϟāĻŋāĻĢā§āϝāĻžāĻ•ā§āϟāϟāĻŋāĻ“ āĻĒāĻžāχ āĻāĻŦāĻ‚ āϏāĻŽāĻžāĻŦ⧇āĻļ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻŋāĨ¤ āĻĻāϝāĻŧāĻž āĻ•āϰ⧇ āύ⧋āϟ āĻ•āϰ⧁āύ āϝ⧇ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ .ipa āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāĻŋāϤ āĻāφāϰāĻāĻŽ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻŸā§‡āĻŦāϞ āϝāĻž āϏāĻŋāĻŽā§āϞ⧇āϟāϰ⧇ āϚāϞ⧇ āύāĻžāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻŋāĻŽā§āϞ⧇āϟāϰ⧇āϰ āϜāĻ¨ā§āϝ āφāωāϟāĻĒ⧁āϟ āϚāĻžāύ, āϤāĻŦ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻŋāĻ˛ā§āĻĄ āϟāĻžāĻ°ā§āϗ⧇āϟ āϝ⧋āĻ— āĻ•āϰ⧁āύ āϝāĻž āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āĻāϟāĻŋ āφāĻ°ā§āϟāĻŋāĻĢā§āϝāĻžāĻ•ā§āϟ āĻĒāĻžāĻĨ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ

āĻāĻ–āĻžāύ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇āϰ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āϏāĻŦāĻ•āĻŋāϛ⧁āϕ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻāĻŦāĻ‚ TestFlight-āĻ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž CI āϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻāĻ–āĻžāύ⧇.

āφāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻĻā§āĻŦāĻŋ-āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ FASTLANE_SESSION (āϏ⧇āĻ–āĻžāύ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀)āĨ¤

FASTLANE_USER и FASTLANE_PASSWORD

āϝ⧇ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āϘāĻļā§āĻŦāĻžāϏ āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āĻĒā§āϰāĻžāϰāĻŽā§āĻ­āĻŋāĻ• āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟ āĻŦāϞāĻž āĻšāϝāĻŧ, āφāĻĒāύāĻžāϕ⧇ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ FASTLANE_USER и FASTLANE_PASSWORD. āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻāĻ–āĻžāύ⧇. āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āϏāĻžāχāύāĻŋāĻ‚ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ āϤāĻŦ⧇ āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āύāϝāĻŧāĨ¤

āωāĻĒāϏāĻ‚āĻšāĻžāϰ āχāύ

āφāĻĒāύāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āϏāĻŦ āĻ•āĻžāϜ āĻ•āϰ⧇ āφāĻŽāĻžāϰ āϏāĻšāϜ āωāĻĻāĻžāĻšāϰāϪ⧇.

āφāĻŽāĻŋ āφāĻļāĻž āĻ•āϰāĻŋ āĻāϟāĻŋ āϏāĻšāĻžāϝāĻŧāĻ• āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āĻ—āĻŋāϟāĻ˛ā§āϝāĻžāĻŦ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ iOS āĻŦāĻŋāĻ˛ā§āĻĄāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻ…āύ⧁āĻĒā§āϰāĻžāĻŖāĻŋāϤ āĻ•āϰ⧇āϛ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āφāϰ⧇āĻ•āϟāĻŋ CI āϟāĻŋāĻĒāϏ āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ⧇āϰ āϜāĻ¨ā§āϝ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āĨ¤ āφāĻĒāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāχāϤ⧇ āĻĒāĻžāϰ⧇āύ CI_BUILD_ID (āĻ•ā§āϰāĻŽāĻŦāĻ°ā§āϧāĻŽāĻžāύ āĻŦāĻŋāĻ˛ā§āĻĄā§‡āϰ āϜāĻ¨ā§āϝ) āĻĨ⧇āϕ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ.

āĻĢāĻžāĻ¸ā§āϟāϞ⧇āύ⧇āϰ āφāϰ⧇āĻ•āϟāĻŋ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ¸ā§āĻ•ā§āϰāĻŋāύāĻļāϟ āĻ…ā§āϝāĻžāĻĒ āĻ¸ā§āĻŸā§‹āϰ⧇āϰ āϜāĻ¨ā§āϝ, āϝāĻž āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āϖ⧁āĻŦ āϏāĻšāϜāĨ¤

āφāĻĒāύāĻžāϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻŽāĻ¨ā§āϤāĻŦā§āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧁āύ āĻāĻŦāĻ‚ iOS āĻ…ā§āϝāĻžāĻĒ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ GitLab āĻāϰ āωāĻ¨ā§āύāϤāĻŋāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ āϧāĻžāϰāύāĻž āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster