MacOS:使用纯C++创建一个简单的MacAPP的Demo(可以双击运行的那种) MacOS使用纯C创建一个简单的MacAPP的Demo(可以双击运行的那种)有没有想过Mac上那些app是怎么做出来的里面都包含了什么东西今天就来做一个最简单的Mac APP。背景Mac的app安装方式就是把xx.app拖拽到/Applications目录下且/Applications目录下有很多文件夹(对应着一个个的软件)。每个xx.app其实都是一个文件夹里面有可执行文件、资源、元信息等只是Mac把这种特殊的文件夹显示为应用图标并且在你双击这种文件夹的时候直接按照元信息运行其中的可执行程序罢了。超小的.app制作新建一个空的文件夹如“testMacAPP”进入这个文件夹创建一个main.cpp并写入如下内容#includecstdlibintmain(){system(osascript -e tell application \Terminal\ to activate);system(osascript -e tell application \Terminal\ to do script \echo Hello from C App; read\);return0;}在此文件夹下创建Hello.app/Contents/MacOS子文件夹编译上述cpp源码并将可执行程序放到Hello.app/Contents/MacOS文件夹下clang main.cpp-oHello.app/Contents/MacOS/Hello接下来在Hello.app/Contents文件夹下创建Info.plist文件并写入以下内容?xml version1.0 encodingUTF-8?plistversion1.0dictkeyCFBundleExecutable/keystringHello/stringkeyCFBundleIdentifier/keystringxyz.letmefly.example.simpleapp.hello/stringkeyCFBundleName/keystringLets Hello/string/dict/plist然后你的app就做好了。最终结构如下testMacAPP ├── Hello.app │ └── Contents │ ├── Info.plist │ └── MacOS │ └── Hello └── main.cpp这个Hello.app文件夹就是一个可以双击运行的Mac app。现在打开testMacApp文件夹可以看到Hello.app不是一个普通文件夹的图标而是一个默认应用的图标。双击这个应用会弹出弹窗问是否允许这个应用控制“终端”点击允许后重新运行下这个应用可以看到弹出了一个终端上面有如下类似的字样echoHello from C App;read➜ ~echoHello from C App;readHello from C App等你随便输入一些东西并按下回车后将会变成一个普通的终端。小app一键生成脚本也可以运行下面的脚本一键生成mkdir-pHello.app/Contents/MacOScatmain.cppEOF #include cstdlib int main() { system(osascript -e tell application \Terminal\ to activate); system(osascript -e tell application \Terminal\ to do script \echo Hello from C App; read\); return 0; } EOFclang main.cpp-oHello.app/Contents/MacOS/Hellochmodx Hello.app/Contents/MacOS/HellocatHello.app/Contents/Info.plistEOF ?xml version1.0 encodingUTF-8? plist version1.0 dict keyCFBundleExecutable/key stringHello/string keyCFBundleIdentifier/key stringxyz.letmefly.example.simpleapp.hello/string keyCFBundleName/key stringLets Hello/string /dict /plist EOFThe EndThe End, Thanks!同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~千篇源码题解已开源