Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика XCode

Разработчик

Сервер XCode и непрерывное руководство по интеграции

PDF
На этой странице

Включите доступ к своим репозиториям исходного кода

Сервер XCode воздействует на проекты, содержавшие в репозиториях исходного кода. Это поддерживает две популярных системы управления исходным кодом: Мерзавец и Подрывная деятельность. Ваши роботы могут соединиться с репозиториями Мерзавца и Подрывной деятельности, размещенными на удаленных серверах, или они могут соединиться с репозиториями, которые Вы установили и разместили в Сервере OS X.

Если Вы еще не установили Сервер XCode, посмотрите Сервер OS X Установки и Сконфигурируйте Сервер XCode.

Варианты аутентификации репозитория

Роботы XCode могут получить доступ к проектам Мерзавца и Подрывной деятельности по SSH (Защитите Shell), или HTTPS (Безопасный Протокол передачи гипертекста). Обычно SSH является предпочтительным протоколом для проектов Мерзавца, и HTTPS рекомендуется для проектов Подрывной деятельности.

О SSH

SSH шифрует учетные данные и транзакции и обычно более прост, чем HTTPS, потому что это всегда безопасно и не требует SSL (Уровень защищенных сокетов) сертификаты. Если Ваша организация использует ключи SSH для аутентификации, это - хороший, безопасный выбор и особенно полезно. Однако SSH не всегда так же легко доступен как HTTPS через сетевую среду.

Репозитории, к которым получают доступ по SSH, могут аутентифицироваться следующими способами:

  • Имя пользователя SSH и Пароль: Это - хороший выбор для любых размещенных репозиториев, которые поддерживает Ваша организация, поскольку никакая значительная установка не требуется на машине хостинга. Вы просто включаете SSH и гарантируете, что соответствующие пользователи аутентифицируются для соединения. Вы обеспечиваете учетные данные, когда Вы конфигурируете свои роботы, и эти имена пользователей и пароли сохранены в безопасной цепочке для ключей на машине сервера. Поскольку учетные данные не совместно используются, любые роботы, использующие тот же репозиторий, хранят свои собственные наборы учетных данных.

    Когда робот клонируется или проверяет проект, он аутентифицирует к размещенному репозиторию с помощью «интерактивного с клавиатурой» метода аутентификации и реагирует на приглашения ко входу в систему от удаленной машины. Если имя пользователя встраивается в URL репозитория, оно всегда используется, вместо того, чтобы запросить робот его.

  • Ключи SSH: RSA (популярный тип шифрования) ключи может также использоваться для соединения с удаленным репозиторием, размещенным через SSH. Для сторонних решений для хостинга репозитория это часто - лучший и самый безопасный способ соединиться. Много решений для хостинга позволяют открытому ключу быть скопированным и вставленным в поле настроек учетной записи на их веб-сайте, чтобы позволить новому ключу соединяться.

    Каждый раз, когда возможно, лучше генерировать пару уникального ключа для каждого робота и копировать их открытые ключи в удаленный репозиторий. Это позволяет учетным данным робота быть прослеженными независимо. Для помощи XCode может генерировать уникальные ключи при установке робота. В этом сценарии XCode генерирует 2048-разрядную пару ключей RSA с секретным паролем и использует ту комбинацию каждый раз, когда робот проверяет или клонирует репозиторий. Также XCode может также использовать существующие ключи от локальной машины или вручную вводимые ключи. По умолчанию XCode рекомендует, чтобы существующие ключи были установлены в ~/.ssh/id_rsa. Эта рекомендация может быть переопределена путем ручной вставки новых ключей в надлежащие поля и обеспечения пароля.

О HTTPS

HTTPS предлагает некоторую гибкость, потому что этот протокол очень просто установить и работы в большей части сетевой среды. С HTTPS шифруются Ваши учетные данные аутентификации и транзакции, и Вам нужен допустимый сертификат, подписанный общедоступным центром сертификации. Если у Вас есть сертификаты SSL для сервера, HTTPS является хорошим, безопасным выбором. Однако может требоваться немного больше конфигурации, чем SSH, потому что веб-сервер должен работать для использования его.

Репозитории, к которым получают доступ по HTTPS, могут аутентифицироваться следующими способами:

  • Анонимный: В отличие от SSH, HTTPS поддерживает безопасный (при использовании SSL) транспорт без аутентификации. Эти репозитории не должны требовать никакой дополнительной установки при создании робота.

  • Имя пользователя и Пароль: Роботы могут также быть сконфигурированы для ответа на основные запросы Аутентификации HTTP с именем пользователя и паролем. Когда робот клонируется или проверяет проект от репозитория, любое имя пользователя или пароль, встраивающееся в URL репозитория, используется для аутентификации.

Рекомендуемое чтение

Обратитесь к следующим ресурсам для получения дополнительной информации о SSH и HTTPS:

Подключите к удаленным репозиториям от Вашей разработки Mac

Если у Вас есть проекты в репозиториях Мерзавца или Подрывной деятельности на удаленных серверах, можно сохранить учетные данные для них на разработке Mac в предпочтениях Учетных записей в XCode. Затем когда необходимо получить доступ к репозиториям, Вы не должны будете повторно входить в свои учетные данные каждый раз. Для Сервера XCode для выполнения интеграции на проектах это должно также иметь доступ к их репозиториям исходного кода. Вы обеспечите эти учетные данные при установке роботов как обсуждено в Конфигурируют Роботы для Выполнения Непрерывной Интеграции.

Добавить учетные данные удаленного репозитория к разработке Mac

  1. На Вашей разработке Mac выберите Xcode> Preferences.

  2. Нажмите Accounts на панели инструментов.

  3. Нажмите кнопку Add (+) и выберите Add Repository.

  4. В текстовом поле введите URL для репозитория (например, svn+ssh://svn.example.com/ProjectName или https://example.com/git/repository.git), и нажмите кнопку Next.

  5. В области Repository предпочтений Учетных записей введите свое имя пользователя и пароль.

Разместите репозитории мерзавца с сервером XCode

Если Ваши репозитории не размещаются на удаленном сервере, можно использовать Сервер Сервера и XCode OS X, чтобы создать и совместно использовать репозитории Мерзавца. Если Вы работаете над командой разработчиков, они могут также совместно использовать и управлять свои изменения кода в этих репозиториях, улучшая сотрудничество.

Сконфигурируйте Сервер Сервера и XCode OS X, чтобы создать размещенный репозиторий исходного кода и позволить членам команды получать доступ к нему.

Сконфигурировать доступ к репозиторию в Сервере XCode

  1. В списке Служб на боковой панели приложения Сервера выберите Xcode.

  2. Нажмите Repositories, и Вы будете видеть, что что-то вроде этого разделяет на области:

    image: ../art/server_repository_tab_2x.png

     

  3. Под Доступом нажмите кнопку Edit для конфигурирования, какие протоколы могут использоваться для доступа к размещенным репозиториям.

    image: ../art/server_repository_access_2x.png

    По умолчанию HTTPS выбран.

    Можно также выбрать SSH. При выборе SSH Xcode Server выводит на экран диалоговое окно, спрашивающее, позволить ли удаленный вход в систему с помощью SSH. Нажмите Allow.

  4. В области Access области Repositories нажмите кнопку Edit для выбора пользователей, которые могут создать размещенные репозитории.

    image: ../art/server_repository_permissions_2x.png
  5. В предпочтениях Учетных записей в XCode на Вашей разработке Mac добавьте свои учетные данные учетной записи для сервера (если Вы уже не сделали так).

Если Вы предоставляете доступ HTTPS, любому использующему HTTPS для доступа к размещенному репозиторию дарят диалоговое окно сертификата в XCode. Для доступа к репозиторию от разработки Mac нажмите Show Certificate, когда диалоговое окно сертификата появляется, выберите опцию Always Trust и нажмите Continue.

image: ../art/website_certificate_notice_2x.png

Если Вы работаете с командой разработчиков, можно дать им счета на доступ к репозиториям на сервере (как описано в Установленном Сервере XCode для Членов команды).

Клонируйте локальный репозиторий от своей разработки Mac к серверу

При использовании репозитория Мерзавца, локального для разработки Mac необходимо клонировать репозиторий к серверу, выполняющему Сервер XCode, таким образом позволив роботам воздействовать на репозиторий.

Клонировать локальный репозиторий к серверу, выполняющему Сервер XCode

  1. На Вашей разработке Mac откройте проект и выберите Source Control> ProjectName – BranchName> Конфигурируют ProjectName.

    image: ../art/xcode_configure_repository_2x.png
  2. Нажмите Remotes.

  3. Нажмите кнопку Add (+).

  4. Выберите Create New Remote.

    image: ../art/xcode_create_remote_repository_2x.png

     

  5. Выберите OS X Server, выполняющий Сервер XCode.

  6. Введите имя для удаленного репозитория.

    image: ../art/xcode_create_remote_repository2_2x.png

    Используйте любое имя, помогающее Вам идентифицировать репозиторий. Когда необходимо будет выбрать этот репозиторий, имя появится в списке Пультов ДУ на Вашей разработке Mac. Например, при выборе Push или Commit из меню Source Control имя появляется во всплывающем меню, позволяющем Вам указывать удаленный репозиторий.

  7. Нажмите Create.

    Клонированный репозиторий появляется в списке Репозиториев в Сервере XCode в Сервере OS X.

    image: ../art/server_remote_repository_2x.png

     

  8. Нажмите Done.

    Ваш локальный репозиторий копируется в сервер.

Если Вы работаете с командой разработчиков, можно сделать им отчеты на сервере для совместного использования репозитория также, как описано в Установленном Сервере XCode для Членов команды.

Создайте проект и разместите его репозиторий на сервере

При создании нового проекта на разработке Mac можно одновременно создать репозиторий для него непосредственно на сервере.

Создать проект с репозиторием Мерзавца на Сервере OS X, выполняющем Сервер XCode

  1. В предпочтениях Учетных записей в XCode на Вашей разработке Mac добавьте свои учетные данные учетной записи для сервера (если Вы уже не сделали так).

    По умолчанию Сервер XCode позволяет размещенным репозиториям создаваться зарегистрированными пользователями. Добавление Ваших учетных данных учетной записи для сервера в предпочтениях Учетных записей в XCode позволяет Вам входить в систему автоматически при создании репозитория Мерзавца на сервере.

  2. Выберите File> New> Project.

  3. Выберите шаблон для своего проекта и нажмите Далее.

  4. Укажите опции для проекта и нажмите Далее.

  5. Укажите расположение для локальной рабочей копии проекта.

  6. Для опции Source Control выберите «Create git repository on».

  7. Используйте всплывающее меню для выбора сервера, на котором можно разместить репозиторий.

    image: ../art/ChooseRemoteGit_2x.png

    Если сервер не появляется в списке, посмотрите — или попросите, чтобы администратор сервера посмотрел — в области Repositories Сервера XCode, чтобы видеть, есть ли у Вас разрешение создать репозиторий. В зависимости от того, как сконфигурирован Сервер XCode, размещенные репозитории могут быть созданы зарегистрированными пользователями, любым, или только указанными пользователями.

  8. Нажмите Create.

В Сервере OS X имя проекта появляется в Размещенном списке Репозиториев Сервера XCode. Если Вы работаете с командой разработчиков, можно сделать им отчеты для совместного использования репозитория (как описано в Установленном Сервере XCode для Членов команды).

Создайте репозитории мерзавца в сервере OS X, выполняющем сервер XCode, и получите доступ к ним от своей разработки Mac

Можно также создать репозитории Мерзавца с обеспечением совместного доступа непосредственно в Сервере OS X, это выполняет Сервер XCode. Вы и Ваши члены команды можете тогда указать на свои проекты и роботы к этим репозиториям.

Размещать новый репозиторий Мерзавца на сервере, выполняющем Сервер XCode

  1. В списке Служб на боковой панели приложения Сервера выберите Xcode.

  2. Нажмите Repositories.

  3. Нажмите кнопку Add (+).

  4. Введите имя для репозитория.

    image: ../art/server_create_repository_2x.png

     

    Используйте любое имя, помогающее Вам идентифицировать репозиторий. Это имя появится в Размещенном списке Репозиториев при настройках Xcode Server в приложении Сервера и будет частью доступа URL.

  5. Нажмите кнопку Edit для идентификации пользователей, разрешенных получить доступ к репозиторию через SSH.

    Выберите «logged in users» для предоставления доступа ко всем пользователям, которые могут войти в систему локального сервера или каталога.

    Выберите “Only some users" для установки списка доступа для пользователей на локальном сервере или в каталоге. Можно выбрать, кто может читать или кто может читать и записать в репозиторий.

  6. Если Вы хотите включить доступ HTTPS, установите флажок «Allow logged in users to read and write».

  7. Нажмите Create.

    Новый репозиторий появляется в Размещенном списке Репозиториев. Если Вы хотите изменить пользовательские права доступа позже, выберите репозиторий из Размещенных Репозиториев, перечисляют и нажимают кнопку Edit.

    Можно добавить учетные данные для этого репозитория к разработке Mac при помощи предпочтений Учетных записей в XCode на том Mac. Если Вы работаете с командой разработчиков, можно сделать им отчеты на сервере для совместного использования репозитория, как описано в Установленном Сервере XCode для Членов команды.

Если у Вас есть проект с существующим репозиторием Мерзавца на Вашей локальной разработке Mac, можно подключить его к репозиторию в Сервере OS X, это выполняет Сервер XCode. Таким образом, можно продвинуть изменения в сервере после фиксации.

Добавить репозиторий Мерзавца, размещенный Сервером Сервера и XCode OS X к проекту на разработке Mac

  1. На Вашей разработке Mac откройте проект и выберите Source Control > ProjectName – BranchName > Конфигурируют ProjectName.

  2. Нажмите Remotes.

  3. Нажмите кнопку Add (+).

  4. Выберите Add Remote.

    image: ../art/xcode_add_remote_2x.png

     

  5. Введите имя и адрес для удаленного репозитория.

    image: ../art/xcode_add_remote2_2x.png

    Можно найти адрес для удаленного репозитория в списке репозиториев в Сервере XCode.

  6. Нажмите Add Remote.

  7. Нажмите Done.

Продвиньте свои фиксации к размещенному репозиторию на сервере

После конфигурирования разработки Mac для использования репозитория Мерзавца на сервере, работа фиксации добавляет изменения в локальном репозитории. Как с любым удаленным репозиторием Мерзавца, необходимо также выполнить работу нажатия для добавления переданных изменений в репозитории на сервере. Например, при выборе Source Control > Commit на разработке Mac выберите опцию «Push to remote», укажите удаленный репозиторий во всплывающем меню и нажмите Commit Files и Push.

image: ../art/xcode_commit_push_to_remote_2x.png

Добавьте поддержку мерзавца существующему проекту XCode

При создании рабочей области XCode или проекта у Вас есть опция включения репозитория Мерзавца в сгенерированном каталоге рабочей области. Если Вы не выбирали ту опцию, Ваш каталог рабочей области не включает репозиторий Мерзавца, и Вы не можете использовать свой проект с Сервером XCode. Для разрешения этого вручную инициализируйте репозиторий Мерзавца в каталоге рабочей области.

Вручную инициализировать репозиторий Мерзавца в Вашем каталоге проекта

  1. В Терминальном приложении, выполненном git init команда в каталоге рабочей области.

    • cd <workspace_directory_path>
    • git init
  2. При желании создайте a .gitignore файл и добавляет любые файлы, которые требуется опустить от репозитория.

    • cat > .gitignore
    • <files_to_ignore>
    • ^D # Control-D
  3. Идентифицируйте файлы, которые Вы хотите отследить в репозитории с git add команда.

    • git add <files>
  4. Добавьте файлы к репозиторию с git commit команда.

    • git commit -m "<workspace_directory> initial commit"

Например, следующие команды инициализируют репозиторий Мерзавца в Sketch каталог рабочей области, идентифицируйте файлы в каталоге, который будет прослежен (исключая некоторых) и добавит файлы к недавно создаваемому репозиторию:

  • hedy: Desktop $ cd Sketch
  • hedy: Sketch $ git init
  • Initialized empty Git repository in /Users/ernest/Desktop/Sketch/.git/
  • hedy: Sketch $ cat > .gitignore
  • .DS_Store
  • xcuserdata
  • ^D # Control-D
  • hedy: Sketch $ git add .
  • hedy: Sketch $ git commit -m "Sketch initial commit"
  • [master (root-commit) db941e7] Sketch initial commit
  • 73 files changed, 13157 insertions(+)
  • create mode 100644 .gitignore
  • create mode 100644 Arrow.tiff
  • create mode 100644 Circle.tiff
  • ...

Чтобы позволить службе Xcode воздействовать на репозиторий, клонируйте репозиторий к своему серверу, как описано в Клоне Локальный репозиторий от Вашей Разработки Mac к Серверу.