Bundle编程指南

摘译自:http://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html#//apple_ref/doc/uid/10000123i


Bundle编程指南

1. Application bundles是开发者创建的最常用的一种bundle。Application bundles存储了应用成功运行需要的所有东西。

2. 哪些文件会被打包到Application Bundle中

    Info.plist:配置信息文件

    Executable:可执行文件

    Resource files:资源文件

    Other support files:其它的支持文件

3.     Xcode提供的项目模板为iPhone或iPad应用做了设置bundle的大部分工作。Bundle使用一种扁平的结构,其中很少有目录,从而节省磁盘空间和简化文件的存取。

4. 典型的iOS Application bundle包含应用的可执行文件和应用使用的资源(比如应用图标、其它的图片、本地化内容),它们位于bundle的最顶层目录。

5.      一个iOS应用应该国际化并且针对支持的每种语言有一个language.lproj文件夹。除了提供应用自定义的资源的本地化版本,应用的图标和应用加载时的图片也需要本地化,通过把相同名字的图片放到语言特定的目录。即使你提供了本地化版本,你也需要在应用bundle的顶层目录中包含这些文件的默认版本。当没有一个特定的本地化资源可用时,会使用默认的版本。

6.       每一个iOS应用必须有一个information property list(Info.plist)文件,它包含应用的配置信息。当创建一个新的iOS应用时,Xcode自动的创建这个文件,并设置一些键值的默认值。

7. 应用程序图标和加载时的图片是每个应用程序必须提供的。每个应用必须指定在设备的Homescreen上显示的图标。一个应用可能需要指定多个不同图标用于不同的情况。比如,应用可以提供应用程序图标的一个更小版本用于在搜索结果中显示。应用程序图标和应用加载时的图片必须必须位于bundle的顶层目录。识别系统中的这些图片的方式不止一种,建议使用键值CFBundleIconFile指定应用程序图标。关于这个的更详细的讨论可以查看”iOS Application Programming Guide”中的“Bulid-TimeConfiguration Details”.

8.  在一个iOS应用中,非本地化的资源和应用的可执行文件、info.plist位于bundle目录的顶层目录中。大多数iOS应用在这个层级至少有一些文件,比如应用程序图标、加载时的图片、一个或多个nib文件。尽管你需要把大多数非本地化的资源放到最顶层目录,你同样可以创建子目录用于组织这些资源文件。本地化资源必须放到一个或多个语言特定的子目录,更多信息可以查看“ “Localized Resources in Bundles.””,关于在bundle中查找资源文件的信息可以查看 “Accessing aBundle's Contents.”。关于如何加载资源文件及如何在应用中查看它们,可以查看“ ResourceProgramming Guide.”。

9.   创建ApplicationBundle:所有新的应用工程包含一个合适的配置好的应用target,它定义了编译一个Application bundle所需要的规则。包括需要编译哪些代码文件、需要把哪些资源文件拷贝到bundle中等等。新的工程也包含一个配置好的Info.plist和其它的一些文件帮助你很快的开始。你可以根据需要添加自定义的文件。更多在Xcode中配置targets的信息,可以查看“Xcode Build System Guide”。

10. Localized Resources inBundles:在一个iOS Application bundle的顶层目录中,你可以创建一个或多个语言特定的项目文件用于保存语言和区域特定的资源。每个目录的名字为,一个本地化对应的语言和区域加上.lproj后缀,可以通过以下的方式指定语言和区域:language_region.lporj。目录名字的语言部分是一个符合ISO 639规范的两个字母的编码,区域部分是符合ISO3166规范的两个字母的编码。尽管区域部分是可选的,但是当你想针对一个语言的特定的区域本地化时,它是一个有用的方式。

11.应用加载bundle中的资源时,代码首先在区域特定的目录中查找资源,然后到语言特定的目录中查找资源,如果没有本地化目录包含这个资源,代码查找一个合适的非本地化资源。

12.    更多关于本地化资源的信息,可以查看InternationalizationProgramming Topics。

 


你可能感兴趣的:(Bundle编程指南)