Cocoapods не может найти тренажеры, сбой подталкивания репо - PullRequest
0 голосов
/ 10 октября 2018

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

- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a ios simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one ios simulator listed or otherwise add one.) during validation.

Я работаю Xcode 10 , и Недавно на моей машине была Xcode 10.1 beta .Кроме того, у меня были обычные кокоаподы (1.5.3) и последняя бета-версия (1.6.0.beta.1).

Чтобы уменьшить сложность, я удалил обе беты с моей машины.Итак, только выпущенные версии.Я все еще вижу эту ошибку.

Я не могу представить, что здесь могло произойти.Но что-то не в порядке.Я бы действительно предпочел , а не полностью удалить Xcode или сделать что-то еще более радикальное.Но я полностью застрял.

Другие люди в моей команде могут взять код и сделать pod repo push, но я не могу с моей собственной машины.

Спасибо за любую помощь / совет.

Ответы [ 8 ]

0 голосов
/ 22 июня 2019

Я использовал CocoaPods с 1.7.1, затем я обновился до 1.7.2 и проблема ушла

sudo gem install cocoapods 
0 голосов
/ 05 июня 2019

После установки Xcode11-beta возникла та же проблема:

- ERROR | [iOS] unknown: Encountered an unknown error (Could not find aiossimulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least oneiossimulator listed or otherwise add one.) during validation.

Решена, выполнив следующие действия:

  1. В меню Finder выберите Go/Go to Folder...
  2. Вставить /usr/local/lib/ruby/gems
  3. Перейдите к {your gem version}/gems/fourflusher-{version}/lib/fourflusher/
  4. Открыть терминал
  5. Введите cd (компакт-диск и пробел)
  6. Перетащите папку fourflusher (в которой находится файл find.rb)
  7. Введите sudo vi find.rb
  8. Введите пароль
  9. Введите i, чтобы иметь возможность редактировать файл
  10. Прокрутите файл до конца, пока не увидите device['availability'] == '(available)' || device['isAvailable'] == 'YES'
  11. Добавьте к этой строке следующее: || device['isAvailable'] == true
  12. Теперь это должно выглядеть так:
devices.map do |device|
          if device['availability'] == '(available)' || device['isAvailable'] == 'YES' || device['isAvailable'] == true
            Simulator.new(device, os_name, os_version)
          end
        end
Введите :wq, чтобы сохранить файл Перейдите в папку с файлом .podspec Запустите pod lib lint, чтобы сохранить его, или pod trunk push, чтобы нажать его

Если вы что-то набрали неправильно или просто хотите полностью начать все сначала, вы должны удалить и установить fourflusher, например, так, прежде чем начать все заново с шага 1:

Удаление: sudo gem uninstall fourflusher

Установка: sudo gem install fourflusher

0 голосов
/ 08 июня 2019

У меня была такая же проблема, у меня работало обновление всех гемов: sudo gem update

0 голосов
/ 31 мая 2019

, даже если я пытаюсь использовать $ gem insall cocoapods, но версия cocoapods по-прежнему является младшей версией, наконец-то я нашел способ обновить ваши cocoapods

$ sudo gem install -n /usr/local/bin cocoapods --pre 

, а затем мои cocoapod --version показываются 1.7.1 замечательно, поэтому я исправляю вопрос!

0 голосов
/ 11 апреля 2019

Мне удалось воспроизвести эту проблему, когда я установил Xcode 10.1, Xcode 10.2 и CocoaPods 1.7.0.beta.3 на мой Mac.Я запускаю pod lib lint MyLibrary.podspec и получаю то же сообщение об ошибке, которое вы упомянули в своем вопросе.

Исправлено с помощью команды sudo xcode-select -s /Path/To/Xcode10_1.app, где /Path/To/Xcode10_1.app - это путь к Xcode 10.1.

Кубедитесь, что вы используете последнюю версию CocoaPods, попробуйте bundler .Создайте Gemfile со следующим содержимым:

source 'https://rubygems.org'
gem 'cocoapods', '1.7.0.beta.3'

После этого выполните bundle install && bundle exec pod repo push (или любое другое действие pod).

0 голосов
/ 20 марта 2019

выполните следующие шаги, это решило мою проблему для XCode 10.X и 11Beta

  1. Обновление sudo gem cocoapods

Если указано вышене будет работать для вашей системы, следуйте приведенным ниже 3 шагам, она наверняка будет работать

  1. sudo gem uninstall fourflusher
  2. sudo gem install fourflusher
  3. sudoобновление самоцвета cocoapods
0 голосов
/ 25 января 2019

Я получил эту ошибку после запуска бета-версии Xcode 10.2.К сожалению, предыдущие ответы не помогли устранить ошибку.Я не знаю точно, что изменилось, но я нашел обходной путь, чтобы заставить его работать:

  1. Найдите find.rb из fourflusher, который можно определить по местоположению ошибки после запуска pod trunk push команда.Что-то вроде: /usr/local/lib/ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb
  2. Перейдите в конец файла около if device['availability'] == '(available)'
  3. Прямо ниже, убедитесь, что установлены os_name и os_version.Если вы посмотрите в комментарии выше, он ожидает разбить # Sample string: iOS 9.3 на iOS и 9.3.В моем случае они были пустыми или что-то еще, поэтому я установил их сам.
  4. Также проверьте наличие по истине: || device['isAvailable'] == true

В конце эта часть выглядит следующим образом:

if device['availability'] == '(available)' || device['isAvailable'] == true
  os_name = "iOS"
  os_version = "12.1"
  Simulator.new(device, os_name, os_version)
end

ЭТО НЕ ПОСТОЯННОЕ РЕШЕНИЕ !!!Просто пока я работал, пока то, что изменилось в бета-версии Xcode 10.2, не будет официально поддержано cocoapods.

Я заметил тогда, когда вы запускаете xcrun simctl list -j на Mac, который никогда не устанавливал бета-версию, у вас есть ОС.имена вроде com.apple.CoreSimulator.SimRuntime.iOS-12-1 и iOS 12.1.

После установки Xcode 10.2 я все еще вижу com.apple.CoreSimulator.SimRuntime.iOS-12-1, но один iOS 12.1 пропал.Я предполагаю, что find.rb использовал последний, чтобы найти значения os_name и os_version.Вот почему я установил их сам.

Надеюсь, это поможет другим людям, удачи!

0 голосов
/ 11 октября 2018

Если у вас установлен Xcode 10.1, _even, если Xcode 10.0 установлен в качестве версии Xcode по умолчанию, выходные данные из simctl имеют другой формат, особенно для доступности.Остальные поля кажутся одинаковыми, только не это.Вы можете увидеть этот JSON, вызывающий xcrun simctl list -j.И Cocoapods еще не обновляют свою оболочку до этого формата.

Я подготовил временное пошаговое исправление этой проблемы.Это работает для меня.

В журнале найдите эту строку - ERROR | [iOS] unknown: Encountered an unknown error (Could not find a ios simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one ios simulator listed or otherwise add one.

Под ней вы увидите такую ​​строку: /usr/local/lib/ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb.

  1. Скопируйте имя этого файла и позвоните: sudo vi /usr/local/lib/ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb
  2. Нажмите I
  3. В конце файла найдите строку, начинающуюся с Simulator.new(device, os_name, os_version) ....
  4. Замените эту строку на Simulator.new(device, os_name, os_version) if device['availability'] == '(available)' || device['isAvailable'] == 'YES'
  5. Нажмите :wq
  6. pod trunk push YourLibrary.podspec должно работать.

Если что-то не работает, пожалуйста,ответить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...