Как использовать автоматическую подготовку для сборок iOS в конвейере Azure

#ios #cordova #ionic-framework #azure-pipelines

#iOS #кордова #ionic-framework #azure-конвейеры

Вопрос:

Я пытаюсь использовать автоматическую подготовку для сборок iOS. На моем Mac это работает правильно, но когда я попытался сделать это в Azure pipeline, я получаю следующую ошибку

 error: There are no accounts registered with Xcode. Add your developer account to Xcode (in target 'XXX' from project 'XXXX')
error: No profiles for 'com.devhaus.ljdev' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.XXXX'. (in target 'XXXX' from project 'XXXX')
  

В моем yaml у меня есть только InstallAppleCertificate задача, которая выполняется успешно

           - task: InstallAppleCertificate@2
            inputs:
              certSecureFile: $(p12File)
              certPwd: $(p12Password)

          - script: |
              npx run ionic build 
            displayName: "build"

          - script: |
              npx ionic cordova platform add ios@6
            displayName: "build for Apple"

# Didn't just do npx ionic cordova build ios here as there 
# is a bug that will cause the build to hang.

          - script: |
              npx cordova build ios --device
            displayName: "build for IOS"
  

Ответ №1:

В этой теме упоминается, что автоматическое подписание работает только для сборок разработки. вы не можете использовать автоматическую подпись в конвейере DevOps для распространения (ad hoc, app Store и т. Д.).

Однако вы всегда можете вручную подписать свою ios, указав параметры codeSignIdentity и provisioningProfile для команды сборки. Для приведенной ниже команды примера. См. раздел cordova document Подписание приложения

  npx cordova build ios --device --codeSignIdentity="$(APPLE_CERTIFICATE_SIGNING_IDENTITY)" --provisioningProfile="$(APPLE_PROV_PROFILE_UUID)"
  

При использовании задач «Установить сертификат Apple» и «Установить профиль подготовки Apple» для загрузки сертификата и профиля подготовки в конвейере Azure devops. Переменные $(APPLE_CERTIFICATE_SIGNING_IDENTITY) и $(APPLE_PROV_PROFILE_UUID) автоматически устанавливаются этими задачами, что позволяет напрямую обращаться к идентификатору подписи и UUID профиля подготовки. Смотрите Документ Microsoft здесь .

В поле удостоверения подписи введите $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Эта переменная автоматически устанавливается задачей установки сертификата Apple для выбранного вами сертификата.

В поле UUID профиля подготовки введите $(APPLE_PROV_PROFILE_UUID). Эта переменная автоматически устанавливается задачей Install Apple Provisioning Profile для выбранного вами профиля подготовки.