为了账号安全,请及时绑定邮箱和手机立即绑定

如何移植一个Windows的桌面程序到MAC电脑上

标签:
产品

还是偶尔会有客户提出MAC电脑的需求,比如最近防火墙上的***客户。
那么,如果你原来有一个客户端程序不支持MAC,如何让他支持起来呢?

周末研究了一下,基本搞定,记录下过程。

刚开始构思的时候,想到如下需要按顺序解决的问题:

  1. 原来的源代码,MAC要有运行环境(至少大部分代码可运行)

  2. MAC用的是cocoa界面方案,原来的WEB或者MFC什么的,界面部分肯定是需要改造了

  3. 一个符合MAC安装规范的,有B格的安装方案

先来看“1、原来的源代码,MAC要有运行环境(至少大部分代码可运行)”这部分。
理论上只要是支持MAC运行环境的开发语言,MAC上都能跑起来。比如c,c++,java,python,这部分问题不大。不过麻烦的是,之前的***客户端是c、java、php、以及虚拟网卡驱动,混合编程的一个产物。那么就需要分头去找对应的MAC环境运行库。java、网卡驱动都能找到,c部分可以用xcode重新编译一下,这部分问题不大。

再看“2、MAC用的是cocoa界面方案,原来的WEB或者MFC什么的,界面部分肯定是需要改造了”
之前界面是web方案:
Web作为界面,负责登陆、配置显示;驱动和隧道部分,使用c写的。Web采用java的applet插件作为桥梁,负责和驱动、隧道的通讯、拉起等动作。
存在的问题:
Java插件要求客户主机预装java运行环境,但是Java近年漏洞多多,浏览器对java支持和限制都很多,有些环境下会默认禁止java插件。另外,web插件运行在web线程里面,限制也不少,需要处理的运行问题需要思考周全。
思路:
抛弃web客户端模式,采用app开发模式自写一套界面。至于语言,可以用cocoa,qt,也可以基于现有java代码改造一套swing的界面方案。

最后再来看“3、一个符合MAC安装规范的,有B格的安装方案”
考虑到是一个商业产品,做成绿色的软件,让用户从目录点开执行,B格太low。
那么就要找寻一下打包工具,类似NSIS这样的windows下的安装包打包工具。找呀找,终于找到一个,叫做Packages的工具,符合要求。
但是打包工具只能帮你做到拷贝文件、执行脚本这里。 如果想再苹果电脑的applications里面生成一个图标,成为一个真正的app,还需要再做点事情。

MAC的安装很简单,只需要把可执行文件拖到/Applications目录里面就可以了。但也不是任何可执行文件就可以,需要是符合MAC规范的app后缀文件。怎么得到这个东西呢?这时候,就需要祭出XCODE了。
说一下结果,详细尝试繁杂过程不表。
1、新建一个cocoa工程(当然swift)也可以
2、开发语言支持c,c++,oc。本着熟悉原则,用c
3、在main.m里面,写下:
#import <Cocoa/Cocoa.h>

int main(int argc, const char * argv[]) {
system("/Applications/NF/bin/so.sh");
exit(0);
}
意思是,启动后,执行客户端启动脚本,然后界面退出。需要注意的是,cocoa工程会默认启动一个window,需要把它设置为长宽都是0,避免一闪而过让客户不爽。
4、压缩打包。export一个app出来,搞定

综上,过程告一段落。可以在加点图标美化,商业味道就出来了。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消