dryark / stf_ios_support

Central repo to connect and document components/repos needed for IOS stf support
Other
153 stars 65 forks source link

Project unmaintained - Superseded by alternative project #94

Closed nanoscopic closed 1 year ago

nanoscopic commented 3 years ago

As the sole creator and maintainer of this project, I am abandoning it. It isn't worth maintaining because... I've written a replacement for it that is better.

The replacement is called "Control Floor". It replaces STF entirely with a new Golang application.

There isn't any documentation for it yet, but internal builds of it are already working better for me that stf_ios_support ever worked in combination with STF.

The new projects that make up Control Floor are the following:

ios_remote_provider is a the replacement for this repo, and is a provider that runs on mac to provider iOS devices to the Control Floor server.

The server side is a single Go program that can run on either MacOS or Linux ( or wherever Golang works for that matter ) It has no external dependencies ( aside from all the various Golang libraries it uses... )

ios_remote_provider needs a few things to work:

iOS devices need to have the ios_video_app installed on them and activated.

In order to avoid problems with libimobiledevice, it isn't used.

--

Since there are not yet any instructions on how to setup Control Floor, here is a temporary list of instructions:

Example config.json file for ios_remote_provider:

{
    bin_paths: {
        ios-deploy: "bin/ios-deploy",
        mobiledevice: "bin/mobiledevice"
    },
    controlfloor: {
        host: "[hostname of your server]:8080",
        username: "[some name for your provider node]",
    }
    port: 8027
}

Diagram of architecture of Control Floor attached. ControlFloor

DeVon30135 commented 3 years ago

Hello @nanoscopic. I was going to try and use your new tool, but ran into an issue when trying to use ios-deploy. When building with the specified command "gcc ios-deploy.m -o ios-deploy -F ./ -framework Foundation -framework CoreFoundation -framework MobileDevice" I'm met with an error: Undefined symbols for architecture x86_64: "_curl_easy_cleanup", referenced from: _notify_connect in ios-deploy-bf96a1.o _notify_disconnect in ios-deploy-bf96a1.o "_curl_easy_init", referenced from: _notify_connect in ios-deploy-bf96a1.o _notify_disconnect in ios-deploy-bf96a1.o "_curl_easy_perform", referenced from: _notify_connect in ios-deploy-bf96a1.o _notify_disconnect in ios-deploy-bf96a1.o "_curl_easy_setopt", referenced from: _notify_connect in ios-deploy-bf96a1.o _notify_disconnect in ios-deploy-bf96a1.o "_curl_easy_strerror", referenced from: _notify_connect in ios-deploy-bf96a1.o _notify_disconnect in ios-deploy-bf96a1.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

I did a little digging and it seemed like it could have been due to an older version of gcc, so I installed a newer version via homebrew and tried again only to find a different issue: ios-deploy.m:1:42: fatal error: CoreFoundation/CoreFoundation.h: No such file or directory

import <CoreFoundation/CoreFoundation.h>

                                      ^

compilation terminated.

Do you have a unique setup for your GCC or have any clue what the issue may be? I'm on OSX 10.15.7

nanoscopic commented 3 years ago

You have to brew install libcurl to be able to build my changed version of ios-deploy. Failed to mention this. It doesn't matter any more though as I just updated the whole project to no longer use mobiledevice or ios-deploy. Instead iosif is used: https://github.com/nanoscopic/iosif

Build iosif and place it's binary into the bin/ folder.

anamgangwar commented 3 years ago

Hi I am trying to set this up on MAC machine. First of all I am facing the issue 'x509: certificate is valid' while building controlfloor

nanoscopic commented 3 years ago

@anamgangwar Please create an issue on the controlfloor repo instead of tacking a comment here. This issue is not the proper place for it.

The built-in pre-generated certificate has expired. Run ./gencert.pl to generate a new self-signed certificate, or better yet generate a certificate for your domain through letsencrypt. Self-signed certs are fine for testing but should not be used for production.

linhvv12 commented 2 years ago

Pls. i have a question. how much MacOS version do you have?

linhvv12 commented 2 years ago

Please help me with error:

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x430b81d]

goroutine 50 [running]: main.(GIDev).tunnel(0x1fa6?, {0xc00002c9e0?, 0x0?, 0x0?}, 0x0?) /Users/linhvv/devops/ios_remote_provider/bridge_goios.go:174 +0x1d main.(CFA).start(0xc0001b34a0, 0x0) /Users/linhvv/devops/ios_remote_provider/cfa.go:193 +0xd7 main.NewCFA(0xc000190d00, 0x0?, 0xc000191d40) /Users/linhvv/devops/ios_remote_provider/cfa.go:39 +0x59

nanoscopic commented 1 year ago

@linhvv12 Not sure about that error offhand. If you are still interested in an answer and still encounter the problem please make an issue specifically for that. Please do not tack additional issues onto stickied topics especially.

Closing this issue as stf_ios_support is now going to stand on its own, and it doesn't really make sense to have it referring to the new projects.