我的第一个 OS X App

写第一个 OS X App 的时候,本来是想用 Xcode 做一个标准的 Mac App。(别闹,不会 C++ 怎么写 App)
但是当我随手打开桌面上的 Counter-Strike:Global Offensive 的时候,就不淡定了。OSX 软件 .app 结构真简单

OS X App 的结构很简单
声明各种属性的 Info.plist,其中有启动脚本/二进制程序、软件图标、是否支持 retina 屏幕等属性……
启动脚本和二进制程序存储在 MacOS 目录下
软件图标存储在 Resources 目录下

其中遇到了一个难点就是 icns 图标的生成,下面记录一下制作方法。

1.新建一个文件夹,里面添加如下的 PNG 文件,尺寸看名字。
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
2.给文件夹添加扩展名 .iconset
3.打开终端,运行命令
iconutil -c icns abc.iconset
输出的 abc.icns 就是输出的图标文件。

还有一个难点就是用系统自带终端启动指定脚本,在 stackoverflow 搜索到了以下方法:
open -b com.apple.terminal someshell.sh

最后打包 DMG,设置背景图片和磁盘图标,在磁盘工具压缩 DMG。
这样,我的第一个 Mac App 就完成了。

嗯,以后再试试 pkg 格式的安装程序怎么制作。

继续阅读→

OS X 上两款虚拟机 VMware Fusion 和 Parallels Desktop 个人感觉

由于某些原因,需要在 Mac 下运行虚拟机,个人使用了几天,得出了如下感受

VMware Fusion

VMware Fusion 延续了 VMware Workstation 的核心,操作界面则是类似于 OS X 的系统配置页面
优点:Unity 窗模式下口采取简单的区域截图逻辑
缺点:
1. 使用 retina 屏幕时 Unity 模式下窗口文字为正常的 2 倍大小
(OS X 是 2880x1800 分辨率外加 200% PPI 而 VMware Fusion 的 Unity 模式使用 1440x900 分辨率同时使用 200% PPI)
2. 对虚拟 Mac 支持欠佳(简要来说就是要按照黑苹果教程来一遍)

Parallels Desktop

Parallels Desktop 在 Mac 界被称为 OS X 下最好的虚拟机软件
优点:在使用 Mac 虚拟机时,直接将主机的硬件信息传递给虚拟机(免除破解黑苹果步骤)
缺点:
1. 和 VirtualBox 冲突,开启 VirtualBox 后,Parallels Desktop 直接崩溃
2. 看似让体验更加的 Windows 窗口透明在 QQ 软件打开时造成宿主机 CPU 占用过高,严重影响续航

VirtualBox

嗯……这个只是用来跑 Genymotion (Android Emulator) 用的

VMware Fusion 和 Parallels Desktop 在耗电上平分秋色,所以,我在虚拟 Windows 时使用 VMware Fusion,在虚拟 Mac OS X 时使用 Parallels Desktop虽然用的都是盗版(逃)