diff --git a/CHANGELOG.md b/CHANGELOG.md index b4c1168d76ffec6481549645b67dfd9b0ddc7737..3f647d04903c55da60b1d5b174958ad650760987 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # IPtProxy Changelog +## 1.6.0 +- Update Snowflake to latest version 2.2.0. +- Added `IPtProxyObfs4ProxyVersion` returning the version of the used Obfs4proxy. +- Use latest Android NDK v24.0 which raises the minimally supported Android API level to 19. +- Added support for MacOS. + ## 1.5.1 - Update Snowflake to latest main. Contains a crash fix. - Added `IsSnowflakeProxyRunning` method to easily check, diff --git a/IPtProxy-sources.jar b/IPtProxy-sources.jar index 71bd85eff20f0e009c11cb8c2b9217ebd6447382..85690fb146ba72a637164e7b603d9d2b428f166f 100644 Binary files a/IPtProxy-sources.jar and b/IPtProxy-sources.jar differ diff --git a/IPtProxy.aar b/IPtProxy.aar index 759c224dfce678b50f63aac22489c99241840676..488ba2773909c957ebe0af9339258b68c1a990b8 100644 Binary files a/IPtProxy.aar and b/IPtProxy.aar differ diff --git a/IPtProxy.podspec b/IPtProxy.podspec index bbae02ae57b12421556da38cc9db5b4236d6a650..edb8d30ae94d1a038077db870eb285a6b7dccfd7 100644 --- a/IPtProxy.podspec +++ b/IPtProxy.podspec @@ -8,8 +8,8 @@ Pod::Spec.new do |s| s.name = 'IPtProxy' - s.version = '1.5.1' - s.summary = 'Obfs4proxy and Snowflake Pluggable Transports for iOS' + s.version = '1.6.0' + s.summary = 'Obfs4proxy and Snowflake Pluggable Transports for iOS and macOS' s.description = <<-DESC Both Obfs4proxy and Snowflake Pluggable Transports are written in Go, which @@ -33,7 +33,13 @@ Pod::Spec.new do |s| - Snowflake and Obfs4proxy are patched to accept all configuration parameters directly. - Both PTs are contained at their latest `master` commit, as per 2021-07-14. + Contained transport versions: + + | Transport | Version | + |------------|--------:| + | Obfs4proxy | 0.0.13 | + | Snowflake | 2.2.0 | + DESC s.homepage = 'https://github.com/tladesignz/IPtProxy' @@ -43,6 +49,7 @@ Pod::Spec.new do |s| s.social_media_url = 'https://twitter.com/tladesignz' s.ios.deployment_target = '11.0' + s.osx.deployment_target = '12' s.preserve_paths = 'build.sh', '*.patch', 'IPtProxy.go/*' diff --git a/IPtProxy.xcframework/Info.plist b/IPtProxy.xcframework/Info.plist index f559237aeef2bdc7a474047e0ad5306f91ae084e..cf9cf515fc90351a33402fed4678715adf44d61c 100644 --- a/IPtProxy.xcframework/Info.plist +++ b/IPtProxy.xcframework/Info.plist @@ -31,6 +31,19 @@ <key>SupportedPlatformVariant</key> <string>simulator</string> </dict> + <dict> + <key>LibraryIdentifier</key> + <string>macos-arm64_x86_64</string> + <key>LibraryPath</key> + <string>IPtProxy.framework</string> + <key>SupportedArchitectures</key> + <array> + <string>arm64</string> + <string>x86_64</string> + </array> + <key>SupportedPlatform</key> + <string>macos</string> + </dict> </array> <key>CFBundlePackageType</key> <string>XFWK</string> diff --git a/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h b/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h index 959ed50e93b3abb73083dad2fe90c4a8d59b07ee..59dce2e73b6a9475fd19ade66978048c8ebf964b 100644 --- a/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h +++ b/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h @@ -15,6 +15,9 @@ @class IPtProxySnowflakeClientConnected; @protocol IPtProxySnowflakeClientConnected <NSObject> +/** + * Connected - callback method to handle snowflake proxy client connections. + */ - (void)connected; @end @@ -63,6 +66,11 @@ Only use this property after calling StartObfs4Proxy! It might have changed afte */ FOUNDATION_EXPORT long IPtProxyObfs4Port(void); +/** + * Obfs4ProxyVersion - The version of Obfs4Proxy bundled with IPtProxy. + */ +FOUNDATION_EXPORT NSString* _Nonnull IPtProxyObfs4ProxyVersion(void); + /** * ScramblesuitPort - Port where Obfs4proxy will provide its Scramblesuit service. Only use this property after calling StartObfs4Proxy! It might have changed after that! diff --git a/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/IPtProxy b/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/IPtProxy index e0101330731a16f12e2d97b50e0e5f824e7d2d19..84b7120d41d6102a0c15b88b32ca6f3f167bf322 100644 Binary files a/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/IPtProxy and b/IPtProxy.xcframework/ios-arm64/IPtProxy.framework/Versions/A/IPtProxy differ diff --git a/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h b/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h index 959ed50e93b3abb73083dad2fe90c4a8d59b07ee..59dce2e73b6a9475fd19ade66978048c8ebf964b 100644 --- a/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h +++ b/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h @@ -15,6 +15,9 @@ @class IPtProxySnowflakeClientConnected; @protocol IPtProxySnowflakeClientConnected <NSObject> +/** + * Connected - callback method to handle snowflake proxy client connections. + */ - (void)connected; @end @@ -63,6 +66,11 @@ Only use this property after calling StartObfs4Proxy! It might have changed afte */ FOUNDATION_EXPORT long IPtProxyObfs4Port(void); +/** + * Obfs4ProxyVersion - The version of Obfs4Proxy bundled with IPtProxy. + */ +FOUNDATION_EXPORT NSString* _Nonnull IPtProxyObfs4ProxyVersion(void); + /** * ScramblesuitPort - Port where Obfs4proxy will provide its Scramblesuit service. Only use this property after calling StartObfs4Proxy! It might have changed after that! diff --git a/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/IPtProxy b/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/IPtProxy index ed0d2645fd9d837ec5beb462515f5f2feed2ba6d..155c371949e68bd936473e83f816e4a11ad021d3 100644 Binary files a/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/IPtProxy and b/IPtProxy.xcframework/ios-arm64_x86_64-simulator/IPtProxy.framework/Versions/A/IPtProxy differ diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Headers b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Headers new file mode 120000 index 0000000000000000000000000000000000000000..a177d2a6b92600696030834c319f5e1434f9ee6a --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/IPtProxy b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/IPtProxy new file mode 120000 index 0000000000000000000000000000000000000000..540a5c6fb381d72c2b75e268b357bd66c2934451 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/IPtProxy @@ -0,0 +1 @@ +Versions/Current/IPtProxy \ No newline at end of file diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Modules b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Modules new file mode 120000 index 0000000000000000000000000000000000000000..5736f3186e797b8b787748c9979d0fed3b0536c3 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Resources b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Resources new file mode 120000 index 0000000000000000000000000000000000000000..953ee36f3bb709faf58a351e0b33c353e337c0a2 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.h b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.h new file mode 100644 index 0000000000000000000000000000000000000000..c9b6f40fc052c4aa1834ff0df9360980531d3577 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.h @@ -0,0 +1,13 @@ + +// Objective-C API for talking to the following Go packages +// +// github.com/tladesignz/IPtProxy.git +// +// File is generated by gomobile bind. Do not edit. +#ifndef __IPtProxy_FRAMEWORK_H__ +#define __IPtProxy_FRAMEWORK_H__ + +#include "IPtProxy.objc.h" +#include "Universe.objc.h" + +#endif diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h new file mode 100644 index 0000000000000000000000000000000000000000..59dce2e73b6a9475fd19ade66978048c8ebf964b --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/IPtProxy.objc.h @@ -0,0 +1,188 @@ +// Objective-C API for talking to github.com/tladesignz/IPtProxy.git Go package. +// gobind -lang=objc github.com/tladesignz/IPtProxy.git +// +// File is generated by gobind. Do not edit. + +#ifndef __IPtProxy_H__ +#define __IPtProxy_H__ + +@import Foundation; +#include "ref.h" +#include "Universe.objc.h" + + +@protocol IPtProxySnowflakeClientConnected; +@class IPtProxySnowflakeClientConnected; + +@protocol IPtProxySnowflakeClientConnected <NSObject> +/** + * Connected - callback method to handle snowflake proxy client connections. + */ +- (void)connected; +@end + +@interface IPtProxy : NSObject +/** + * StateLocation - Override TOR_PT_STATE_LOCATION, which defaults to "$TMPDIR/pt_state". + */ ++ (NSString* _Nonnull) stateLocation; ++ (void) setStateLocation:(NSString* _Nonnull)v; + +@end + +/** + * IsPortAvailable - Checks to see if a given port is not in use. + +@param port The port to check. + */ +FOUNDATION_EXPORT BOOL IPtProxyIsPortAvailable(long port); + +/** + * IsSnowflakeProxyRunning - Checks to see if a snowflake proxy is running in your app. + */ +FOUNDATION_EXPORT BOOL IPtProxyIsSnowflakeProxyRunning(void); + +/** + * MeekPort - Port where Obfs4proxy will provide its Meek service. +Only use this after calling StartObfs4Proxy! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxyMeekPort(void); + +/** + * Obfs2Port - Port where Obfs4proxy will provide its Obfs2 service. +Only use this property after calling StartObfs4Proxy! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxyObfs2Port(void); + +/** + * Obfs3Port - Port where Obfs4proxy will provide its Obfs3 service. +Only use this property after calling StartObfs4Proxy! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxyObfs3Port(void); + +/** + * Obfs4Port - Port where Obfs4proxy will provide its Obfs4 service. +Only use this property after calling StartObfs4Proxy! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxyObfs4Port(void); + +/** + * Obfs4ProxyVersion - The version of Obfs4Proxy bundled with IPtProxy. + */ +FOUNDATION_EXPORT NSString* _Nonnull IPtProxyObfs4ProxyVersion(void); + +/** + * ScramblesuitPort - Port where Obfs4proxy will provide its Scramblesuit service. +Only use this property after calling StartObfs4Proxy! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxyScramblesuitPort(void); + +/** + * SnowflakePort - Port where Snowflake will provide its service. +Only use this property after calling StartSnowflake! It might have changed after that! + */ +FOUNDATION_EXPORT long IPtProxySnowflakePort(void); + +/** + * StartObfs4Proxy - Start the Obfs4Proxy. + +This will test, if the default ports are available. If not, it will increment them until there is. +Only use the port properties after calling this, they might have been changed! + +@param logLevel Log level (ERROR/WARN/INFO/DEBUG). Defaults to ERROR if empty string. + +@param enableLogging Log to TOR_PT_STATE_LOCATION/obfs4proxy.log. + +@param unsafeLogging Disable the address scrubber. + +@param proxy HTTP, SOCKS4 or SOCKS5 proxy to be used behind Obfs4proxy. E.g. "socks5://127.0.0.1:12345" + +@return Port number where Obfs4Proxy will listen on for Obfs4(!), if no error happens during start up. + If you need the other ports, check MeekPort, Obfs2Port, Obfs3Port and ScramblesuitPort properties! + */ +FOUNDATION_EXPORT long IPtProxyStartObfs4Proxy(NSString* _Nullable logLevel, BOOL enableLogging, BOOL unsafeLogging, NSString* _Nullable proxy); + +/** + * StartSnowflake - Start the Snowflake client. + +@param ice Comma-separated list of ICE servers. + +@param url URL of signaling broker. + +@param front Front domain. + +@param ampCache OPTIONAL. URL of AMP cache to use as a proxy for signaling. + Only needed when you want to do the rendezvous over AMP instead of a domain fronted server. + +@param logFile Name of log file. OPTIONAL. Defaults to no log. + +@param logToStateDir Resolve the log file relative to Tor's PT state dir. + +@param keepLocalAddresses Keep local LAN address ICE candidates. + +@param unsafeLogging Prevent logs from being scrubbed. + +@param maxPeers Capacity for number of multiplexed WebRTC peers. DEFAULTs to 1 if less than that. + +@return Port number where Snowflake will listen on, if no error happens during start up. + */ +FOUNDATION_EXPORT long IPtProxyStartSnowflake(NSString* _Nullable ice, NSString* _Nullable url, NSString* _Nullable front, NSString* _Nullable ampCache, NSString* _Nullable logFile, BOOL logToStateDir, BOOL keepLocalAddresses, BOOL unsafeLogging, long maxPeers); + +/** + * StartSnowflakeProxy - Start the Snowflake proxy. + +@param capacity Maximum concurrent clients. OPTIONAL. Defaults to 10, if 0. + +@param broker Broker URL. OPTIONAL. Defaults to https://snowflake-broker.torproject.net/, if empty. + +@param relay WebSocket relay URL. OPTIONAL. Defaults to wss://snowflake.bamsoftware.com/, if empty. + +@param stun STUN URL. OPTIONAL. Defaults to stun:stun.stunprotocol.org:3478, if empty. + +@param natProbe OPTIONAL. Defaults to https://snowflake-broker.torproject.net:8443/probe, if empty. + +@param logFile Name of log file. OPTIONAL. Defaults to STDERR. + +@param keepLocalAddresses Keep local LAN address ICE candidates. + +@param unsafeLogging Prevent logs from being scrubbed. + +@param clientConnected A delegate which is called when a client successfully connected. + Will be called on its own thread! You will need to switch to your own UI thread, + if you want to do UI stuff!! OPTIONAL + */ +FOUNDATION_EXPORT void IPtProxyStartSnowflakeProxy(long capacity, NSString* _Nullable broker, NSString* _Nullable relay, NSString* _Nullable stun, NSString* _Nullable natProbe, NSString* _Nullable logFile, BOOL keepLocalAddresses, BOOL unsafeLogging, id<IPtProxySnowflakeClientConnected> _Nullable clientConnected); + +/** + * StopObfs4Proxy - Stop the Obfs4Proxy. + */ +FOUNDATION_EXPORT void IPtProxyStopObfs4Proxy(void); + +/** + * StopSnowflake - Stop the Snowflake client. + */ +FOUNDATION_EXPORT void IPtProxyStopSnowflake(void); + +/** + * StopSnowflakeProxy - Stop the Snowflake proxy. + */ +FOUNDATION_EXPORT void IPtProxyStopSnowflakeProxy(void); + +@class IPtProxySnowflakeClientConnected; + +/** + * SnowflakeClientConnected - Interface to use when clients connect +to the snowflake proxy. For use with StartSnowflakeProxy + */ +@interface IPtProxySnowflakeClientConnected : NSObject <goSeqRefInterface, IPtProxySnowflakeClientConnected> { +} +@property(strong, readonly) _Nonnull id _ref; + +- (nonnull instancetype)initWithRef:(_Nonnull id)ref; +/** + * Connected - callback method to handle snowflake proxy client connections. + */ +- (void)connected; +@end + +#endif diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/Universe.objc.h b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/Universe.objc.h new file mode 100644 index 0000000000000000000000000000000000000000..019e7502d581983722a15bf30799e85cbc5dd766 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/Universe.objc.h @@ -0,0 +1,29 @@ +// Objective-C API for talking to Go package. +// gobind -lang=objc +// +// File is generated by gobind. Do not edit. + +#ifndef __Universe_H__ +#define __Universe_H__ + +@import Foundation; +#include "ref.h" + +@protocol Universeerror; +@class Universeerror; + +@protocol Universeerror <NSObject> +- (NSString* _Nonnull)error; +@end + +@class Universeerror; + +@interface Universeerror : NSError <goSeqRefInterface, Universeerror> { +} +@property(strong, readonly) _Nonnull id _ref; + +- (nonnull instancetype)initWithRef:(_Nonnull id)ref; +- (NSString* _Nonnull)error; +@end + +#endif diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/ref.h b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/ref.h new file mode 100644 index 0000000000000000000000000000000000000000..b8036a4d85c7387f3def61473a071b5d8c4c8208 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Headers/ref.h @@ -0,0 +1,35 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#ifndef __GO_REF_HDR__ +#define __GO_REF_HDR__ + +#include <Foundation/Foundation.h> + +// GoSeqRef is an object tagged with an integer for passing back and +// forth across the language boundary. A GoSeqRef may represent either +// an instance of a Go object, or an Objective-C object passed to Go. +// The explicit allocation of a GoSeqRef is used to pin a Go object +// when it is passed to Objective-C. The Go seq package maintains a +// reference to the Go object in a map keyed by the refnum along with +// a reference count. When the reference count reaches zero, the Go +// seq package will clear the corresponding entry in the map. +@interface GoSeqRef : NSObject { +} +@property(readonly) int32_t refnum; +@property(strong) id obj; // NULL when representing a Go object. + +// new GoSeqRef object to proxy a Go object. The refnum must be +// provided from Go side. +- (instancetype)initWithRefnum:(int32_t)refnum obj:(id)obj; + +- (int32_t)incNum; + +@end + +@protocol goSeqRefInterface +-(GoSeqRef*) _ref; +@end + +#endif diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/IPtProxy b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/IPtProxy new file mode 100644 index 0000000000000000000000000000000000000000..6a755c68aba3fa78a5a65ae1acf22242bac63e53 Binary files /dev/null and b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/IPtProxy differ diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Modules/module.modulemap b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Modules/module.modulemap new file mode 100644 index 0000000000000000000000000000000000000000..7e2b8915090b67d2c5aaa06c69296102e92277ac --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Modules/module.modulemap @@ -0,0 +1,8 @@ +framework module "IPtProxy" { + header "ref.h" + header "IPtProxy.objc.h" + header "Universe.objc.h" + header "IPtProxy.h" + + export * +} \ No newline at end of file diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Resources/Info.plist b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..0d1a4b8ab9b1fc8e9357197398f73353470cb636 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> + <plist version="1.0"> + <dict> + </dict> + </plist> diff --git a/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/Current b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/Current new file mode 120000 index 0000000000000000000000000000000000000000..8c7e5a667f1b771847fe88c01c3de34413a1b220 --- /dev/null +++ b/IPtProxy.xcframework/macos-arm64_x86_64/IPtProxy.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/README.md b/README.md index ed4afe16743e15494b1b775e0a375bfa1314f65c..76e14afebe1f0adfc28b927ea9ec1952200c3067 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # IPtProxy -Obfs4proxy and Snowflake Pluggable Transports for iOS and Android +Obfs4proxy and Snowflake Pluggable Transports for iOS, MacOS and Android [](https://jitpack.io/#tladesignz/IPtProxy) [](https://cocoapods.org/pods/IPtProxy) @@ -10,7 +10,7 @@ Obfs4proxy and Snowflake Pluggable Transports for iOS and Android | Transport | Version | |------------|--------:| | Obfs4proxy | 0.0.13 | -| Snowflake | 2.1.0 | +| Snowflake | 2.2.0 | Both Obfs4proxy and Snowflake Pluggable Transports are written in Go, which is a little annoying to use on iOS and Android. @@ -36,7 +36,7 @@ Problems solved in particular are: on a multi-user Android), you should first start the transports and then use the returned ports for configuration of other components (e.g. Tor). -## iOS +## iOS/macOS ### Installation @@ -44,7 +44,7 @@ IPtProxy is available through [CocoaPods](https://cocoapods.org). To install it, simply add the following line to your `Podfile`: ```ruby -pod 'IPtProxy', '~> 1.5' +pod 'IPtProxy', '~> 1.6' ``` ### Getting Started @@ -62,7 +62,7 @@ IPtProxy is available through [JitPack](https://jitpack.io). To install it, simply add the following line to your `build.gradle` file: ```groovy -implementation 'com.github.tladesignz:IPtProxy:1.5.1' +implementation 'com.github.tladesignz:IPtProxy:1.6.0' ``` And this to your root `build.gradle` at the end of repositories: @@ -196,4 +196,4 @@ for the Guardian Project https://guardianproject.info ## License -IPtProxy is available under the MIT license. See the LICENSE file for more info. +IPtProxy is available under the MIT license. See the [LICENSE](LICENSE) file for more info. diff --git a/jitpack.yml b/jitpack.yml index 8bcc99b108b118e4d2a88e4ea60a91e6d57176fb..ea7f1ae2174e3f5b80a38aa22905b9e9ba170f85 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,3 +1,3 @@ install: - FILE="-Dfile=IPtProxy.aar" - - mvn install:install-file $FILE -DgroupId=com.github.tladesignz -DartifactId=IPtProxy -Dversion=1.5.1 -Dpackaging=aar -DgeneratePom=true -Dsources=IPtProxy-sources.jar + - mvn install:install-file $FILE -DgroupId=com.github.tladesignz -DartifactId=IPtProxy -Dversion=1.6.0 -Dpackaging=aar -DgeneratePom=true -Dsources=IPtProxy-sources.jar diff --git a/pom.xml b/pom.xml index 40acb93998b2348c7edd0da1fc9456f9eadb5c2e..71f81c4a7839e3cbb8b42c29f5546b19588b4368 100644 --- a/pom.xml +++ b/pom.xml @@ -5,5 +5,5 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.tladesignz</groupId> <artifactId>IPtProxy</artifactId> - <version>1.5.1</version> + <version>1.6.0</version> </project>