作者:他妈的碧海连天 | 来源:互联网 | 2022-12-02 16:13
我正试图推出一个私人吊舱.当我这样做时,我收到此错误:
- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a
ios simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one
iossimulator 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 a
ios simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one
iossimulator 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.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
.在我的情况下,他们是空的或其他东西,所以我自己设置.
同时检查可用性是否为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_name
和os_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