浅析 WPS for Mac(版本 WPS_For_Mac_Alpha_1.2.3(321))的安装过程,有疑惑的看看它安装过程都干了什么

2018-07-12 12:34:31 +08:00
 TonyLiu2ca

普通的安装过程无非是复制文件和适当配置,无他。下面直奔主题:

分发包

WPS_For_Mac_Alpha_1.2.3(321).pkg 是以分发包的格式封装的,利用 macOS 自带的安装器(Installer)进行安装。除了 Installer 提供的基本步骤外,没有使用其它复杂技术进行特殊的定制。 主要需要说明的是下面两个部分:

<bundle CFBundleShortVersionString="1.2.3" CFBundleVersion="321" id="cn.wps.presentation" path="wpp.app"/>
   <bundle CFBundleShortVersionString="1.2.3" CFBundleVersion="321" id="cn.wps.spreadsheets" path="et.app"/>
   <bundle CFBundleShortVersionString="1.2.3" CFBundleVersion="321" id="cn.wps.writer" path="wps.app"/>
<choice id="cn.wps.writer" visible="false">
  <pkg-ref id="cn.wps.writer">
    <must-close>
      <app id="cn.wps.writer"/>
      <app id="cn.wps.presentation"/>
      <app id="cn.wps.spreadsheets"/>
    </must-close>
  </pkg-ref>
</choice>

组件包

真正的程序文件都在组件包(wpsoffice.pkg)中,负载很简单只有三个程序:et.app, wpp.app 和 wps.app 装前脚本很简单,就是杀掉了 wpscloudsvr 进程。而最关键的要说是装后脚本了,这个也是重点,几乎所有的 pkg 包都会在装后脚本中做文章,WPS 也不例外。

这里只挑关键的行分析。

for lang in `ls "Library/Application Support/Kingsoft/WPS Cloud Files/userdata"`
do
  for filename in `ls "Library/Application Support/Kingsoft/WPS Cloud Files/userdata/${lang}"`
  do
     if [ ${filename} != "config.ini" ]; then
        focus_remove_folder "Library/Application Support/Kingsoft/WPS Cloud Files/userdata/${lang}/${filename}"
		fi
	done
done

小结

至此完全解读了它的安装过程。其实它的主要的过程和目的就是为了节省安装包和 app 的空间,将共享程序和数据都存放在了系统的 "/Library/Application Support/Kingsoft ” 目录中,这个就如同网上流行的给 M$ Office for Mac 瘦身的思路是一样的。

不过,就现在的网络速度和存储,没有必要这样做,直接放在每个 app 中就好,做成 DMG 格式的拖拽分发也是不错的选择,可以打消好多人的疑虑不是。至于如何分辨是否第一次运行,有很多其它方法不是。

还可以看出,它的第一个发布版本很可能不会使用沙盒技术。从诸多方面来看,它离上线 App Store 还有一段路要走,也说不定他们不想上吧。

卸载

从上面的分析可以看出,如果只是安装还没有运行,那么完全删除它很简单, 就一行命令:

rm -fr /Applications/et.app /Applications/wpp.app /Applications/wps.app "/Library/Application Support/Kingsoft"

如果有洁癖的最多加一句:

pkgutil --forget "cn.wps.writer"
4026 次点击
所在节点    Apple
22 条回复
xratzh
2018-07-13 14:24:22 +08:00
我用的国际版加上中文包
chenjau
2018-07-13 23:37:37 +08:00
就算今天不流氓,明天也要流氓。也没必要用,这公司这产品,劣迹斑斑,还信它那脑子有问题。wps 是刚需吗?有商业的 msoffice,有免费原生的 iwork,有开源的 libre,为什么就非得投这种坑?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/470189

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX