Ios - версія vs для збірки в xcode, code q - a російська (ru)

У мене є програма, яка я розробив за допомогою Xcode 3 і нещодавно почав редагування за допомогою Xcode 4. У підсумковому резюме у мене є цільова форма додатка iOS з полями: ідентифікатор, версія, збірка, пристрої та мета розгортання. Поле версії пусте, а поле збірки - 3.4.0 (яке відповідає версії програми з того моменту, коли я все ще редагував Xcode 3).

У чому різниця між полями версії і збірки?

Чому поле версії було порожнім після того, як я оновився до XCode 4?

Яблуко на кшталт перебудував / перепрофілював поля.

Якщо ви подивіться на вкладку «Інформація» для своєї цільової завдання, ви повинні використовувати «Версії версій Bundle, короткі» в якості вашої версії (наприклад, 3.4.0) та «Bundle version» в якості вашої збірки (наприклад, 500 або 1A500) . Якщо ви не бачите їх обох, ви можете їх додати. Вони будуть відображатися у відповідних текстових вікнах Version і Build на вкладці «Зведення»; Вони мають однакові значення.

Версія зазвичай використовується, як ви, здається, використовуєте її з Xcode 3. Я не впевнений, на якому рівні ви питаєте про різниці версії / збірки, тому я буду відповідати на неї філософськи.

Є всілякі схеми, але популярний:

  • Основна версія. Основні зміни, зміни і зміни функціональності.
  • Незначна версія - незначні поліпшення, доповнення до функцій
  • Версія - номер патча для виправлень помилок

Потім збірка використовується окремо, щоб вказати загальну кількість збірок для випуску або для всього терміну служби продукту.

Багато розробники починають номер збірки в 0, і кожен раз, коли вони будуються, вони збільшують число на одиницю, збільшуючись назавжди. У моїх проектах у мене є сценарій, який автоматично збільшує номер збірки кожен раз, коли я будую. Див. Інструкції нижче.

  • Версія 1.0.0 може бути збіркою 542. Для отримання версії 1.0.0 знадобилося 542 збірки.
  • Версія 1.0.1 може бути побудована 578.
  • Версія 1.1.0 може бути побудована 694.
  • Версія 2.0.0 може бути збіркою 949.

Інші розробники, включаючи Apple, мають номер збірки, що складається з основної версії + молодша версія + кількість збірок для випуску. Це фактичні номери версій програмного забезпечення, на відміну від значень, які використовуються для маркетингу.

Якщо ви перейдете в меню Xcode> About Xcode. ви побачите номера версії і збірки. Якщо ви натиснете кнопку More Info. . ви побачите купу різних версій. Оскільки в Xcode 5 була видалена кнопка More Info. . цю інформацію також можна отримати в розділі «Програмне забезпечення»> «Розробник» в додатку «Інформація про систему». доступному, відкривши меню Apple> Про це Mac> Системний звіт.

Наприклад, Xcode 4.2 (4C139). Маркетингова версія 4.2 - Build major version 4, Build minor version C і Build number 139. Наступною версією (імовірно 4.3), швидше за все, буде збірка версії 4D, а номер збірки почнеться з 0 і збільшиться звідти.

Версія iPhone Simulator Version / Build однакові, як і iPhone, Mac і т. Д.

Оновлення. За запитом тут наведені кроки по створенню сценарію, який запускається при кожному створенні програми в Xcode, щоб прочитати номер збірки, збільшити його і записати в файл додатка -Info.plist. Існують додаткові, додаткові кроки, якщо ви хочете написати свої номери версії / збірки у файлі Settings.bundle / Root * .plist.

Це розширене від практичної статті тут.

Скопіюйте та вставте наступне в область сценарію для цілих чисел збірки:

Як зазначив agvtool також доступний Apple Generic Versioning Tool (agvtool). Якщо ви віддаєте перевагу використовувати його замість цього, то спочатку необхідно змінити пару речей:

Зверніть увагу, що з agvtool методу agvtool ви можете періодично отримувати збої / скасовані збірки без ошібок.По цієї причини я не рекомендую використовувати agvtool з цим скриптом.

Проте, в фазі Run Script ви можете використовувати наступний скрипт:

Аргумент next-version збільшує номер збірки (bump також є псевдонімом для одного і того ж), і -all оновлює Info.plist з новим номером збірки.

Якщо ви використовуєте agvtool замість agvtool читання Info.plist. замість цього ви можете додати в свій скрипт наступне:

І якщо у вас є універсальне додаток для iPad і iPhone, ви також можете встановити налаштування для файлу iPhone:

(Просто залишивши це тут для моєї довідки.) Це покаже версію і побудує для полів «версія» і «збірка», які ви бачите у назві місії Xcode:

Номер збірки - це внутрішній номер, який вказує поточний стан програми. Він відрізняється від номера версії тим, що він зазвичай не звернений до користувача і не позначає ніяких відмінностей / особливостей / оновлень, наприклад, як зазвичай.

Щоб ефективно використовувати це в ваших проектах, Apple надає відмінний інструмент під назвою agvtool. Я настійно рекомендую використовувати це, так як це набагато простіше, ніж створювати скрипти. Це дозволяє вам легко встановити номер збірки і маркетингову версію. Це особливо корисно при написанні сценаріїв (наприклад, легко оновлювати номер збірки в кожній збірці або навіть запитувати те, що являє собою поточний номер збірки). Він може навіть робити більше екзотичних речей, таких як теги вашого SVN для вас, коли ви оновлюєте номер збірки.

Щоб використовувати його:

  • Задайте своє проект в Xcode в розділі «Управління версіями», щоб використовувати «Apple Generic».
  • У терміналі
    • agvtool new-version 1 (встановіть номер збірки 1)
    • agvtool new-marketing-version 1.0 (встановіть версію маркетингу 1.0)

Див. Agvtool сторінку agvtool за тонну хорошою інформації

Скрипт для автоматичного створення номера збірки у відповіді вище не працював для мене, якщо номер збірки є значенням з плаваючою комою, тому я трохи змінив його:

Номер випуску з маркетингу для клієнтів, званий номером версії. Він починається з 1.0 і підходить для основних оновлень 2.0. 3.0. для невеликих оновлень до 1.1. 1.2 і виправлень помилок до 1.0.1. 1.0.2. Це число орієнтоване на випуски і нові функції.

Номер збірки - це, в основному, внутрішній номер збірок. які були зроблені до цього моменту. Але деякі використовують інші числа, такі як номер філії сховища. Це число повинне бути унікальним, щоб відрізняти різні майже ті ж збірки.

Як ви можете бачити, номер збірки не потрібен, і вам вирішувати, який номер збірки ви хочете використовувати. Тому, якщо ви відновите свій Xcode до основної версії, поле збірки буде порожнім. Поле версії може бути порожнім.

Щоб отримати номер збірки як змінну NSString.

Щоб отримати номер версії як змінну NSString.

Якщо ви хочете як в одному NSString.

Це протестовано з Xcode Version 4.6.3 (4H1503). Номер збірки часто записується в дужки / фігурні дужки. Номер зборки перебуває в шістнадцятковому або десятковому значенні.

У Xcode ви можете автоматично збільшувати номер збірки як десяткове число. поміщаючи наступне в фазу Run script в налаштуваннях проекту

Для шістнадцятирічного номера збірки використовуйте цей скрипт

Спасибі @nekno і @ ale84 за відмінні відповіді.

Проте, я трохи змінив скрипт @ ale84, щоб збільшувати числа збірки для з плаваючою комою.

Значення вкл може бути змінено відповідно до ваших вимог до формату плаваючого формату. Наприклад: if incl = .01, формат виведення буде. 1.19, 1.20, 1.21.

Інший спосіб - встановити номер версії в appDelegate doneFinishLaunchingWithOptions:

Схожі статті