Code Monkey home page Code Monkey logo

ishadowsocksr's Introduction

donate button

GPLv3 License

Potatso

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?

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

Currently, Potatso 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

Project Info

Potatso has in total 33 (2 as submodules dependencies as used as local file in Cocoapod) dependencies as following

  • 20 Cocoapod dependencies
  • 9 submodules dependencies

The project is tested with Xcode 9.2 (9C40B) on iOS 11.2 (15B92) device with cocoapod version 1.3.1+, and carthage version 0.18.1.
If you experienced an expected issue, try to use those versions, if still experience the problem please file the issue.

How to Build Project

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 Potatso depends on might break building process and there will be errors.

git clone https://github.com/ssrlive/iShadowsocksR.git
cd iShadowsocksR
git submodule update --init --recursive    # update git submodule
pod install                                # pull down dependencies into our project
cd Library/openssl
./build-libssl.sh                          # build OpenSSL library

Then open Potatso.xcworkspace to Build and Run the project. Done.

Code Notices (outdated, will review this part again)

There're a couple of issues that needed to look at, but after testing, it does not affect the functionality of the app.

  • In file Potatso/Core/API.swift, it's the following code focusing on line with comment that I can't figure it out yet how to migrate it to Swift 3 code.

    var JSONToMap: AnyObject?
    if let keyPath = keyPath, keyPath.isEmpty == false {
        //JSONToMap = (result.value? as AnyObject).value(forKeyPath: keyPath)
        JSONToMap = nil
    } else {
        JSONToMap = result.value as AnyObject?
    }
  • Potatso core code depends on version 1.7.0 of Eureka with manual migration to Swift 3. It's already done and linked to project. But you will see observeValue() function in Eureka/Source/Rows/PostalAddressRow.swift that has been commented for all of its function code due to Eureka's newer version 2.0.0-beta.1 doesn't include such file in the project anymore, but it still works with no problem. This note is meant to mark that there is going to be a lot of effort if we decide to depend on Eureka version 2.0.0-beta.1 as we need to change a lot of Potatso core code.

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

Potatso 2 was released on App Store
You can purchase it from App Store, or still use Potatso by building it manually and installing to your device from this project.

Please note that Potatso 2 will be closed-source as stated from original author's reason. 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/.

ishadowsocksr's People

Contributors

alsojin0806 avatar haxpor avatar icodesign avatar so898 avatar ssrlive avatar xwjack avatar youngsing avatar yousong avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.