cocoapods找不到模拟器,pod repo推送失败

Dan*_*row 42 xcode cocoapods

我正试图推出一个私人吊舱.当我这样做时,我收到此错误:

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

我跑的Xcode 10,我最近的Xcode 10.1测试版我的机器上.此外,我有常规的cocoapods(1.5.3)和最新的测试版(1.6.0.beta.1).

为了降低复杂性,我从我的机器中删除了两个测试版.所以,只是发布的版本.我仍然看到这个错误.

我无法想象这里发生了什么.但有些事情是不可能的.我真的更愿意完全删除Xcode,或者做一些更激烈的事情.但我完全陷入困境.

我团队中的其他人能够提取代码,然后执行操作pod repo push,但我无法使用自己的机器.

感谢您提供任何帮助/建议.

Hit*_*nki 57

执行以下步骤可以解决我的XCode 10.X和11.X问题

  1. 须藤宝石更新cocoapods

如果上述方法对您的系统不起作用,请按照以下3个步骤操作,它肯定可以工作

  1. sudo gem卸载fourflusher
  2. 须藤宝石安装fourflusher
  3. 须藤宝石更新cocoapods

  • 只需将cocoapods更新到1.6.0或更高版本,就足以实现Xcode 10.2兼容性。 (5认同)
  • 刚刚更新了cocoapods版本,效果很好。 (4认同)
  • 这对我也很有效,应该接受解决方案。 (3认同)

Pav*_*iko 26

如果您安装了Xcode 10.1,即使Xcode 10.0设置为Xcode的默认版本,输出也会simctl有不同的格式,特别是对于可用性.其余的字段似乎是相同的,只是不是这一个.你可以看到这个JSON调用xcrun simctl list -j.而Cocoapods还没有将它们的包装更新为这种格式.

我准备了这个问题的临时 step-to-spet Hotfix.它适合我.

在日志中找到此行- ERROR | [iOS] unknown: Encountered an unknown error (Could not find aios simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least oneiossimulator 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 应该管用.

如果有什么不起作用,请回复.

  • 要在安装Xcode 11之后解决此问题,请替换`device ['availability'] =='(available)'|| device ['isAvailable'] =='YES'`和device ['availability'] =='(available)'|| device ['isAvailable'] =='YES'|| device ['isAvailable'] == true`-来自@JoGoFo。谢谢 (9认同)
  • 我想添加某人的'ruby/gems`目录可能会有所不同.使用`gem env`列出您的GEM路径.例如,我在`/ Library/Ruby/Gems/2.3.0`中.这也是fourflusher中的补丁:https://github.com/CocoaPods/fourflusher/pull/11 (4认同)
  • Xcode 10.1和Xcode 10.2兼容性在cocoapods 1.6.0和更高版本中已得到修复。 (4认同)
  • `gem fourfoursher`找到Fourflusher。 (2认同)

Ric*_*ino 14

运行Xcode 10.2测试版后,我收到此错误.不幸的是,之前的答案没有让错误消失.我不知道究竟发生了什么变化,但我找到了一个解决方法来让它工作:

  1. 找到find.rbfourflusher,你可以通过在错误的位置告诉运行后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_nameos_version设置好.如果你查看上面的评论,它希望# Sample string: iOS 9.3分成iOS9.3.在我的情况下,他们是空的或其他东西,所以我自己设置.
  4. 同时检查可用性是否为true: || 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
Run Code Online (Sandbox Code Playgroud)

这不是永久解决方案!这就是我现在的工作方式,直到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_nameos_version值.这就是我自己设置的原因.

希望这有助于其他人,祝你好运!


Reb*_*per 6

安装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. 在查找器菜单中选择 Go/Go to Folder...
  2. 贴入 /usr/local/lib/ruby/gems
  3. 导航 {your gem version}/gems/fourflusher-{version}/lib/fourflusher/
  4. 开放终端
  5. 输入cd(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
Run Code Online (Sandbox Code Playgroud)
  1. 输入:wq以保存文件
  2. 导航到您的.podspec文件夹
  3. 跑去pod lib lint皮棉或pod trunk push推它

如果您输错了什么或者只是想完全重新开始,则应fourflusher从步骤1重新开始之前先进行卸载和安装,如下所示:

卸载: sudo gem uninstall fourflusher

安装: sudo gem install fourflusher