Xcode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдирдВрдмрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

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

рд╕реНрдореГрддрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдирдВрдмрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдЪрдорддреНрдХрд╛рд░ рдиреБрд╕реНрдЦрд╛ рдЖрддрд╛ рд╣реИред

рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ github рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ: github.com/eshurakov/XcodeAutoBundleVersion

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рджреЛ рдЪрд░ рд╣реИрдВ:
CFBundleShortVersionStringрдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╡рд┐рдкрдгрди рд╕рдВрд╕реНрдХрд░рдг ред рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдбреЙрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рддреАрди рдирдВрдмрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реВрдВред
CFBundleVersionрдирдВрдмрд░ рдмрдирд╛рдПрдБ рдпрд╣ рдПрдХ рдиреАрд░рд╕ рд░реВрдк рд╕реЗ рдмрдврд╝рддрд╛ рд╣реБрдЖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдПрдХ рдмрд┐рдВрджреБ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИрдВред рдПрдХ рдЬрд╛рд░реА рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдЖрд╡реЗрджрди рдХреА рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, Apple рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ: developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKey.html

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


6 рдЖрд╕рд╛рди рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛:


  1. рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред
  2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдЯрд╛рдЗрдк рдПрдЧреНрд░реАрдЧреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдПрдВред рдореИрдВрдиреЗ рдЕрдкрдирд╛ "рд╕рдВрд╕реНрдХрд░рдг" рдирд╛рдо рджрд┐рдпрд╛ред рдмрд┐рд▓реНрдб рдЪрд░рдгреЛрдВ рдореЗрдВ, рд░рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░рдг рдЬреЛрдбрд╝реЗрдВ, рдЬрд╣рд╛рдБ рд╕реЗ рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╣рддреЗ рд╣реИрдВ:
     GIT_BRANCH="master" PREFIX="XC_" /bin/sh "${PROJECT_DIR}/Version.sh" "${PROJECT_DIR}/Version.h" 

    рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░:
    PREFIX
    рдЙрддреНрдкрдиреНрди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
    GIT_BRANCH
    рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╢рд╛рдЦрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдирдВрдмрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдорд╛рд╕реНрдЯрд░" рд╣реИред
    PROJECT_DIR
    рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрдеред Xcode рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдпрд╣ рдЪрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЗрдЯ рд╣реИред

    рдкрд░рд┐рдгрд╛рдореА рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
     #define XC_BUILD_NUMBER 7 #define XC_BUILD_HASH @"c2acb9b" 

    рд╣рдо рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ Info.plist рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рд╕реНрдХреНрд░реАрди рдкрд░ рдХрдорд┐рдЯ рдХрд╛ рд╣реИрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред

  3. рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХреА рдмрд┐рд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛:
    Preprocess Info.plist рдлрд╝рд╛рдЗрд▓
    рд╣рд╛рдБ
    Info.plist Preprocessor рдЙрдкрд╕рд░реНрдЧ рдлрд╝рд╛рдЗрд▓
    Version.h

  4. Info.plist рдореЗрдВ, CFBundleVersion рдХрд╛ рдорд╛рди XC_BUILD_NUMBER
  5. рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХреБрд▓ рд▓рдХреНрд╖реНрдп рдХреЛ рдЬреЛрдбрд╝реЗрдВред
  6. Version.h рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдЕрдирджреЗрдЦреА рд╢реАрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдм, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде, Version.h рдлрд╝рд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде Info.plistред

рдЧрд┐рддреБрдм рдкрд░ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ: github.com/eshurakov/XcodeAutoBundleVersion

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


All Articles