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