/iShadowsocksR

ShadowsocksR (SSRoT) client for iOS

Primary LanguageCGNU General Public License v3.0GPL-3.0

GPLv3 License

iShadowsocksR

公告

iShadowsocksR 已经支持新协议 overTLS.

目前支持 SSRoT 特性 的 iOS 客户端 已经开发完毕, 出于种种原因不能释出。

Screen Shot 2020-05-22 at 18 14 21

身在大陆以外的苹果软件开发者, 可以 将此 App 编译成 ipa 文件后电邮发送至 ssrlivebox@gmail.com ——虽然机率极小,也不能放弃希望不是? ——作者会将该文件放在这里供用户下载. 然后通过 AltStore 安装到用户的(非越狱)手机里, 就可以使用了.

Important

Please read this first before you do anything with this project.
In short, you need to respect to license of the project. You cannot copy the source code and publish to App Store.


What is it?

iShadowsocksR is an iOS client that implements custom proxies with the leverage of Network Extension framework introduced by Apple since iOS 9.

Currently, iShadowsocksR is compatible with following proxies:

Subscribe Telegram Channel to get updates of Potatso.
Join Telegram Group to chat with users.

Original Author: @icodesign
Swift 3 Maintainer: @haxpor with this site
Current Maintainer: @ssrlive

Project Info

iShadowsocksR has in total 25 (2 as submodules dependencies as used as local file in Cocoapod) dependencies as following

  • 15 Cocoapod dependencies
  • 10 submodules dependencies

The project is tested with Xcode 14.3 (14E222b) on iOS 16.4.1 (20E252) device with cocoapod version 1.12.1+. If you experienced an expected issue, try to use those versions, if still experience the problem please file the issue.

Compilation environment

  • macOS Ventura 13.3.1 (22E261)
  • Xcode Version 14.3 (14E222b)

Install Rust build tools to support compiling overTLS

  • Install Xcode Command Line Tools: xcode-select --install
  • Install Rust programming language: curl https://sh.rustup.rs -sSf | sh
  • Install iOS target support: rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios
  • Install cbindgen tool: cargo install cbindgen

How to Build

Perform the following steps to be able to build the project. Be warned that you should not call pod update as newer version of pod frameworks that iShadowsocksR depends on might break building process and there will be errors.

git clone --recurse-submodules https://github.com/ShadowsocksR-Live/iShadowsocksR.git
cd iShadowsocksR
sudo gem install cocoapods
pod install                                # pull down dependencies into our project

Then open iShadowsocksR.xcworkspace with Xcode to Build and Run the project. Done.

Troubleshooting

  • If you are a China mainland developer, maybe you should set your git with proxy, such as SOCKS5 etc., or you can not pull some submodules because of GFW. Like this:

    # Enable Proxy settings
    git config --global http.proxy socks5://127.0.0.1:1080
    git config --global https.proxy socks5://127.0.0.1:1080
    
    # Disable Proxy settings
    git config --global --unset-all http.proxy
    git config --global --unset-all https.proxy
    
  • You must have an Apple Developer account with an annual fee of $99.

  • To compile the app running on your iOS device smoothly, you must search the project for the com.ssrlive.issr identifier string and replace it with your own identifier string.

  • Due to an unknown reason at present, compiling Rust code from Xcode fails, so you have to manually compile it. Please run the following command in zsh (or bash):

    cd overtls/overtls-rs
    
    cargo build --release --target aarch64-apple-ios
    cargo build --release --target x86_64-apple-ios
    lipo -create target/aarch64-apple-ios/release/libovertls.a target/x86_64-apple-ios/release/libovertls.a -output target/libovertls.a
    cbindgen --config cbindgen.toml -l C -o target/overtls-ios.h
    
  • If you meet lots of compiling errors such as ld: file not found: /.../libarclite_iphoneos.a, please change all of iOS deployment target from iOS 8.0 to iOS 11.0 or above. like this: image

How To Contribute

Clone the project, make some changes or add a new feature, then make a pull request.

Acknowlegements

We use the following services or open-source libraries. So we'd like show them highest respect and thank for bringing those great projects:

Services

Open-source Libraries

Also we'd like to thank people that helped with the project

Donate

Notice

Read more from here.

Support Us

The development covers a lot of complicated work, costing not only money but also time. These are the way to support

License

You cannot just copy the project, and publish to App Store. Please read this first.

--

To be compatible with those libraries using GPL, we're distributing with GPLv3 license.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.