V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  macwk  ›  全部回复第 1 页 / 共 1 页
回复总数  1
2021-04-16 11:55:24 +08:00
回复了 cmichael 创建的主题 macOS macwk 的 app 安装非得搞成命令行的形式,是何用意?
我是站长,统计来源到这儿来的,来回复一下,我尽量简单一点来说一下这个事儿。

做这个网站最主要的原因是当初自己下软件遇到了不少问题,比如:需要开会员、无安装激活步骤或看不明白、有挖矿程序、被马克丁之类的代理商全内网下架、下载速度慢等等,总之下载个应用非常的麻烦。

所以就做了这个网站,自己装软件方便顺带也方便大家,期间过程就不再赘述了。

一、为什么不使用 TNT/HCiSO/官方包 而非得换一种打包方式并且使用二进制 bash 脚本的方式安装。

换打包方式是为了操作体验的一致性,而且在下载页面明确标注了应用的来源是 TNT/HCiSO/开源 /官方 等渠道。还有几十款是我自己买的激活码发出来的。

用和谐软件永远避不开一个运行损坏的问题,而要修复损坏需要开任何来源,开任何来源就需要执行命令,而它需要电脑密码。

1. 最初并没有用二进制的方式,用的就是传统的拖拽安装+安装必读文档。逻辑是用户拖拽安装后,如果运行显示损坏,如果还不能解决就打开安装必读文档看看相应的解决方法,而网站的文章区我也把常见的问题都单独发了文章。

但是呢,慢慢地发现不少的用户遇到问题几乎不会点开那个安装必读的文档查看,而是选择加你的 QQ/发邮件问你如何解决。

2. 于是做了第二次打包的改进,加了一个修复损坏的脚本(本着分享精神,脚本是可查看源代码的,判断应用是否安装,运行异常代码是多少,判断代码执行不同的命令),遇到损坏的问题只需要执行一下它,然后输电脑密码回车即可。这时候的逻辑就成了用户拖拽安装后,如果运行显示损坏,就执行包内的修复损坏脚本,如果还不能解决就打开安装必读文档看看相应的解决方法。就这么个东西,用户还没帮多少就被那些同行改个名称拿去直接用了,免费分享站点没啥问题,大家目的是分享,而那些收费的站点看着实在膈应。

3. 包内有文档,下载页的下载按钮下有问题解决方法,但是架不住不看呀。用户量慢慢变大后每天被无数同样的问题反复问来问去,如果刚好本身工作稍忙一点,你要心态就很炸,我还有一个强迫症,看到问题不回就惦记着。

4. 因为我本身也是互联网的从业者,工作也比较多,而打包、更新、回答问题都挺费时间的。

5. 是因为 TNT 的签名当 macOS 升级后往往会被苹果删除,一旦删除运行将会损坏 /闪退,甚至还会提示损害电脑。包括一些官方发的应用也是如此,偶尔也会掉签名,运行不了(比例较小),这个说明了什么?它说明了当初你下载安装的时候它可以正常运行,但是现在就运行不了!

为了解决这几个问题,所以我就认真的来思考应该怎么做。经过认真思考后,无奈使用了 bash 脚本这个方案,最主要的是兼容性好!然后将其转为二进制加密(当初实在找不到更好的解决方案,不过前端时间我在学习 swift 的时候感觉到了一丝希望,就是直接调用系统的指纹解锁的模块,正在研究中...)。


那现在的安装解决了用户什么问题?

1. 会根据应用进行判断执行相关的命令行,安装后再也不会出现已损坏之类不能运行的提示了。(需提权)
2. 会根据应用进行判断是否需要写入 hosts 屏蔽官方验证,并且 hosts 文件中会明确的标示屏蔽信息来自于哪个应用,你也可以选择手动屏蔽,方便你后期进行管理。(需提权)
3. 会根据应用判断是否需要注册机,需要就运行注册机并打开激活步骤(运行注册机也需绕过签名,需提权)
4. 会根据应用判断是否需要注册码,需要就打开激活步骤(内附激活码)
5. 会根据应用判断是否需要许可证,需要就自动进行激活
6. 会判断你电脑是否已安装此应用,已安装会提示你是否覆盖安装(需提权)
7. 会检查应用是否正在运行,在覆盖前提示你保存当前工作(需提权)
7. 会根据应用判断是否安装汉化包,需要就安装,不需要就不安装。(有些应用需提权)
8. 安装完成后会提示你是否运行
8. 运行时会判断应用的运行状态,如果需要签名则提示安装 command line tools 自动签名。(需提权)
9. 安装完成后会提示你是否删除安装包节省电脑磁盘空间
10. 安装完成后会自动关闭安装程序以及终端(偶尔也需提权)

还有一点比较重要的是安装最开始会弹窗告诉你,软件下载是免费的,如果是从其它地方购买的,请联系对方退款。

解决了我什么问题?

全自动打包,我只需要将下载的 dmg/zip/pkg/app 放到指定的文件夹内,然后执行一键打包,会根把我设置的规则进行打包,打包过程中会读取应用的架构信息、用户版本号、构建版本号、大小、最低系统要求等信息,打包完成后通过接口将 dmg 上传到网盘,上传成功后判断网站数据库是否有此应用,有的话将版本、下载地址等信息更新到网站的数据库,没有的话则进行创建。

以上有需提权的地方都需要密码。

最后,你可以去网站的 IntelliJ IDEA 的评论区看看,使用传统打包,包内的激活步骤不看说激活不了的老花眼的人有多少。

实在没有更好的办法,我想做个精品 mac 应用分享站,没有利益关系。网站是靠一部分用户的打赏来支付 cdn/带宽 等服务器支出,然后加上我的人力来维系,从来让大家可以免费下载到软件。但说来说去就我一个人,人力总归是有限的,我只能想方设法的在不牺牲体验的情况下节省自己的时间。

综上,就是我的用意。另外,在我这儿,免费可以,开源不行,原因很简单,目前不具备开源的环境。但我可以保证除了和软件相关的操作,不会进行多一点点越权的操作,只有要,尽可各大平台曝光让我身败名裂。你可能没经历过直接在淘宝、咸鱼上假冒网站的名义卖软件建付费群的这些骚操作。还有不明白地方,可以在这继续提问。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3672 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 04:16 · PVG 12:16 · LAX 20:16 · JFK 23:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.