Частный репозиторий Cocapods в devops Pipelines - PullRequest
1 голос
/ 03 июля 2019

Работа с Azure Devops и iOS - это первое для меня. Я пытаюсь создать конвейер сборки в devops Azure для приложения для iOS, которое имеет несколько частных хранилищ cocoapods (PodXSource) и частное хранилище спецификаций (projectPodSpecsRepository).

Мне не удается выполнить задачу Azure Cocoapod. Я пробовал несколько способов, но ни один не работает. Я что-то упустил?

вот часть моего конвейера yaml:

- script: 
          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectCore/_git/projectPodSpecsRepository

          git config --global credential.helper store

          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectCore/_git/Pod1Source

          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectEvaluations/_git/Pod2Source

          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectEvaluations/_git/Pod3Source

          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectEvaluations/_git/Pod4Source

          git clone https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectEvaluations/_git/Pod5Source


- task: CocoaPods@0
  inputs:
    forceRepoUpdate: false

$(gitUser) и $(gitPat) оба являются секретами конвейера для целей проверки учетных данных.

Подфайл:

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

source 'https://dev.azure.com/happydump/projectCore/_git/projectPodSpecsRepository'
source 'https://github.com/CocoaPods/Specs.git'

target 'projectDemo' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for projectDemo
  pod 'Pod1'
  pod 'Pod2'
  pod 'Pod3'
  pod 'Pod4'
  pod 'Pod5'

end

Вот журнал из задачи CocoaPods:

##[section]Starting: CocoaPods
==============================================================================
Task         : CocoaPods
Description  : Install CocoaPods dependencies for Swift and Objective-C Cocoa projects
Version      : 0.151.1
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/cocoapods
==============================================================================
[command]/usr/local/lib/ruby/gems/2.6.0/bin/pod --version
1.7.1
[command]/usr/local/lib/ruby/gems/2.6.0/bin/pod install
[!] The version of CocoaPods used to generate the lockfile (1.7.3) is higher than the version of the current executable (1.7.1). Incompatibility issues may arise.
Analyzing dependencies
Adding spec repo `azure-happydump-projectcore-_git-projectpodspecsrepository` with CDN `https://dev.azure.com/happydump/projectCore/_git/projectPodSpec`
[!] Unable to add a source with url `https://dev.azure.com/happydump/projectCore/_git/projectPodSpec` named `azure-happydump-projectcore-_git-projectpodspecsrepository`.
You can try adding it manually in `/Users/vsts/.cocoapods/repos` or via `pod repo add`.
##[error]The process '/usr/local/lib/ruby/gems/2.6.0/bin/pod' failed with exit code 1
##[error]The 'pod' command failed with error: The process '/usr/local/lib/ruby/gems/2.6.0/bin/pod' failed with exit code 1
##[section]Finishing: CocoaPods

Я следовал по этой ссылке, чтобы попасть туда, но ничего не вышло.

Я не могу найти способ заставить эту работу. Спасибо за ваше время.

РЕДАКТИРОВАТЬ: использование gem install cocoapods в файле yaml просто удаляет предупреждение [!] The version of CocoaPods used to generate the lockfile (1.7.3) is higher than the version of the current executable (1.7.1). Incompatibility issues may arise., но не решает проблему.

EDIT2: использование pod repo add azure-happydump-projectcore-_git-projectpodspecsrepository https://$(gitUser):$(gitPat)@dev.azure.com/happydump/projectCore/_git/projectPodSpecsRepository тоже не помогает. Сообщение об ошибке из задачи CocoaPods просто изменится на ... [!] Unable to add a source with url https://dev.azure.com/happydump/projectCore/_git/projectPodSpec named azure-happydump-projectcore-_git-projectpodspecsrepository-1. ...

1 Ответ

1 голос
/ 09 июля 2019

Проблема возникла из-за разницы форматирования URL в файле Podfile.lock:

Podfile: https://dev.azure.com/happydump/projectCore/_git/projectPodSpecsRepository

Podfile.lock https://happydump@visualstudio.com/DefaulCollection/projectCore/_git/projectPodSpecsRepository

, возвращаяURL из Podfile.lock сделал свое дело!

...