热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《cocoapods找不到模拟器,podrepo推送失败》经验,为你挑选了4个好方法。

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

- 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,但我无法使用自己的机器.

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



1> Hitendra Sol..:

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

    须藤宝石更新cocoapods

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

    sudo gem卸载fourflusher

    须藤宝石安装fourflusher

    须藤宝石更新cocoapods


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

2> Pavlo Boiko..:

如果您安装了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.

    复制此文件的名称并致电: sudo vi /usr/local/lib/ruby/gems/2.5.0/gems/fourflusher-2.0.1/lib/fourflusher/find.rb

    I

    在文件末尾找到以Simulator.new(device, os_name, os_version).... 开头的行

    用此替换此行 Simulator.new(device, os_name, os_version) if device['availability'] == '(available)' || device['isAvailable'] == 'YES'

    :wq

    pod trunk push YourLibrary.podspec 应该管用.

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


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

3> Richard Chir..:

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

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

    同时检查可用性是否为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

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

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



4> Rebeloper..:

安装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.

请按照以下步骤解决:

    在查找器菜单中选择 Go/Go to Folder...

    贴入 /usr/local/lib/ruby/gems

    导航 {your gem version}/gems/fourflusher-{version}/lib/fourflusher/

    开放终端

    输入cd(cd和一个空格)

    拖放fourflusher文件夹(包含find.rb文件的文件夹)

    输入 sudo vi find.rb

    输入密码

    输入i以能够编辑文件

    一直向下滚动到文件中,直到看到 device['availability'] == '(available)' || device['isAvailable'] == 'YES'

    在此行上追加以下内容: || device['isAvailable'] == true

    现在看起来应该像这样:

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


推荐阅读
author-avatar
他妈的碧海连天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有