āĻĢāĻžāĻ¸ā§āĻāĻ˛ā§āĻ¨ āĻ¸āĻš āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻā§āĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ°ā§ iOS āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻ°āĻš, āĻ¸āĻžāĻāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§ā§ˇ
āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻŋāĻ˛
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻŦ
āĻ ā§āĻ¯āĻžāĻĒāĻ˛ āĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻ
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒ, āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻŦāĻ āĻ¸āĻŦāĻāĻŋāĻā§āĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻŋāĻļāĻ¨āĻŋāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ°ā§ āĻ¸āĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĨ¤ āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻšāĻ¨, āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ āĻŋāĻ āĻĻāĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ Apple āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦ āĻ¨āĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻā§āĻā§ā§ˇ āĻāĻ āĻĒā§āĻ¸ā§āĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§.
āĻāĻŽāĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒāĻ¸
āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ° āĻāĻžāĻ¨ā§āĻā§āĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒ āĻĻāĻ°āĻāĻžāĻ° āĻ¯āĻžāĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻāĻĄāĻŋ āĻĨāĻžāĻā§ .xcodebuild
. āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻāĻĄāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ, āĻŽā§āĻ˛ā§āĻ¯ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻāĻŦāĻ TestFlight āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§āĻ¸ā§āĻāĻŋāĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ āĻā§āĻ°ā§āĻĒ āĻĨāĻžāĻā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻāĻāĻĒ āĻĨāĻžāĻā§ āĻāĻŦāĻ Apple āĻĨā§āĻā§ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤
āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛
āĻ ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻāĻāĻĒ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ ā§āĻ¯āĻžāĻĒāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ, āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻŦāĻŋāĻāĻžāĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž iOS āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻŋāĻļāĻ¨āĻŋāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻšāĻŦā§, āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻĒāĻļāĻ¨
āĻāĻ āĻ¸āĻšāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ
āĻ¨ā§āĻ¯āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻžāĻ¨āĻŋāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ .xcodebuild
, āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽā§ āĻ°āĻžāĻ¨āĻžāĻ° āĻāĻ˛āĻā§ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°ā§ āĻā§āĻā§āĻ¨ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĄāĻŋāĻāĻŋāĻāĻžāĻ˛ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻĢāĻžāĻ¸ā§āĻāĻ˛ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ āĻāĻžāĻ¨āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§āĻā§āĻ¨
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻŽāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ
āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻāĻŦāĻ āĻĢāĻžāĻ¸ā§āĻāĻ˛ā§āĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻŋāĻāĻ āĻ°āĻžāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž MacOS āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻ°āĻžāĻ¨āĻžāĻ°ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻāĨ¤ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 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
āĻ ā§āĻ¯āĻžāĻĒāĻ˛ āĻā§āĻā§āĻ¨āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ āĻšā§āĻ¸ā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻāĻā§āĻ¸āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŽāĻ¨ āĻā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻž āĻ¯āĻŋāĻ¨āĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻŦā§āĻ¨ āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻā§āĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§, CI āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¤āĻžāĻ°āĻž āĻāĻ° āĻā§āĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻŦā§ āĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻĻā§āĻāĻžāĻ° āĻŽā§āĻ˛ā§āĻ¯ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻ ā§āĻ¯āĻžāĻĒāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻā§ āĻŽā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
fastlane 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
āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻā§āĻ°ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ TestFlight-āĻ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻ¸ā§āĻāĻ˛ā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻ¯āĻž CI āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻĻā§āĻŦāĻŋ-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ FASTLANE_SESSION
(āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§)āĨ¤
FASTLANE_USER
и FASTLANE_PASSWORD
āĻ¯ā§ FASTLANE_USER
и FASTLANE_PASSWORD
. āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ° āĻāĻ¨
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻŦ āĻāĻžāĻ āĻāĻ°ā§
āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻāĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻ˛ā§āĻ¯āĻžāĻŦ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ iOS āĻŦāĻŋāĻ˛ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ
āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻ°ā§āĻāĻāĻŋ CI_BUILD_ID
(āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯) āĻĨā§āĻā§
āĻĢāĻžāĻ¸ā§āĻāĻ˛ā§āĻ¨ā§āĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯
āĻāĻĒāĻ¨āĻžāĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ˛ā§āĻ¨ āĻāĻŦāĻ iOS āĻ ā§āĻ¯āĻžāĻĒ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ GitLab āĻāĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ§āĻžāĻ°āĻ¨āĻž āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com