New Platform: iOS
we have some proto PRs for this and a few interested people. What we need is time, and possibly resources ourselves to participate (we dont have any macs or iphones) lol.
But yes, at some point I'd like to set up a Mac/iOS work group and work with volunteers to move this along, time permitting :)
Is there still interest in this? If there's no one working on this at the moment, I could try taking this on next week!
EDIT: Also just to check, this is the existing branch for this right? https://git.openprivacy.ca/cwtch.im/cwtch-ui/src/branch/ios_build_port
EDIT 2: I should've checked the open PRs! #140
@NimaBoscarino definitely interested!
This one is definitely quite big and has many moving pieces. I'll try to summarize the current state.
The main challenges with iOS revolve around getting an architecture that will work on the iPhone.
For Android there is Android specific server code (under
android/) that manages the lifecycles (roughly: https://git.openprivacy.ca/cwtch.im/cwtch-ui/src/branch/trunk/cwtch-android-lifecycle.png although it has changed since we first implemented it)
We would basically need a similar analysis for iOS - in particular focusing on how Tor connections would actually work there.
Work here might further be complicated by issues that Briar have previously looked into (https://code.briarproject.org/briar/briar/-/issues/445)
Ultimately, it may be that we need to introduce another (asymmetric) anonymous communication network (research pending) - to get Cwtch working suitable on iOS, but until then any work to push the build forward, make sure it builds nicely and/or formulating an architecture that would be acceptable to iOS policies is very welcome.
So with our recent improvements to tor management/start speed, and android stabalization work, we are almost in a spot where we feel it might be possible to investigatge this but we don't have the developer bandwidth to support it currently.
to start, we'd need a ios compiled tor binary,
then I'll need to review the ios branch work done in #140
and we currently can't test as we have no iphones, and I'm not sure what compiling for it looks like. We do at least have tentative support in libcwtch-go to compile for ios
I think the lack of an iOS version will reduce CWTCH adoption for all platforms because 50% of the U.S. population (and 20% of the world population) has an iPhone. While I would like to stop communicating with iPhone users, that is not entirely practical, and some security is better than none. 😟
at some point I'd like to set up a Mac/iOS work group
we currently can't test as we have no iphones
You dont necessarily need them - you just need RAM to run Mac OS in a virtual machine
Free cloud builder service on Mac OS M1 virtual machine
The download page at https://cwtch.im/download/ should link to some page that explains all of the issues blocking release of an iOS version. Be more specific about your needs, and request hardware donations if desired.
Work here might further be complicated by issues that Briar have previously looked into
A lot has changed in 6 years - are you sure those issues are still valid today?
Briar says: "To protect metadata, Briar can not use push messages"
'Jami' uses APN but does not send messages through push notifications: they send empty notification to wake up the app, and the app retrieves messages itself.
Discussion of push notification methods in Status
Ultimately, it may be that we need to introduce another (asymmetric) anonymous communication network
Discussion of alternative transport mechanisms
to start, we'd need a ios compiled tor binary
Brave browser has a built-in TOR proxy and runs on iOS...
"Tor.framework is the easiest way to embed Tor in your iOS application. The API is not stable yet, and subject to change."
Another project’s search for the best compromise on iOS - and doing a pretty good job of documenting their work, I think...
iOS push notifications
Android app supports access via Tor using Orbot SOCKS proxy
“Check out the last talk at MoneroKon - we do plan lightweight 2-hop onion routing as part of the protocol/network design, that would provide sender transport anonymity without noticeable latency costs…”
Deleting a branch is permanent. It CANNOT be undone. Continue?