本文发自 http://www.binss.me/blog/compile-shadowsocks-ios-running-all-the-time/,转载请注明出处。
由于在手机上调试的应用需要连接google,因此需要科学上网。因为电脑用的方案是私有服务器的shadowsocks,所以希望在手机上也用这个。
在AppStore下载了Shadowsocks的IOS版本,其有两个功能,一个是作为科学上网的浏览器,二是作为全局代理来科学上网。第二个功能正是我需要的。
如何使用全局代理?
打开设置-无限局域网-你正在使用的热点最右边的“i”按钮-HTTP代理-选择自动,并在URL输入栏里填入:
http://127.0.0.1:8090/proxy.pac
然后其他软件就可以愉快地科学上网了~
然而由于ios的后台机制,程序进入后台最多3分钟后就把你干掉,这样我们的全局代理就断掉了。科学上网3分钟怎么够!为了实现长时间上网,我们希望shadowsocks能在后台一直存活。
作者给出了方法:
If you are an iOS developer, you can find some commented code in the source code, which keeps playing silence music in the background. Thus the app can keep running all the time. But this prevents us from getting approved on the App Store. You have to build the app for yourself, and use the app yourself.
到https://github.com/shadowsocks/shadowsocks-iOS拉下源代码,找到源代码的SWBViewController.m的viewDidLoad
函数的最后一行注释掉的[self play];
删除注释。
然后打开shadowsocks-Info.plist
文件,插入行Required background modes
,在item0
填入audio
后保存。
注:编译shadowsocks的过程会报错说You must install Crashlytics to continue。找到shadowsocks的build phases,删除Run Script中的内容“./Crashlytics.framework/run fa65e4ab45ef1c9c69682529bee0751cd22d5d80。”
这样做的话,程序会一直播放无声的音乐,就算进入后台也还在播,这样就保证了程序不会被IOS干掉。
此方法需要有IOS开发者授权。经尝试,效果拔群。
1F 饭先生 9 years, 9 months ago 回复
请问修改版的能发我一个吗 不胜感激 [email protected]
2F zijie2543 9 years, 5 months ago 回复
同求修改版!可以发一个给我吗
3F bin MOD 9 years, 5 months ago 回复
回复 2楼的 zijie2543:
更新的文章见:http://www.binsite.me/blog/compile-shadowsocks-ios-with-error-sodium-description/
修改后的地址:https://github.com/binss/shadowsocks-iOS/
4F psscar 9 years, 5 months ago 回复
在iOS8之后系统带了后台刷新功能 有办法用在ss上么?
5F binss MOD 9 years, 4 months ago 回复
回复 4楼的 psscar:
开源版本已经停留在2.0.3半年多了,建议使用appstore版本吧(然而该版本在IOS8.2下一样不能全局代理...)建议坐等作者更新
6F psscar 9 years, 4 months ago 回复
回复 5楼的 bin:
感谢博主 我在用AppStore的ss 不过觉得只当浏览器用挺不方便的 所以想改成全局的挺久了 然而无奈网络部分太难懂
然后我刚看到你的新文章“目前开源版本(2.0.3)不支持IOS8”
2333 整个人都不好了
7F vancy 7 years, 10 months ago 回复
两个问题:
1、我输入audio后,自动变成了App plays audio or streams audio/video using AirPlay,这个是正常的吗?我查看音乐播放状态,还是QQ音乐的。我是iOS10.1.1。几分钟后就不能全局代理了,必须要开启APP一次才行。
2、怎么修改pac呢??我搜索了项目,搜索不到。因为其它app好像是能走pac,设置了全局也不管用
谢谢
8F vancy 7 years, 10 months ago 回复
我刚刚试了一下,即使在APP内部,全局代理也不起作用。访问ip138还是本地的地址。
9F Rain 7 years, 2 months ago 回复
Github上面的第三方库缺失,是要手动下载更新吗