如何将 Info.plist 文件从 mac os 项目转换为 iphone 项目?

Posted

技术标签:

【中文标题】如何将 Info.plist 文件从 mac os 项目转换为 iphone 项目?【英文标题】:How to convert an Info.plist file from mac os project to iphone project? 【发布时间】:2010-04-01 21:09:22 【问题描述】:

我正在为 iPhone OS 设备开发一个应用程序,并且正在使用一个没有很好记录的第三方引擎,但无论如何我已经取得了很大的进步。

问题:

引擎的开发者强烈建议从引擎捆绑的现有模板项目中扩展,但引擎的Info.plist文件是Mac OSX项目的Info.plist文件。

这是一个 iPhone 引擎,所以我不明白为什么 Info.plist 文件的结构是为 Mac OS 应用程序获取密钥,但事实就是这样。

我做了一个 FileMerge 比较,以确保文件本身中没有任何内容定义了它在一个操作系统或另一个操作系统中的用途,所以我猜它是在项目设置中的某个地方定义的。

编辑 -

在 Xcode 或属性列表编辑器中打开 plist 文件,然后尝试添加诸如“图标已包含光泽和斜角效果”之类的键在此 iPhone 项目中不起作用,因为它不在列表中。但是,可以使用“Cocoa Java Application”等!

【问题讨论】:

? Mac plist 和 iPhone plist 共享相同的格式。 好的,你的意思是 Info.plist。 对不起,我没有花太多时间使用 plist 文件,除了 Info.plist 文件。它只是让我感到困惑......我已经复制了文件,将其重命名为与项目相同,将其重命名为与文件夹相同,确保它是 == 另一个文件确实具有“图标已经包含光泽和斜角效果“......因此我认为它是一些外部关联属性......某处! 【参考方案1】:

iPhone/iPad 项目的元信息存储在 /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneInfoPlistStructDefs.xcodeplugin,假设您采用安装默认值——嗯嗯。我成功地将 /Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Plug-ins/InfoPlistStructDefs.xcodeplugin 中的一些信息合并到那里。出于某种原因,iPhone 插件在“文档”类别中没有所有人类可读的名称。

【讨论】:

【参考方案2】:

这是我收集的一些信息 iPhone dev center 在关于信息属性列表文件一章中:

重要提示:属性列表编辑器 Xcode 显示人类可读的字符串 (而不是实际的键名) 默认情况下很多键。要显示 实际的键名,因为它们出现在 Info.plist 文件,按住 Control 键单击任何 编辑器窗口中的键和 启用 Show Raw Keys/Values 项 在上下文菜单中。打字的时候 自己的关键名称,你应该总是 输入实际的键名。

这对于将来参考很有用,更新信息 Plist 文件的推荐行为...

此外,我的研究使我相信,除非有人创建新项目,否则无法重新创建预加载的人类可读键名。它存储在项目本身的元信息中,Property List Editor 可以解释它,更不用说 Xcode 本身了。因此,在有人决定解释该元信息之前,只需使用上述推荐的方法即可。

【讨论】:

以上是关于如何将 Info.plist 文件从 mac os 项目转换为 iphone 项目?的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 如何运行应用程序包?

将 Flutter 应用上传到 AppStore 导致 App.framework 不支持 Info.plist 中指定的最低 OS 版本

将 Flutter 应用上传到 AppStore 导致 App.framework 不支持 Info.plist 中指定的最低 OS 版本

从 Mac/Linux Dock 中隐藏 Java 应用程序

通过 info.plist 中的 CFBundleDocumentTypes 覆盖 Mac 应用程序文件关联

Visual Studio for Mac从Info.plist中剥离Bundle显示名称(CFBundleDisplayName)