skip to Main Content

Getting a flipper error log while i am trying to run ios app from xcode.

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

App is working smoothly, no issues found. But this log is coming in every 1 second.

Is there any way to fix this issue?

4

Answers


  1. I had the same issue and I finally found a way to resolve this.
    I assume you’re getting this error when you try to debug your app with a real iOS device.
    These are the steps I took.

    1. You need to run Flipper Desktop on your background. It has an integrated React-devtools plugin. Download it from fbflipper.com. Follow the instructions on their docs it’s simple and quite straightforward.
    2. At this point you won’t have the same error message. (It will say that the certificate is ok.) However, if you encounter any issues with idb binary location (which I did on my M1 machine), this new message will pop every second and Flipper interface will tell you that the device is not found. Just make sure to find the right idb binary location and configure it, restart Flipper, and this will be resolved one and for all. Mine was in "/opt/homebrew/bin/idb".
    Login or Signup to reply.
  2. Open Flipper > Settings > Enable physical iOS devices

    Login or Signup to reply.
  3. Just grouping everything together, because I had a hard time with this issue…

    1. Open Flipper. In the lower-left corner, click on the gear icon and then on Settings.
    2. Be sure to enable the "Enable physical iOS devices" option.
    3. On "IDB binary location", you’ll probably see an alert sign (⚠️). If that is the case, it means you do not have an idb client or it is not right located.
    4. Follow ALL these steps to install the idb companion and idb client.
    5. If you do not have python install: brew install python3. Then try to repeat step 4.
    6. If everything went right, your idb and idb-companion should be located at "/opt/homebrew/bin". So now you can go back to Flipper > Gear Icon > Settings, paste the path "/opt/homebrew/bin/idb" and the alert sign (⚠️) on the right will disappear.
    7. If you still have the alert sign it means your idb file is not in the right location. There are several alternatives in this git post that solve this issue, so check them out.
    Login or Signup to reply.
  4. TL: DR;

    idb_companion was built for newer Swift enviroments, but I was still using Big Sur. After upgrading my MacOS, Flipper managed to connect to my iOS device fine.

    Of course I explain below that I build idb from the source to match the version 1.1.8 for both idb_companion and idb.

    Below I also explain how I found the error that was crashing idb_companion preventing Flipper from maintaining a stable connection and restarting several times yielding the message: [conn] ... restarted 4 times in 20 seconds.


    What I learned:

    • idb_companion runs on my Mac in the background as a server that knows how to control or get logs from iOS physical devices;
    • idb is a command line interface that Flipper can use for communicating with idb_companion.

    I was able to install [email protected] using Homebrew. But I was not able to install the same version 1.1.8 for the cli (aka idb (aka fb-idb)).

    So I decided to build the idb from the github repo. The command line for building it was

    pip3.9 install .
    

    First I struggled with an error related to grpclib version. Apparently idb required the version 0.4.1 but I had 0.4.3 installed. To downgrade grpclib I used the following command:

    pip3.9 install grpclib==0.4.1
    

    I also tried to make sure there was no other grpclib installed in other python version, so I ran a bunch of

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

    To see which version of python I had, I ran a bunch of

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

    Anyways…
    As I was randomly trying to build idb with those different python versions, with and without sudo, I also faced the following error, which was fixed just by adding sudo again to the build command.

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

    Anyways…

    Basically after fixing the grpclib requirement, pip3.9 install . inside the source folder was enough for building idb (client, on version 1.1.8).

    Of course I had to go to Flipper >> Settings and update the idb path. All seemed good.

    Unfortunately that was not enough, Flipper kept on trying to connect to my iPhone device with no success. Then I copied the idb command Flipper was trying to run:

    /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'
    

    I was lucky to run the command above while I was also running idb_companion on another tab. The command I used to manually start idb_companion was:

    idb_companion --uidid 00008020-000A7D2C36DUMMYDUMMY
    

    I was lucky because I noticed the idb_companion tab stopped running when I tried to run the idb (client) command above I copied from Flipper. I restarted idb_companion again and tried to run the idb (client) command again. Then I realized idb_companion was crashing with an error message:

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

    That indicated there was something else going on. It seemed idb_companion was built for a Swift environment different to mine. I looked for this error on Google and realized my XCode was outdated. In fact I was still using Big Sur.

    Now I upgraded my MacOS to Montrey, Flipper manages to connect to my iOS device fine. And I haven’t even upgraded my XCode yet.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search