XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

构建自己的IOS网络代理客户端Potatso

2025.04.21
机场加速器梯子推荐:

优质SS/SSR/Trojan/Xray/V2Ray机场推荐 | IPLC/IEPL专线加速器梯子推荐 | 解锁奈飞Netflix/HBO/Hulu等国外流媒体

本文说的网络代理客户端指ShadowSocks(R)客户端,用途你懂的。

本文写作时的环境:MacOS High Sierra 10.13.6,

,Swift版本4.1.2,所用代码的

commitID: 318a5e1

本文所用的XCode工程文件夹下载:Potatso.zip

Xcode10(适用于ios 12及以上设备)构建的版本以及如果构建过程中遇到的问题请参考:构建Potatso问题集锦及解决方案

前提条件

构建iOS设备的自用客户端(

Potatso

),需要两个前提条件:

  1. 一台装有XCode的MacOS设备;
  2. 一个可用的苹果开发者账号。

构建步骤

1. 安装Cocospods

如果已安装,请略过此步。

  1. 更新系统的gem版本:打开终端,输入:
  2. 设置国内gem源:输出为请略过此步;否则先删除官方源再添加gems国内源:
  3. 安装Cocospods:
2. 构建PotatsoPotatso的作者(icodesign)公开了源代码,而后由于部分人的滥用导致作者删除代码且第二版不再开源。本文使用的Potatso客户端的代码来自icodesign及haxpor等人。

构建Potatso的步骤如下:

  1. 克隆代码:
  2. 更新子模块:
  3. 安装依赖:打开,将第一行改成:(使用清华的CocoaPods源),然后运行
  4. 使用XCode打开
  5. 更改两个子项目的,例如本人分别改成:
  6. 更改两个子项目中的的Group:在”App Groups”中删除原有的,新增自己的group,例如:”group.potatso.tlanyan.pp.ua”;在”Keychain Sharing”中输入自己的group ID;
  7. 打开”Potatso.m”文件,将函数的返回值改成自己的group id;
  8. 在Potatso项目的中找,将”xxxx.entitlements”删除;
  9. 将iPhone等iOS设备连接到电脑,目标选择新接入的设备,点击左上角的“build and run”按钮,Xcode会编译并安装App,然后启动。

一切顺利的话,iOS设备上的客户端能正常使用,接下来可以安装到多个设备上,也可以打包成ipa用iTunes安装到其他已注册设备。软件截图如下:

1.

2.

3.

4.

请记住用途为自用,请不要商业使用或者将应用发布到App Store上(并收费)。

可能遇到的问题

本人构建过程中遇到的主要问题是

Cocoapods依赖安装。执行,前面一切顺利,到libYAML会出现问题:

Installing LibYAML (0.1.4)

[!] Error installing LibYAML

[!] /usr/bin/curl -f -L -o /var/folders/dj/ljst94xx47l7fn3wz4q9bwsw0000gn/T/d20180822-4467-1cotycr/file.tgz http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz –create-dirs –netrc-optional –retry 2

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0

curl: (7) Failed to connect to pyyaml.org port 80: Connection refused

根据提示libYAML官网的80端口关闭了,将http替换成https发现可以正常下载。libYAML官网这仅支持https,连301跳转机会都不给的骚操作顿时让我有点小蛋疼。用grep搜索工程,没发现可以把http改成https的配置文件存在;对Cocoapods不熟,libYAML的地址不知是否从云端下载下来;打开,将版本从”0.1.4″改成其他的,依赖又出问题;无奈之下先将文件下载下来,将其放到”/var/folders/dj/ljst94xx47l7fn3wz4q9bwsw0000gn/T/d20180822-4467-1cotycr/”目录下并改名为”file.tgz”,再次运行,发现路径每次都不一样,非常蛋疼。

最后的解决方案是采用网络劫持:

  1. 新开一个终端,进入root模式:
  2. 创建download/libyaml目录,将下载的文件复制到文件夹:
  3. 将pyyaml.org域名解析指向本地:vim编辑文件,增加一行:127.0.0.1 pyyaml.org
  4. 用Python启动一个静态web服务器,监听80端口:
以root身份设置好监听后,在原来终端继续,问题解决。

除了依赖问题,其他问题主要是以Bundle ID/group ID的问题,请根据错误提示修改。

构建Potatso问题集锦及解决方案

© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB