问题爆发
这次疫情来的十分突然,公司也是紧急改成远程办公。由于疫情爆发在春节期间,我们组所有同事都已经回家休假,导致没有成分准备远程办公的开发环境,只能临时想办法解决远程开发问题。
我相信很多小伙伴和我们一样,由于一些历史问题,导致无法使用模拟器调试代码。但是远程情况下又无法正常使用真机调试,编写界面、解决崩溃问题成为一件十分棘手的问题。
分析问题
方案1:手动打包+分发平台+真机(不推荐)
相信很多iOS开发者都知道上述流程,首先XCode编译通过,用Payload压缩包生成ipa文件,然后放到fir,再通过真机下载查看页面。
最初我们也是简单暴力采取该方案,但是第一天就暴露了以下问题:
流程十分繁琐,周期长,调试界面需要花费大量时间
原本远程开发就卡成幻灯片,如此操作更是雪上加霜
崩溃问题无法通过断点调试,盲敲代码严重影响质量
方案2:电脑远程操控真机(越狱+Veency)
在经历过方案1的痛苦后,我们很快就想到该方案,如果电脑端能够直接操控手机,只需要让在公司的同事帮忙插上数据线就能远程真机调试。
经过大量的资料搜索,发现大部分第三方软件都只能操控安卓手机。不过最后我们还是发现一个可行方案:越狱+Veency。该方案有如下好处:
去掉iphone密码插上数据线就能真机调试,流程简单**
本质上与正常真机调试无差别
解决问题
下面我将从越狱开始描述下具体实施过程:
准备环境:
iOS9-iOS10设备(Veency目前不支持iOS11以上)
越狱软件ipa包 (自行网上下载)
重签名
由于Apple的真机证书验证策略,从网站上下载的ipa包大概率无法直接安装。运气好可以下载到不掉签的包,但是开发者或者商贩为了保护企业证书,大多7天一换,7天后都会掉签无法使用。由于我的设备无法满足完美越狱,关机重启后会失去越狱环境,需要通过软件恢复。因此我们需要将越狱软件包重签名,保证其一直有效。
首先我们需要去官网给软件创建一个Identifiers
然后使用自己的个人开发证书创建开发环境的Profile
。将证书、描述文件下载到本地,证书双击添加到钥匙串。
接下来就需要下载重签名工具iReSign。
GitHub地址:https://github.com/maciekish/iReSign
如上图所示,第一栏填写越狱包的路径,第二栏填写描述文件路径,第三栏可以不填会自动生成,第四栏填写上述注册的id,第五栏选择自己的证书。点击重新签名就完成了。
越狱
目前越狱工具大多都是一键越狱,因此这里无需累述,大家可以根据自己下载的工具教程进行越狱。
安装及配置Veency
越狱完成后点开Cydia,在搜索栏中搜索Veency就可以自行下载安装了。刚越狱成功的手机需要连上外网,等Cydia自行添加源后就能搜索到。
下载完成后,在设置中找到Veency栏,按如下图所示配置,输入一个vnc访问密码。
接下来只要将设备和电脑连接同一局域网,然后在电脑浏览器中输入vnc://设备ip,再输入刚才设置的密码,就能通过屏幕共享软件连接并控制移动设备,于是就能远程操作手机进行真机调试啦。
screendump(支持到iOS14) 21-12-13日更新
最近杭州疫情又爆发了,又有小伙伴被关在家隔离。所以这个工具又排上用场了。之前说的Veency只支持iOS9和iOS10 ,这种机型已经很遥远了。所以这里再介绍一个越狱软件,支持到iOS14,用法差不多,网上资料太少,搜半天才找到希望能帮助更多人。名为screendump。下载cydia源:http://julioverne.github.io/
ios14 https://apt.aptso.cn/
总结
使用Venncy远程操控可能会有些卡顿,但是原本远程开发就卡成幻灯片,这点卡顿几乎可以忽略。