初代 iPad 开发环境搭建 —— 实操(二)

下载的 iOSOpenDev 安装包是 .pkg 格式的,执行总是失败。开始摸不着门道,用 cmd-L 打开日志视图,浏览全部日志才发现是下载部分发生了错误。

​开始以为是网络问题,排查来排查去,最后发现在浏览器里直接访问目标网址是正常的,只好继续排查。只能寄望于把 pkg 文件打开,看看葫芦里卖的究竟是什么药。有个叫作 unpkg 的工具正是干这个的,但是最新版本的在山狮上跑不起来,退到版本 4.6 可以了。

​打开看里面其实是两个比较大的脚本,顺藤摸瓜找到了下载的语句,是调用 curl。然后到终端里模拟执行这个下载,果然报错。看上去跟安全性有关,也不知道是要更新什么,大概率是要更新系统的根证书,恐怕还不太好搞。小四支招加上 -k 参数试试,试试就试试,试试也还是不行。报的错是 curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:Tlsv1 alert protocol version,貌似需要升级工具本身。而 -k 的适用症应该是 (60) 的错。

于是寻找预编译好的高版本的 curl。到其官网上看,最新版本是 8.7.1,它列出了两条路子,一个是下载 Travis Lee 的项目里的包,链接 https://guthub.com/stunnel/static-curl/releases/download/8.7.1/curl-macos-x86_64-8.7.1.tar.xz。另一个是到 conda-forge.org 网站去。后者看的比较蒙,没接触过,于是先搞下来了前者,痛苦的事情来了,tar x 命令解不开,显然,这个系统不支持 xz 命令。首先想到的是 7z,也去看了一眼,看完苦笑,它的命令行版本在 macOS 平台下也是 xz 格式的 tar 包。

如此一来,只好找到 xz 的源码,特意选了非 xz 格式的源码包。下载后解压,按惯例执行 ./configure,最后报错,说没有找到 C 编译器。打开 Xcode(5.1.1 新装的版本,从官网下载的),从 Preferences 的 Downloads 里下载,发现空空如也,看来苹果的服务端已经放弃支持。又到命令行下执行 xcode-select --install 碰运气,报 --install 不认识。最后还是再次登录开发者账户后下载到的 Command Line Tools(期间还经历了要解锁因不明安全原因锁定了的账户)。安装之后,xz 配置、构建、安装一气呵成。

这下就可以把 curl 从 xz 里释放出来了。第一时间执行 curl --help 成功,满心欢喜地将之把系统自带的 /usr/bin 下的原始档给替换掉了。再次执行 iOSOpenDev 的 .pkg 安装包,再次失败。再次查看日志,发现这个新版本的 curl 运行竟然报错!错误信息是 _clock_gettime 这个符号找不到。搜到 curl 官方项目中的一个 issue,正是此事,但可惜没有看到可靠的解决方案。

其实吧,变通方案心里一直是有的。那就是老夫自己写个名为 curl 的脚本临时替掉系统内的 curl,把已经在其他地方下载好的文件直接放到期望的目录中,一次性即可完成此工作。再探探正路,不行就这个办法了。

更新(2024-04-24):已经使用变通方案搞定。

另,存一个开发介绍贴:iOS越狱开发指南 – 简书 (jianshu.com)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注