DevOps XCode@5 не создает файл .ipa

У меня есть приложение Capacitor, которое я пытаюсь создать с помощью DevOps с помощью задачи xcode@5. Однако я не получаю создание .ipa после завершения задачи. Что мне не хватает? Есть ли еще одна задача, которую мне нужно запустить после задачи xcode?

  - task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 'App'
    sdk: 'iphoneos'
    configuration: 'Release'
    xcWorkspacePath: '**/App.xcworkspace'
    xcodeVersion: 'default'
    packageApp: true
    signingOption: 'manual'
    provisioningProfileUuid: 'xxxxxx-xxxxx-xxx-xxx-xxxxxxxxx'
    archivePath: "$(System.DefaultWorkingDirectory)/archive"
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
136
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кажется, вы не установили вход Signing identity в своей задаче.

Приложение Xcode должно быть подписано и подготовлено для запуска на устройстве или для публикации в App Store. Для этого требуется сертификат подписи P12 и хотя бы один профиль обеспечения. Задачи «Установить сертификат Apple» и «Установить профиль обеспечения Apple» предназначены для обеспечения Xcode этими необходимыми вещами в процессе сборки.

- task: InstallAppleCertificate@2
    inputs:
      certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
      certPwd: '$(P12password)'
- task: InstallAppleProvisioningProfile@1
    inputs:
      provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

После этого вы можете проверить параметр пути к архиву для задачи Xcode. Файл ipa помещается в папку, определенную в archive path. Вы можете добавить задачи «Копировать файлы» и «Публиковать артефакты сборки», чтобы сохранить IPA вместе с записью сборки или протестировать и развернуть его в последующих конвейерах.

- task: CopyFiles@2
  inputs:
    contents: '**/*.ipa'
    targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

Ознакомьтесь с этим документом Создавайте, тестируйте и развертывайте приложения Xcode и Подпишите свое приложение Apple iOS, macOS, tvOS или watchOS, чтобы узнать, как создавать и развертывать проекты Xcode с помощью Azure Pipelines.

Я добавил InstallAppleCertificate и получаю сообщение об ошибке.... ##[error]Ошибка: /opt/homebrew/bin/openssl не удалось с кодом возврата: 1 Я попробовал добавить обработку цепочки ключей, deleteCert и -legacy для openssl, но Я все еще получаю эту ошибку, несмотря ни на что.

Adam 04.06.2024 21:41

Привет, Адам, пожалуйста, попробуйте выполнить подробные действия, описанные в другом ответе Кевина, и посмотрите, сохраняется ли ошибка. Если вы используете локальный агент, вы также можете попробовать использовать агент, размещенный Microsoft: pool: vmImage: macos-latest.

Miao Tian-MSFT 05.06.2024 07:11
Ответ принят как подходящий

Чтобы создать пакет IPA, вам необходимо использовать файл сертификата .P12 и профиль обеспечения для подписи пакета.

Вот шаги:

Создать сертификат

Шаг 1. Войдите на сайт Developer.apple.com/account/resources и выберите вкладку «Сертификаты».

Шаг 2. Создайте новые сертификаты или выберите существующий сертификат. Затем загрузите его (.cer файл) на свой локальный компьютер.

Шаг 3. Дважды щелкните файл .cer, чтобы установить сертификат, и перейдите к Keychain Access (локальный компьютер Mac), чтобы найти недавно установленный сертификат.

Шаг 4: Экспортируйте файл .P12 и установите пароль.

Создать профиль обеспечения

Шаг 1. Войдите на сайт Developer.apple.com/account/resources и выберите вкладку «Профили».

Шаг 2: Создайте новые профили. Выберите IOS App Development -> Apple ID, как и раньше.

Шаг 3: При выборе сертификата вам необходимо выбрать соответствующий сертификат, загруженный на предыдущем шаге.

Это ключевой шаг. Вам необходимо выбрать тот же сертификат, что и созданный файл .p12.

Например:

Шаг 4. Загрузите профиль обеспечения.

Наконец, вы можете загрузить новый файл XX.p12 и профиль обеспечения в безопасный файл Azure Devops (Pipelines -> Library -> Secure files). Тогда вы сможете использовать их в конвейере.

Например:

steps:
- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: 'my-secure-file.p12' 
    certPwd: '$(P12password)'
- task: InstallAppleProvisioningProfile@1
  inputs:
    provProfileSecureFile: 'my-provisioning-profile.mobileprovision' 
- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 'App'
    sdk: 'iphoneos'
    configuration: 'Release'
    xcWorkspacePath: '**/App.xcworkspace'
    xcodeVersion: 'default'
    packageApp: true
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
    archivePath: "$(System.DefaultWorkingDirectory)/archive"

Примечание. certSecureFile и provProfileSecureFile — это атрибуты имени файла .p12 и .mobileprovision в Secure Files.

certPwd относится к переменной конвейера или группе переменных. Он сохранит пароль, который вы установили на этапе #Create certificate.

Результат:

Другие вопросы по теме