The project is in progress, and currently alpha-quality.
- iOS 10 or later
- Xcode 8 or later
curl https://sh.rustup.rs -sSf | sh rustup install stable rustup target add aarch64-apple-ios rustup target add armv7-apple-ios
git submodule update --init --recursive brew install automake autoconf libtool gettext carthage carthage build
iCepa should now build normally from Xcode. If it does not, please file an issue! iCepa does not work in the iOS Simulator.
Installing this application on your own iOS device requires some manual set up in Apple's developer portal:
- Pick a unique bundle identifier (
com.foo.iCepa) and generate an
App IDfor it.
- Append a new component to that bundle identifier to form the extension's bundle identifier (
com.foo.iCepa.extension), and generate an
App IDfor that new bundle identifier.
- Create an
group.com.foo.iCepa), and enable that
App Groupon both of the
App IDs that you just created.
- Check the
Network Extensionscheckbox on both of the
- Create two new development
Provisioning Profiles, one for each
- Place the
App Groupand both
App IDs in
iCepa is separated into a two components:
- The UI is written in Swift, and provides a basic interface to start, stop and configure the Tor network extension.
- The network extension itself is also written in Swift, and bridges traffic to Tor using an
NEPacketTunnelProvideris analogous to a
utun(userspace network tunnel) interface.
Tor.framework is used to communicate with and start the
tor instance from both the app and the extension.
Things that need work:
- The UI. The main focus is the control screen which will have controls to start/stop and information about the connection. Taking mockups/pull requests for either! Create Github issues for now.
- There is no icon or any branding (the name is not even final).