Перейти к содержимому

Подпись сборки

Сборка, подготовленная для App Store или TestFlight, через Uply не установится. iPhone ответит ошибкой «не удалось проверить его целостность». Это самая частая ошибка при первой загрузке.

Uply не подписывает и не переподписывает сборки: на устройство попадает ровно тот файл, который вы загрузили. Поэтому для Uply IPA экспортируют отдельно — методом Ad Hoc. В Xcode 15 и новее он называется Release Testing. Архив можно взять тот же, что для TestFlight: пересобирать приложение не нужно.

Какая подпись подходит

МетодПодходит для UplyНа какие устройства ставится
Ad Hoc (в Xcode 15 и новее называется «Release Testing»)✅ ДаТолько на устройства, чьи UDID вшиты в профиль. До 100 устройств каждого типа в год
Enterprise (In-House, нужно членство в Apple Developer Enterprise Program)✅ ДаНа любые устройства
App Store Connect / TestFlight (в том числе «TestFlight Internal Only»)❌ НетЧерез Uply — ни на какие. У профиля нет списка устройств, и iOS откажет с ошибкой «не удалось проверить его целостность». Такие сборки ставятся только через App Store и TestFlight
Схема выбора метода подписи. Сборка для App Store и TestFlight идёт методом App Store Connect и через Uply не установится. Сборка для тестировщиков через Uply идёт методом Release Testing (Ad Hoc) или Enterprise и подходит.

Как понять, какая подпись у сборки

Есть два способа: проверить сборку после загрузки в Uply или до неё, на Mac.

После загрузки в Uply:

  • В консоли откройте сборку и найдите поле «Тип профиля».
  • В приложении Uply для тестировщиков откройте страницу сборки, раскройте секцию «Подпись и сертификат» и найдите поле «Тип профиля».

Подходят Ad Hoc и Корпоративный. Если в консоли указано «Разработка / App Store», а в приложении для тестировщиков — «unsupported», сборка не установится. Экспортируйте её заново методом Release Testing (Ad Hoc) по инструкции ниже.

Как подготовить сборку для Uply

Сборка Ad Hoc установится только на устройства, которые вшиты в её профиль. Поэтому сначала устройства регистрируют у Apple, затем создают профиль и в конце экспортируют IPA с этим профилем.

Шаг 1. Зарегистрируйте устройства тестировщиков у Apple

Сначала тестировщики регистрируют устройства в Uply, и их UDID появляются в консоли. Откройте в консоли вкладку «Apple-устройства» команды или проекта и нажмите «Экспорт для Apple». Затем добавьте устройства в Apple Developer Portal: Certificates, Identifiers & Profiles → Devices → «+».

Подробности — на странице Apple-устройства.

Шаг 2. Создайте профиль Ad Hoc (provisioning profile)

  1. Откройте developer.apple.com/account → Certificates, Identifiers & Profiles → Profiles → нажмите «+».

  2. В блоке Distribution выберите Ad Hoc и нажмите Continue. Не выбирайте App Store Connect.

  3. Выберите App ID приложения. Его Bundle ID должен совпадать с Bundle ID в Xcode. Нажмите Continue.

  4. Выберите сертификат Apple Distribution. Подойдёт тот же, что для App Store. В старых аккаунтах сертификат называется iOS Distribution. Нажмите Continue.

  5. Отметьте устройства тестировщиков. Можно нажать Select All. Нажмите Continue.

  6. Задайте имя, например My App Ad Hoc. Нажмите Generate, затем Download. Откройте скачанный файл двойным щелчком, и Xcode установит профиль.

Шаг 3. Экспортируйте IPA методом Release Testing (Ad Hoc)

  1. В Xcode выберите Product → Archive. Когда архив готов, откроется Organizer. Если он не открылся, выберите Window → Organizer и перейдите на вкладку Archives.

  2. Выберите архив и нажмите Distribute App.

  3. В окне выбора метода выберите Release Testing. Это и есть Ad Hoc. Не выбирайте App Store Connect и TestFlight Internal Only: такая IPA через Uply не установится. В Xcode 14 и более ранних версиях этот пункт называется Ad Hoc.

  4. Если вы создали профиль вручную в шаге 2, выберите Custom → Release Testing → Manually manage signing и укажите этот профиль. При автоматической подписи Xcode подберёт или создаст профиль сам.

  5. Перед экспортом в поле App Thinning выберите None. Иначе Xcode положит в папку Apps несколько файлов: универсальный Имя.ipa и варианты Имя-XXXX.ipa под отдельные модели. Uply нужен только универсальный файл без суффикса, варианты можно удалить.

  6. Нажмите Export и выберите папку. В ней появится файл .ipa. Его и загружайте в Uply: через консоль или CLI.

Экспорт из CI (xcodebuild, fastlane)

xcodebuild. Создайте файл exportOptions.plist с методом release-testing:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>release-testing</string>
</dict>
</plist>

Запустите экспорт:

Окно терминала
xcodebuild -exportArchive -archivePath App.xcarchive -exportOptionsPlist exportOptions.plist -exportPath out/

В Xcode 15.4 и новее используйте release-testing. В более старых версиях используйте ad-hoc. Xcode 15.4 и новее выдаёт на ad-hoc предупреждение об устаревании.

fastlane. Укажите метод Ad Hoc в gym:

gym(export_method: "ad-hoc")

fastlane сам подставит актуальное имя метода для вашей версии Xcode.

Как загрузить IPA в Uply из CI, см. на странице CI/CD.

Когда появился новый тестировщик

  1. Попросите тестировщика зарегистрировать устройство в Uply. Его UDID появится в консоли на вкладке «Apple-устройства».

  2. Добавьте UDID у Apple: Devices → «+».

  3. Обновите профиль: Profiles → выберите профиль Ad Hoc → Edit → отметьте новое устройство → Generate → Download.

  4. Экспортируйте тот же архив заново методом Release Testing (Ad Hoc). Пересобирать приложение не нужно.

  5. Загрузите новую IPA в Uply через консоль или CLI.

Подробнее о списке устройств — на странице Apple-устройства.