【问题标题】:Use different Info.plist file for different iOS versions?对不同的 iOS 版本使用不同的 Info.plist 文件?
【发布时间】:2016-03-25 00:04:09
【问题描述】:

我想使用 2 个不同的 Info.plist 文件 - 一个用于 iOS 8,另一个用于 iOS 9。可以吗?

具体来说,我想在 iOS 8 上将NSExtensionAttributes 下的RequestsOpenAccess 的 plist 值设置为true,在iOS 上设置为false 9. 我该怎么做?

请注意:虽然要求存在相同答案的问题通常建议使用 plist 以外的机制来区分版本。我认为这不适用于我的情况(如果有人证明我错了,我会很高兴)。

【问题讨论】:

    标签: ios ios8 ios9 plist


    【解决方案1】:

    不,这是不可能的。正如@Dschee 在他的评论中所说,您必须构建和分发两个单独的应用程序。

    【讨论】:

    • 谢谢。您能否提供一些参考资料(不一定是 Apple 文档)?如果不是,您的 SO 代表肯定会给您一些权限,但我们将不胜感激。
    • 我会确认这个答案。一个打包的应用程序只能有一个 Info.plist。当用户下载您的应用程序时,他们将获得一个可以在您的应用程序支持的所有 iOS 版本上运行的应用程序。他们没有得到“iOS 8 版本”或“iOS 9”版本。他们得到一个版本。
    • 我没有任何参考资料表明一个应用程序不能有 2 个不同的 info.plist 文件。这有点像要求确认海龟不会飞的参考。这是应用程序包的设计方式。
    【解决方案2】:

    你呢将你的目标配置为两个之一(比如iOS 9),然后duplicate it,将第二个目标更改为使用iOS 8还有 change its Info.plist file path 在构建设置中?

    这样您可以为两个单独的目标配置两个单独的.plist 文件。然后,您还需要部署两个单独的应用程序

    这能解决您的问题吗?

    【讨论】:

    • 有趣的想法...如果我能以某种方式确保第一个目标在 iOS 8 上被忽略,第二个目标在 iOS 9 上被忽略,这对我有用。我认为这两个都不能完成仅使用部署目标项目属性。
    • 我认为您必须创建两个单独的应用程序才能使其正常工作。如果这对您来说不是一个可行的选择,那么您可能就不走运了。
    • 否 - 创建 2 个单独的应用程序不是一种选择......但是,创建 2 个目标并将一个目标限制为 iOS 8 并将另一个目标限制为 iOS 9 当然是一种选择(只是我不知道怎么做)。顺便提一句。你知道是否可以在运行时更改 plist 吗?
    • 通过将最低 iOS 部署版本(在构建设置中)设置为 iOS 9,您可以有效地创建仅 iOS 9 的版本。但是,如果没有两个单独的应用程序,那将无济于事。关于在运行时更改 Info.plist,我认为这是不可能的。另请参阅stackoverflow.com/a/12818184/3451975
    • 这个解决方案有很多缺陷。主要的是“iOS 8”版本也可以安装在 iOS 9 和更高版本的设备上。您不能创建“仅限 iOS 8”应用程序。 iOS 不支持这种东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2012-03-24
    相关资源
    最近更新 更多