cfbundlepackage typetype干什么用个

4845人阅读
iOS(278)
在XCode7上传应用时,上传失败遇到两个错误,提示如下:
ERROR ITMS-90535: &Unexpected CFBundleExecutable Key. The bundle at 'xxxxx.app/TencentOpenApi_IOS_Bundle.bundle' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.&
ERROR ITMS-90529: &Invalid package. Applications built with sdk 9.0 or later must be packaged as proper IPA files.&
对于问题1:
修改Info.plist文件
找到这个Bundle,删除info.plist里边的Executable file这一项(删除蓝色箭头指向的那一个,注意是腾讯SDK里边的那个info.plist)
对于问题2:
按照错误提示原先上传的是.zip文件,现在需要上传 .ipa文件。将xcode编译的.app文件放入Payload文件夹内,压缩成.zip文件,修改其后缀为.ipa文件,即可。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1450169次
积分:14915
积分:14915
排名:第1476名
原创:216篇
转载:357篇
评论:191条
(7)(6)(7)(1)(4)(4)(8)(13)(20)(13)(13)(13)(13)(12)(18)(31)(11)(14)(24)(13)(4)(19)(13)(12)(7)(10)(3)(6)(17)(23)(33)(18)(17)(29)(18)(1)(8)(2)(4)(8)(6)(12)(4)(10)(5)(3)(2)(1)(2)(3)(5)(5)(1)(1)(2)(1)(2)原地址:.cn/s/blog_947c4a9f0100zf41.html
们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。
如果你在网上下载的工程中的这个文件名只是Info.plist,那么恭喜你,这个工程太老了,是用包含SDK2.0以前的Xcode生成的,不过没关系,不影响使用。
如果你使用文本编辑器打开这个文件,你会发现这是一个XML格式的文本文件,一般我们不用文本编辑器直接编辑这个文件,而是通过Xcode编辑。
下面是这个文件的一个例子:
下面是对这里可能出现的字段的解释:
Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果用户所在地没有相应的语言资源,则用这个key的value来作为默认.
Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称。应用程序名称限制在10-12个字符,如果超出,将被显示缩写名称。
Executaule file -- CFBundleExecutable 程序安装包的名称
Icon file --- CFBundleIconFile 应用程序图标名称,一般为icon.png
Bundle identifier --- CFBundleIdentifier 该束的唯一标识字符串,该字符串的格式类似com.yourcompany.yourapp,如果使用模拟器跑你的应用,这个字段没有用处,如果你需要把你的应用部署到设备上,你必须生成一个证书,而在生成证书的时候,在apple的网站上需要增加相应的app IDs.这里有一个字段Bundle identifier,如果这个Bundle identifier是一个完整字符串,那么文件中的这个字段必须和后者完全相同,如果app IDs中的字段含有通配符*,那么文件中的字符串必须符合后者的描述。
InfoDictionary version --- CFBundleInfoDictionaryVersion&&Info.plist格式的版本信息
Bundle OS Type code -- CFBundlePackageType:用来标识束类型的四个字母长的代码,(网上找的,不解??)
Bundle versions string, short --- CFBundleShortVersionString 面向用户市场的束的版本字符串,(网上找的,不解??)
Bundle creator OS Type code --- CFBundleSignature:用来标识创建者的四个字母长的代码,(网上找的,不解??)
Bundle version --- CFBundleVersion 应用程序版本号,每次部署应用程序的一个新版本时,将会增加这个编号,在app store上用的。
Application require iPhone environment -- LSRequiresIPhoneOS:用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。您不应该改变这个键的值。
Main nib file base&name --&NSMainNibFile&这是一个字符串,指定应用程序主nib文件的名称。如果您希望使用其它的nib文件(而不是Xcode为工程创建的缺省文件)作为主nib文件,可以将该nib文件名关联到这个键上。nib文件名不应该包含.nib扩展名。这个字段可以删除,你可以参考我前面的文章,main函数研究。
supported interface orientations -- UISupportedInterfaceOrientations&程序默认支持的方向。&
下面是转载的。
Application uses Wi-Fi如果应用程序需要wi-fi才能工作,应该将此属性设置为true。这么做会提示用户,如果没有打开wi-fi的话,打开wi-fi。为了节省电力,iphone会在30分钟后自动关闭应用程序中的任何wi-fi。设置这一个属性可以防止这种情况的发生,并且保持连接处于活动状态更多的字段信息可以参考开发者网站。
转载:http://blog.csdn.net/nicktang/article/details/6875234
阅读(...) 评论()IOS APP配置.plist汇总(转自coolweather ) - 沧海一粟-啊添 - 博客园
随笔 - 114
此文转自/bbs/read.php?tid=89684&page=1
整了一下了,分享給大家&&& 1.&&&& Application does not run in background(键名:UIApplicationExistsOnSuspend)自从iOS4.0之後,當你在應用程式執行的時候按下Home鍵,應用程式並不會中斷目前的執行,而是躲到背景去了。因此希望使用者在按下Home鍵之後就要中斷目前程式的執行,請勾選這個選項。&&& 2.&&&& Application requires iPhone environment(键名:LSRequiresIPhoneOS)iOS的家族繫ㄌㄧ誒主要包含了iPhone,iPad,iPod Touch這三種設備。因此如果你的應用程式只能在iPhone環境下使用的話,請勾選這選項。&&& 3.&&&& Application supports iTunes file sharing(键名:UIFileSharingEnabled)在iTunes9.1之後的版本增加了一個檔案共享的功能,只要打開info.plist裡面的這個選項,然後把你要共享的檔案儲存在Documents目錄裡面,就可以在iTunes裡面的應用程式標籤頁看到這份文件。&&& 4.&&&& Application uses Wi-Fi(键名:UIRequiresPersistentWiFi)如果你的應用程式需要使用的WiFi來連線的話,那麼你可以開啓這個功能。當使用者在執行這個應用程式的時候並未開啓WiFi,那麼在畫面上會自動跳出對話框要求開啓WiFi。&&& 5.&&&& Bundle creator OS Type code (键名:CFBundleSignature)CFBundleSignature是一個四個字母長度的字串,用以表示開發者對於應用程式的標識。例如:在一個文字編輯的應用程式,你可以標識為&ttext&。&&& 6.&&&& Bundle display name(键名:CFBundleDisplayName)應用程式本土化的顯示名稱,預設值為${PRODUCT_NAME}。這個變數可以在雙敲擊Targets後出現的專案設定畫面中修改,找到&Product Name&後修改為你的產品名稱就可以了,編譯後的.app也會以這個名稱命名。&&& 7.&&&& Bundle identifier(键名:CFBundleIdentifier)用來標示應用程式的唯一ID,通常是以反向的DNS方式命名的,例如:com.myCompany.myApp,這個名稱應該在iTunes Connect裡面新增的應用程式ID一致。&&& 8.&&&& Bundle name(键名:CFBundleName)應用程式的短名稱,通常就是你的應用程式名稱。&&& 9.&&&& Bundle OS Type code(键名:CFBundlePackageType)用來標識整個封包的(bundle)的類型。在Mac裡面,一個封包可能是一個檔案或目錄,其目的在於將軟體使用到的資源包在一起。例如應用程式應標識為APPL。&&& 10. Bundle version(键名:CFBundleVersion)用以標識編譯版本(Bundle number),你可以使用任何字串格式來表示這個版本。例如使用一個數字來表示編譯次數。&&& 11. Bundle version string,short (键名:CFBundleShortVersionString)應用程式的版本,通常是以三個數字來表示版本號,例如:1.0.1。&&& 12. Executable architectures(键名:LSExcutableArchitectures)為一個陣列形態的設定值。用以設?*****绦袚蹩梢赃\行的架構環境,例如:i386,ppc,ppc64,x86_64&&& 13. Executable file(键名:CFBundleExecutable)執行檔的名稱。&&& 14. Fonts provide by application(键名:UIAppFonts)為一個陣列形態的設定值。用來指定應用程式所使用的外部字型。你可以在應用程式內使用自己的字型檔,只要將字型檔案加入到專案內,在設定值指定字型檔名稱就可以在程式碼裡面使用到這些字型了。&&& 15. Get Info string (键名:CFBundleGetInfoString)用於Mac的Finder上的應用程式的描述。&&& 16. Icon already includes gloss effects(键名:UIPrerenderedIcon)指定應用程式的圖示是否加上光暈效果,如果不希望加上光暈效果,那麼勾選此選項。&&& 17. Icon file(键名:CFBundleIconFile)用來設定應用程式的圖示檔,如果沒有指定的話,則使用預設值Default.png,依照Apple的規定,這個圖是必須是57x57的圖形檔。&&& 18. Icon files(键名:CFBundleIconFiles)由於iPhone與iPad的開發工具以及SDK都是相同的,因此同一個應用程式也可以同時在兩個設備上使用,只不過兩著的圖是不太一樣。這個鍵值是一個陣列類型的設定值,用來指定iPhone與iPad的應用程式圖示,你只要給兩個圖示檔名,其中iPhone的圖示為57x57 pixel,iPad則為72x72 pixel,系統會自動依照圖示大小判斷該圖示是使用在哪種設備上。&&& 19. Info dictionary version(键名:CFBundleInfoDictionaryVersion)info.plist格式的版本。一般來說,我們不會變動這個數值。&&& 20. Initial interface orientateon(键名:UIInterfaceOrientation)指定應用程式初始時的方向。&&& 21. Laumch image(键名:UILaunchImageFile)用以指定應用程式啓動時的圖檔。&&& 22. Localization native development region(键名:CFBundleDevelopmentRegion)應用程式原始的語系版本。&&& 23. Localizations(键名:CFBundleLocalizations)用以指定應用程式所支援的語系。&&& 24. Localized resources can be mixed(键名:CFBundleAllowedMimxedLocalizations)是否允許應用程式可以取得框架庫內的語系檔。&&& 25. Main nib file base name(键名:NSMainNibFile)主要的Nib檔案名稱,預設值為MainWindow。&&& 26. Renders with edge antialisasing(键名:UIViewEdgeAntialiasing)設定core animation的圖層是否開啓抗鋸齒功能。&&& 27. Renders with group opacity(键名:UIViewGroupOpacity)設定core animation的圖層使否繼承上一層透明度。&&& 28. Required background modes(键名:UIBackgroundModes)設定當應用程式進入背景執行後,哪些動作要繼續在背景執行。這個鍵值是一個陣列類型的設定,可設定動作包括:audio,locateon,voip。&&& 29. Required device capabilities(键名:UIRequiredDeviceCapabilities)設定應用程式需要使用到的硬體,如此可以確定應用程式在該設備上執行時不會發生錯誤。&&& 30. Status bar is initially hidden(键名:UIStatusBarHidden)設定狀態列是否一開始隱藏。&&& 31. Status bar style(UIStatusBarStyle)設定狀態列的顯示類型。&&& 32. Supported external accessory protocols(键名:UISupportedExternalAccessoryProtocols)指定應用程式與外界硬體配件間支援的通訊協定,這個鍵值是一個陣列設定,可以指定多個通訊協定。&&& 33. Supported interface orientateons(键名:UISupportedInterfaceOrientations)設定應用程式所支援的顯示模式(肖像模式或風景模式),這個鍵值是一個陣列,可以支援多個不同的顯示模式。&&& 34. Supported interface orientateons(键名:UIUpgradeOtherBundleIdentifier)設定應用程式所支援的顯示模式(肖像或是風景模式),這個鍵值可以支援多個不同的顯示模式。iPhone中的info.plist文件
plist文件,Property List 文件,一般都是xml文件格式,用于描述应用软件
主要包括如下:
CFBundleDevelopmentRegion
该束的地区。通常对应于作者的母语。
CFBundleDisplayName
本地化的束名。
CFBundleDocumentTypes
一组描述了该束所支持的文档类型的字典。
CFBundleExecutable
该束的可执行文件名。
CFBundleGetInfoHTML
用来在Finder的Get Info 面板中显示的更丰富内容的字符串。
CFBundleGetInfoString
用来在Finder的Get Info 面板中显示的字符串。
CFBundleHelpBookFolder
含有该束帮助文件的文件夹名字。
CFBundleHelpBookName
当该束的帮助启动时显示的帮助文件的名字。
CFBundleIconFile
图标文件的文件名。
CFBundleIdentifier
该束的唯一标识字符串。该字符串的格式类似java包的命名方式,例如:com.apple.myapp。
CFBundleInfoDictionaryVersion
Info.plist格式的版本信息。
CFBundleName
束的简称。
CFBundlePackageType
用来标识束类型的四个字母长的代码。
CFBundleShortVersionString
面向用户市场的束的版本字符串。
CFBundleSignature
用来标识创建者的四个字母长的代码。
CFBundleURLTypes
一组描述了该束所支持的URL协议的字典。
CFBundleVersion
可执行文件的创建号。
CFBundleDevelopmentRegion
CFBundleDevelopmentRegion关键字指定了一个字符串值来标识束的地区。通常对应于作者的母语。如果不能找到用户首选的地区或语言的资源,系统最后会使用该值。
CFBundleDisplayName
CFBundleDisplayName关键字指定了一个字符串值来标识束的显示名称。Finder和其他用户界面组件会把它显示给用户。这个名称可以与文件系统中的束名不同。通过把关键字加入适当的.lproj子目录中的InfoPlist.strings文件,就可以实现该关键字的本地化。如果您需要本地化这个关键字,您还应该提供一个CFBundleName关键字的本地化版本。
有关显示名称的更多信息参见“本地化文件系统名称”。
CFBundleDocumentTypes
CFBundleDocumentTypes关键字保存了一组字典,它包含了该应用程序所支持的文档类型。每一个字典都被称做类型定义字典,并且包含了用于定义文档类型的关键字。表A-2列出了类型定义字典中支持的关键字。
表 A-2 CFBundleDocumentTypes字典的关键字
CFBundleTypeExtensions
该关键字包含了一组映射到这个类型的文件扩展名。为了打开具有任何扩展名的文档,可以用单个星号“*”。该关键字是必须的。
CFBundleTypeIconFile
该关键字指定了系统显示该类文档时使用的图标文件名,该图标文件名的扩展名是可选的。如果没有扩展名,系统会根据平台指定一个(例如,Mac
OS 9中的.icons)。
CFBundleTypeName
该关键字包含了这种文档类型的抽象名称。通过在适当的InforPlist.strings文件中包含该关键字,可以实现对它的本地化。
CFBundleTypeOSTypes
该关键字包含了一组映射到这个类型的四字母长的类型代码。为了打开所有类型的文档,可以把它设为“****”。该关键字是必须的。
CFBundleTypeRole
该关键字定义了那些与文档类型有关的应用程序的角色。它的值可以是Editer,Viewer,Printer,Shell或None。有关这些值的详细描述可以参见“
文档的配置”。该关键字是必须的。
NSDocumentClass
该关键字描述了被用来实例化文档的NSDocument子类。仅供Cocoa应用程序使用。
NSExportableAs
该关键字描述了一组可以输出的文档类型。仅供Cocoa应用程序使用。
CFBundleExecutable
CFBundleExecutable
标识了束的可执行主文件的名称。对于一个应用程序来说,就是该应用程序的可执行文件。对于一个可加载束,它是一个可以被束动态加载的二进制文件。对于一个框架,它是一个共享库。Project
Builder会自动把该关键字加入到合适项目的Info.plist文件中。
对于框架,考虑到启动效率的原因,可执行文件名需要和框架名同名。该可执行文件名不应该包含可用于多种平台的扩展名。
您必须在束的Info.plist文件中包含一个有效的CFBundleExecutable关键字。即使当用户重命名应用程序或束的目录时,Mac
OS X也可以使用这个关键字来定位可执行文件和共享库。
CFBundleGetInfoHTML
CFBundleGetInfoHTML关键字含有会在束的信息窗口中显示的HTML字符串。如果您希望在信息窗口中有更强的表现力,可以使用这个键值对来替代纯文本的CFBundleGetInfoString。通过把它加入到合适的.lproj目录中的InfoPlist.strings文件中,您也可以本地化该字符串。
如果CFBundleGetInfoString和CFBundleGetInfoHTML同时存在的话,系统会选择使用CFBundleGetInfoHTML。
CFBundleGetInfoString
CFBundleGetInfoString关键字含有会在束的信息窗口中显示的纯文本字符串(这里的字符串也就是Mac OS
9中的长字符串)。该关键字的格式应该遵照Mac OS 9中的长字符串,例如:“2.2.1, ? Great Software,
1999”。通过把它加入到合适的.lproj目录中的InfoPlist.strings文件中,您也可以本地化该字符串。
如果存在CFBundleGetInfoHTML的话,系统不会选择使用该关键字。
CFBundleHelpBookFolder
CFBundleHelpBookFolder关键字含有该束的帮助文件的文件夹名字。帮助通常被本地化成一种指定的语言,所以该关键字指向的文件夹应该是所选择语言的.lproj目录中的文件夹。
CFBundleHelpBookName
CFBundleHelpBookName指定了您的应用程序的帮助主页。该关键字指定的帮助页面名可以和HTML文件名不同。在帮助文件META标签的CONTENT属性中指定了帮助页面名。
CFBundleIconFile
CFBundleIconFile关键字指定了包含该束图标的文件。您给出的文件名不需要包含“.icns”扩展名。Finder会在该束的“Resource”文件夹内寻找图标文件。
如果您的束使用了自定义的图标,那您就必须指定该属性。假如您没有指定,Finder(和其他应用程序)会使用缺省的图标来显示您的束。
CFBundleIdentifier
CFBundleIdentifier关键字指定了束的一个唯一的标识字符串。该标识符采用了类似Java包的命名方式,例如com.apple.myapp。该束标识符可以在运行时定位束。预置系统使用这个字符串来唯一地标识每个应用程序。
CFBundleInfoDictionaryVersion
CFBundleInfoDictionaryVersion关键字指定了属性列表结构的当前版本号。该关键字的存在使得可以支持Info.plist格式将来的版本。在您建立一个束时,Project
Builder会自动产生该关键字。
CFBundleName
CFBundleName指定了该束的简称。简称应该小于16个字符并且适合在菜单和“关于”中显示。通过把它加入到适当的.lproj子文件夹下的InfoPlist.strings文件中,该关键字可以被本地化。如果您本地化了该关键字,那您也应该提供一个CFBundleDisplayName关键字的本地化版本。
CFBundlePackageType
CFBundlePackageType关键字指定了束的类型,类似于Mac OS
9的文件类型代码。该关键字的值包含一个四个字母长的代码。应用程序的代码是‘APPL’;框架的代码是‘FMWK’;可装载束的代码是‘BND’。如果您需要,您也可以为可装载束选择其他特殊的类型代码。
CFBundleShortVersionString
CFBundleShortVersionString关键字指定了束的版本号。一般包含该束的主、次版本号。这个字符串的格式通常是“n.n.n”(n表示某个数字)。第一个数字是束的主要版本号,另两个是次要版本号。该关键字的值会被显示在Cocoa应用程序的关于对话框中。
该关键字不同于CFBundleVersion,它指定了一个特殊的创建号。而CFBundleShortVersionString的值描述了一种更加正式的并且不随每一次创建而改变的版本号。
CFBundleSignature
CFBundleSignature关键字指定了束的创建者,类似于Mac OS
9中的文件创建者代码。该关键字的值包含四字母长的代码,用来确定每一个束。
CFBundleURLTypes
CFBundleURLTypes关键字包含了一组描述了应用程序所支持的URL协议的字典。它的用途类似于CFBundleDocumentTypes的作用,但它描述了URL协议而不是文档类型。每一个字典条目对应一个单独的URL协议。表A-3列出了在每一个字典条目中使用的关键字。
表A-3 CFBundleURLTypes字典的关键字
CFBundleTypeRole
该关键字定义了那些与URL类型有关的应用程序的角色(即该应用程序与某种文档类型的关系)。它的值可以是Editer,Viewer,Printer,Shell或None。有关这些值的详细描述可以参见“
文档的配置”。该关键字是必须的。
CFBundleURLIconFile
该关键字包含了被用于这种URL类型的图标文件名(不包括扩展名)字符串。
CFBundleURLName
该关键字包含了这种URL类型的抽象名称字符串。为了确保唯一性,建议您使用Java包方式的命名法则。这个名字作为一个关键字也会在InfoPlist.strings文件中出现,用来提供该类型名的可读性版本。
CFBundleURLSchemes
该关键字包含了一组可被这种类型处理的URL协议。例如:http,ftp等。
CFBundleVersion
CFBundleVersion关键字指定了一个字符串用来标识创建号。该关键字的值通常随每一次创建而改变,并且会被显示在Cocoa"关于"对话框中的扩号里。
为了指定一个发布版的束的版本信息,可以使用CFBundleShortVersionString关键字。参见“CFBundleShortVersionString”。
应用程序特定的关键字
表A-4列出了仅用于应用程序束的关键字:
表A-4应用程序特定的关键字
CFAppleHelpAnchor
该束的初始HTML帮助文件。
NSAppleScriptEnabled
指定是否支持AppleScript。
NSHumanReadableCopyright
显示在对话框中的版权信息。
NSJavaNeeded
Boolean or String
指定该程序是否需要一个Java虚拟机。
NSJavaPath
一组Java类所在的路径(前面需要加上NSJavaRoot)。
NSJavaRoot
包含Java类的根目录。
NSMainNibFile
应用程序的主nib文件名。
NSPrincipalClass
束的主类的名字。
NSServices
一组描述了由应用程序所提供的服务的字典。
CFAppleHelpAnchor
CFAppleHelpAnchor关键字定义了束的初始HTML帮助文件名,不需要包括.html或.htm扩展名。这个文件位于束的本地化资源目录中,或者如果没有本地化资源目录的话,则直接被放在Resources目录中。
NSAppleScriptEnabled
NSAppleScriptEnabled关键字说明了该应用程序是否支持AppleScript。如果您的应用程序支持,就需要把该字符串的值设为“Yes”。
NSHumanReadableCopyright
NSHumanReadableCopyright关键字包含了一个含有束的版权信息的字符串。您可以在“关于”对话框中显示它。该关键字通常会出现在InfoPlist.strings文件中,因为往往需要本地化该关键字的值。
NSJavaNeeded
NSJavaNeeded关键字含有一个布尔值,用来确定在执行该束的代码之前Java虚拟机是否需要被载入并运行。您也可以指定一个字符串类型的值“YES”代替布尔型的值。
NSJavaPath
NSJavaPath关键字包含了一组路径。每一个路径指向一个Java类。该路径相对于由NSJavaRoot关键字定义的位置来说,可能是一个绝对路径也可能是一个相对路径。开发环境会自动把这些值保存在数组中。
NSJavaRoot
NSJavaRoot关键字含有一个指向一个目录的字符串。该目录是应用程序的Java类文件的根目录。
NSMainNibFile
NSMainNibFile关键字包含了一个含有应用程序的主nib文件名(不包含.nib文件扩展名)的字符串。一个nib文件作为一个Interface
Builder的存档文件,含有对用户界面的详细描述信息以及那些界面中的对象之间的关联信息。当应用程序被启动时,主nib文件会被自动装载。Mac
OS X会寻找与应用程序名相匹配的nib文件。
NSPrincipalClass
NSPrincipalClass关键字定义了一个束的主类的名称。对于应用程序来说,缺省情况下这个名字就是应用程序的名字。
NSServices
NSServices包含了一组字典,它详细说明了应用程序所提供的服务。表A-5列出了用来指定服务的关键字。
表 A-5 NSServices字典的关键字
NSPortName
该关键字指定了由您的应用程序监听器为接受外部服务请求所提供的端口名称。
该关键字指定了用来调用该服务的实例方法名。在Objective-C中,实例方法的形式是messageName:userData:error:。在Java中,实例方法的形式是messageName(NSPasteBoard.String)。
NSSendTypes
该关键字指定了一组可以被该服务读取的数据类型名。NSPasteboard类列出了几个常用的数据类型。您必须包含此关键字,NSReturnTypes,或者两者。
NSReturnTypes
该关键字指定了一组可以被该服务返回的数据类型名。NSPasteboard类列出了几个常用的数据类型。您必须包含此关键字,NSSendTypes,或者两者。
NSMenuItem
Dictionary
该关键字包含一个字典,它指定了加入Services菜单中的文本。字典中的唯一一个关键字被称为default并且它的值是菜单项的文本。该值必须是唯一的。您可以使用斜杠“/”来指定一个子菜单。例如,Mail/Send出现在Services菜单中时就是一个带有Send子菜单并且名为Mail的菜单。
NSKeyEquivalent
Dictionary
该关键字是可选的,并且包含一个含有用来请求服务菜单命令的快捷按键的字典。与NSMenuItem类似,字典中的唯一一个关键字被称为default并且它的值是单个的字符。用户可以通过按下Command,Shift功能键和相应的字符来请求该快捷按键。
NSUserData
该关键字是一个可选字符串,它含有您的选择值。
该关键字是一个可选的数字字符串,它指定了从应用程序请求服务到收到它的响应所需要等待的毫秒数。
启动服务关键字
启动服务关键字规定了Mac OS
X中的应用程序是怎样被启动的。这些关键字适用于CFM和Mach-O可执行文件。有关CFM和Mach-O可执行文件的详情可参见“安装和集成”一章中的“CFM可执行文件”。表A-6列出了启动服务的关键字。
表A-6启动服务关键字
LSBackgroundOnly
指定了应用程序是否仅仅运行在后台。(仅适用于Mach-O的应用程序)。
LSPrefersCarbon
指定了应用程序是否优先运行在Carbon环境中。
LSPrefersClassic
指定了应用程序是否优先运行在Classic环境中。
LSRequiresCarbon
指定了应用程序是否必须运行在一个Carbon环境中。
LSRequiresClassic
指定了应用程序是否必须运行在一个Classic环境中。
LSUIElement
指定了应用程序是否是一个用户界面组件,即一个应用程序不应该出现在Dock中或强制退出窗口。
LSBackgroundOnly
如果该关键字存在并且被设为“1”,启动服务将只会运行在后台。您可以使用该关键字来创建无用户界面的后台应用程序。如果您的应用程序使用了连接到窗口服务器的高级框架,但并不需要显示出来,您也应该使用该关键字。后台应用程序必须被编译成Mach-O可执行文件。该选项不适用于CFM应用程序。
您也可以指定该关键字的类型为Boolean或Number。然而,只有Mac OS X
10.2或以上的版本才支持这些类型的值。
LSPrefersCarbon
如果该关键字被设为“1”,Finder将会在显示简介面板中显示“在Classic环境中打开”控制选项,缺省情况下该控件未被选中。如果需要,用户可以修改这个控制选项来在Classic环境中启动应用程序。
您也可以指定该关键字的类型为Boolean或Number。然而,只有Mac OS X
10.2或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该关键字,那么就不要同时加入LSPrefersClassic,
LSRequiresCarbon,或LSRequiresClassic关键字。
LSPrefersClassic
如果该关键字被设为“1”,Finder将会在显示简介面板中显示“在Classic环境中打开”
控制选项,缺省情况下该控件被选中。如果需要,用户可以修改这个控制选项来在Carbon环境中启动应用程序。
您也可以指定该关键字的类型为Boolean或Number。然而,只有Mac OS X
10.2或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该关键字,那么就不要同时加入LSPrefersCarbon,
LSRequiresCarbon,或LSRequiresClassic关键字。
LSRequiresCarbon
如果该关键字被设为“1”,启动服务将只在Carbon环境中运行应用程序。如果您的应用程序不应该运行在Classic环境中的话,可以使用该关键字。
您也可以指定该关键字的类型为Boolean或Number。然而,只有Mac OS X
10.2或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该关键字,那么就不要同时加入LSPrefersCarbon,
LSPrefersClassic,或LSRequiresClassic关键字。
LSRequiresClassic
如果该关键字被设为“1”,启动服务将只在Classic环境中运行应用程序。如果您的应用程序不应该运行在Carbon兼容环境中的话,可以使用该关键字。
您也可以指定该关键字的类型为Boolean或Number。然而,只有Mac OS X
10.2或以上的版本才支持这些类型的值。如果您在您的属性列表中加入了该关键字,那么就不要同时加入LSPrefersCarbon,
LSPrefersClassic,或LSRequiresCarbon关键字。
LSUIElement
如果该关键字被设为“1”,启动服务会将该应用程序作为一个用户界面组件来运行。用户界面组件不会出现在Dock或强制退出窗口中。虽然它们通常作为后台应用程序运行,但是如果希望的话,它们也可以在前台显示一个用户界面。点击属于用户界面组件的窗口,应用程序将会处理产生的事件。
Dock和登录窗口是两个用户界面组件应用程序。
应用程序包关键字
应用程序打包的目的是把一个应用程序打包成一个自我包含的实体,并且对用户隐藏了它的内容。然而,用户常常希望操作应用程序的某些文件。例如,用户可能希望添加或删除某个插件,本地化资源,等等。开发者可以在Info.plist
文件中指定一些可以由用户维护的项目。那么Finder会把这些项目显示在束的信息面板中,并允许用户浏览,删除或添加这些项目。
CFBundleInstallerInfo
应用程序打包信息的根关键字是CFBundleInstallerInfo。该关键字定义了一个字典,它包含了表A-7中所列出的关键字。“是否必须”列指出了哪些是您必须支持的功能。
表A-7应用程序打包关键字
APInstallerURL
一个指向您希望安装的文件的URL路径。
一组字典,描述了那些可以被安装的文件或目录。
APInstallerURL
APInstallerURL关键字指定了一个指向您希望安装的文件的路径。您必须以file://localhost/path/
形式来说明这个路径。所有被安装的文件必须位于这个文件夹中。
APFiles关键字指定了一个字典,描述了您希望安装的文件。每个字典条目可以包含某个文件或目录的描述。您可以让APFiles
关键字包含在其自身中,用于指定在目录内部的文件。表A-8列出了用来指定有关单个文件或目录的信息。
表A-8 APFiles字典关键字
APFileDescriptionKey
用来显示在Finder的信息窗口中的简短描述。
APDisplayedAsContainer
如果值为“Yes”,该项目作为一个目录图标显示在信息面板中;否则,它被显示为一个文档图标。
APFileDestinationPath
一个安装组件的相对路径。
APFileName
文件或目录的名称。
APFileSourcePath
指向应用程序包中组件的路径,相对与APInstallerURL路径。
APInstallAction
操纵组件的动作:“Copy”或者“Open
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 typealias package 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信