xcode flipper:桌面无法提供证书,flipper桌面出错

rxztt3cl  于 2022-11-18  发布在  其他
关注(0)|答案(4)|浏览(930)

当我试图从xcode运行ios应用程序时,得到一个flipper错误日志。

flipper: Desktop failed to provide certificates. Error from flipper desktop:
rsocket::StreamInterruptedException: connection error

应用程序运行正常,未发现任何问题。但此日志每1秒出现一次。
是否有任何方法可以解决此问题?

uajslkp6

uajslkp61#

我也遇到过同样的问题,我终于找到了解决这个问题的方法。我想你在真实的的iOS设备上调试应用程序时会遇到这个错误。以下是我采取的步骤。
1.你需要在后台运行Flipper Desktop。它有一个集成的React-devtools插件。从fbflipper.com下载它。按照他们文档上的说明操作,它很简单,也很直接。
1.此时,您将不会收到相同的错误消息。(它会说证书没问题。)但是,如果遇到任何有关idb二进制位置的问题(我在我的M1机器上就是这样做的),这个新消息会每秒弹出一次,Flipper界面会告诉你设备没有找到。只要确保找到正确的idb二进制位置并配置它,重新启动Flipper,这将是一个为所有人解决的问题。我的是在“/opt/homebrew/bin/idb”。

g6ll5ycj

g6ll5ycj2#

打开Flipper〉设置〉启用物理iOS设备

unhi4e5o

unhi4e5o3#

只是把所有的东西都放在一起,因为我很难处理这个问题...
1.打开Flipper。单击左下角的齿轮图标,然后单击设置
1.确保启用**“启用物理iOS设备”选项。
1.在
“IDB binary location”上,你可能会看到一个警告符号()️,如果是这样的话,这意味着你没有一个idb客户端或者它的位置不正确。
1.按照ALL these steps安装idb companion和idb客户端。
1.如果没有python安装:brew install python3。然后尝试重复步骤4。
1.如果一切正常,你的
idbidb-companion**应该位于“/opt/homebrew/bin”。现在你可以回到Flipper〉Gear Icon〉Settings,粘贴路径“/opt/homebrew/bin/idb”,右边的警告符号(️)就会消失。
1.如果你仍然有警告标志,那就意味着你的idb文件没有在正确的位置。在this git post中有几个替代方案可以解决这个问题,所以看看它们吧。

owfi6suc

owfi6suc4#

TL:DR;

X1 M0 N1 X是为较新的Swift环境构建的,但我仍然在使用Big Sur。升级我的MacOS后,Flipper成功地连接到我的iOS设备上。
当然,我在下面解释了我从源代码构建idb,以匹配idb_companionidb1.1.8版本。
下面我还解释了我是如何发现崩溃的错误idb_companion阻止Flipper保持稳定的连接和重新启动几次产生的消息:[conn] ... restarted 4 times in 20 seconds .
我学到了什么:

  • idb_companion 作为服务器在后台运行在我的Mac上,它知道如何控制或从iOS物理设备获取日志;
  • idb 是Flipper可用于与 idb_companion 通信的命令行界面。

我可以使用Homebrew安装idb_companion@1.1.8,但是我不能为cli(aka idb(aka fb-idb))安装相同版本的1.1.8
所以我决定从github repo构建idb

pip3.9 install .

首先,我遇到了一个与grpclib版本相关的错误。显然idb需要0.4.1版本,但我已经安装了0.4.3。为了降级grpclib,我使用了以下命令:

pip3.9 install grpclib==0.4.1

我还试图确保没有其他grpclib安装在其他python版本中,所以我运行了一堆

pip3 install grpclib==0.4.1
pip3.7 install grpclib==0.4.1
pip3.9 install grpclib==0.4.1

为了查看我使用的是哪个版本的python,我运行了一系列

which pip
which pip3
which pip3.6
which pip3.7
which pip3.8
which pip3.9
which pip3.10

无论如何......当我随机尝试使用不同的python版本构建idb时,无论是否使用sudo,我都遇到了以下错误,只需在build命令中再次添加sudo即可修复该错误。

ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/Users/alexandrelage/Library/Python/3.9/lib'
Check the permissions.

总之...
基本上,在修复了grpclib需求之后,源文件夹中的pip3.9 install .足以构建idb(客户端,版本1.1.8)。
当然,我不得不去Flipper〉〉设置并更新IDB路径。一切看起来都很好。
不幸的是,这还不够,Flipper继续尝试连接到我的iPhone设备,但没有成功。然后我复制了Flipper试图运行的idb命令:

/Library/Frameworks/Python.framework/Versions/3.7/bin/idb file pull --log DEBUG --udid 00008020-000A7D2C36DUMMYDUMMY --bundle-id org.reactjs.native.example.MyExample 'Library/Application Support/sonar/app.csr' '/var/folders/r6/xrp3nw8j4wj45mvdpnlzlv740000gn/T/tmp-10199-CW6olKXUvwek/app.csr'

我很幸运地运行了上面的命令,同时我也在另一个选项卡上运行idb_companion。我用来手动启动idb_companion的命令是:

idb_companion --uidid 00008020-000A7D2C36DUMMYDUMMY

我很幸运,因为我注意到当我尝试运行从Flipper复制的idb(客户端)命令时,idb_companion标签停止运行。我再次重启idb_companion,并尝试再次运行idb(客户端)命令。然后我意识到idb_companion崩溃,并显示一条错误消息:

...
2022-10-21 18:14:11.853-0300 Starting swift server on tcp port 10882
2022-10-21 18:14:11.854-0300 Swift server started on [IPv6]::/:::10882
{"grpc_swift_port":10882,"grpc_port":10882}
2022-10-21 18:14:11.854-0300 Companion will stay alive if target goes offline
2022-10-21 18:14:30.997-0300 Start of connect
dyld: lazy symbol binding failed: 
can't resolve symbol _$sScCMa in 
/usr/local/Cellar/idb-companion/1.1.8/bin/../Frameworks/IDBGRPCSwift.framework/Versions/A/IDBGRPCSwift 
because dependent dylib @rpath/libswift_Concurrency.dylib could not be loaded
dyld: can't resolve symbol _$sScCMa in 
/usr/local/Cellar/idb-companion/1.1.8/bin/../Frameworks/IDBGRPCSwift.framework/Versions/A/IDBGRPCSwift 
because dependent dylib @rpath/libswift_Concurrency.dylib could not be loaded

这表明还有其他问题。看起来idb_companion是为Swift环境构建的,与我的不同。我在Google上查找了这个错误,发现我的XCode已经过时了。事实上,我仍然在使用Big Sur
现在我把我的MacOS升级到了Montrey,Flipper成功地连接到了我的iOS设备上,我甚至还没有升级我的XCode。

相关问题