zoukankan      html  css  js  c++  java
  • [Mac OS X] 最简Bundle的建立

    Mac OS X上的GUI程序不可以直接被运行可执行文件(否则会产生一个无法操作的死窗口),而必须以Bundle的形式运行。 Bundle本质上是一个文件夹,但由于其内容有组织,所以可以被系统识别,在Finder中被双击时可以直接执行。 Mac OS X上的绝大多数软件都是以一个Bundle的形式发布,有点像Windows下所谓的“绿色软件”的概念。

    要建立一个Bundle,标准的方式是通过xcode。也可以手工的制作文件夹结构。关于Bundle的结构,可阅读Apple的相关文档

    本文介绍如何手工建立一个只满足最小需要的Bundle。


    一个Bundle就是一个以.app为后缀的文件夹。里面至少要建立如下文件夹结构: 

    MyApp.app/
    Contents/
    Info.plist
    MacOS/
    execuable_bin

    这里execuable_bin指你的可执行程序,可以任意命名。其他文件和文件夹则要严格按照上面的表格命名。


    Info.plist文件需要手工建立,推荐使用OS X自带的plist文件编辑器建立,也可以直接使用文本编辑器建立。

    通过Info.plist可以设置很多东西,但最少要包括如下内容:

    CFBundleName (Bundle name) # 程序名 CFBundleDisplayName (Bundle display name) # 程序的显示名称 CFBundleIdentifier (Bundle identifier) # 程序的标识 CFBundleVersion (Bundle version) # 版本号 CFBundlePackageType (Bundle OS Type code) # 这项要统一设为APPL CFBundleSignature (Bundle creator OS Type code) # 为这个程序起一个四个字母的短名 CFBundleExecutable (Executable file) # 可执行文件的名字

    点此可以下载一个Info.plist文件的示例。

    建立了上面结构的一个文件夹,一个可以直接运行的Bundle就建好了。推荐使用Makefile来自动建立bundle,下面是一个Makefile示例:

    bundle: Info.plist testApp
    mkdir -p testApp.app/Contents/MacOS
    cp Info.plist testApp.app/Contents/
    cp testApp testApp.app/Contents/MacOS/testApp
  • 相关阅读:
    ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
    POJ 1088 滑雪 DP
    UVA 11584 最短回文串划分 DP
    POJ 2531 Network Saboteur DFS+剪枝
    UVa 10739 String to Palindrome 字符串dp
    UVa 11151 Longest Palindrome 字符串dp
    UVa 10154 Weights and Measures dp 降维
    UVa 10271 Chopsticks dp
    UVa 10617 Again Palindrome 字符串dp
    UVa 10651 Pebble Solitaire 状态压缩 dp
  • 原文地址:https://www.cnblogs.com/nicebear/p/2026085.html
Copyright © 2011-2022 走看看