/IPtProxyUI-ios

Primary LanguageSwiftMIT LicenseMIT

IPtProxyUI

Tor + Pluggable Transports on iOS and macOS

Version License Platform

IPtProxyUI provides all things necessary to use the Pluggable Transports from the IPtProxy library with Tor, preferrably via Tor.framework.

It includes all necessary configuration, code to interact with Tor Project's MOAT/rdsys service to update the user's configuration and fetch lesser-known bridges and, of course, a ready-made UI to show to your users which can handle all of the above.

The UI is complete for your users to configure all aspects of the Transports. However, you're not obliged to use it. You can create your own and use the lower-level code only.

Additionally there's a helper class IpSupport which can aid in better supporting IPv6-only networks which are common with some mobile network carriers.

Installation

IPtProxyUI is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'IPtProxyUI'

Getting Started

All-in-one TorManager

For a headache-free start into the world of Tor on iOS and macOS, check out the new TorManager project!

Do-it-yourself

use IPtProxyUI

// ATTENTION: Since IPtProxy 2.0.0 this needs to be set explicitly before starting a transport!
Settings.stateLocation = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!.appendingPathComponent("pt_state")

Transport.obfs4.start(log: true)

print((try? String(contentsOf: Transport.obfs4.logFile!)) ?? "throwed")

Transport.obfs4.stop()

Localization

Localization is done with BartyCrouch, licensed under MIT.

Just add new NSLocalizedStrings calls to the code. After a build, they will automatically show up in Localizable.strings.

Don't use storyboard and xib file localization. That just messes up everything. Localize these by explicit calls in the code.

Dependencies

Further reading

https://tordev.guardianproject.info

Author

Benjamin Erhart, berhart@netzarchitekten.com for the Guardian Project

License

IPtProxyUI is available under the MIT license. See the LICENSE file for more info.