gpt4 book ai didi

ios - 为 mac 催化剂设置不同的值以键入 info.plist 文件

转载 作者:行者123 更新时间:2023-12-04 13:10:39 27 4
gpt4 key购买 nike

我正在开发一个可以在 iOS 和 macOS(Catalyst)上运行的应用程序。此应用程序支持打开文档。
我已在 info.plist 中将 LSSupportsOpeningDocumentsInPlace 的值声明为 NO,但这不会为 mac 催化剂目标构建。构建错误显示“macOS 不支持‘LSSupportsOpeningDocumentsInPlace = NO’。删除条目或将其设置为 YES,并确保应用程序确实在 macOS 上打开文档。”但是这个应用程序不处理原始文档,它需要复制文档。
那么有没有办法在 info.plist 中为 iOS 和 macOS 设置不同的值?即 LSSupportsOpeningDocumentsInPlace = NO 对于 iOS 和 LSSupportsOpeningDocumentsInPlace = YES 对于 macOS

最佳答案

有不同的方法可以以不同的灵活性来解决这个问题。
1. Catalyst 的自定义 Info.plist
INFOPLIST_FILE 的build设置中引用的完全自定义的 Catalyst Info.plist key 。只需单击每个构建配置(通常是调试和发布)旁边的 + 即可为特定 SDK 添加覆盖并选择“任何 macOS SDK”。这样你就可以省略自定义 Info.plist 中的键并依赖默认值。如果默认值发生变化,您将免费获得它。
enter image description here
2. 自定义用户自定义键
从 Info.plist 的 Build Settings 中引用自定义的 User-Defined 键。转到“build设置”并点击“+”按钮,然后在“基本/自定义/全部|”旁边的最顶部选择“添加用户定义的设置”。组合/级别:
enter image description here
使用听起来类似于您想要为其提供平台相关值的键的自定义键,并使用与上述相同的技巧来覆盖“Any macOS SDK”的值:
enter image description here
现在,跳到 Info.plist 并使用嵌入在 $() 中的自定义 key 。作为 LSSupportsOpeningDocumentsInPlace 的值 key :
enter image description here
注:即使它是 bool 值,值类型也是 string .
3. 使用 xcconfig 文件
如果您已经使用 xcconfig 文件以 git 友好格式管理您的build设置,您还可以使用它来定义您的自定义值。假设您有一个用于调试和发布的 Config.xcconfig 文件(或一般的所有构建配置),请通过从项目的信息屏幕中选择它们来确保它们用于您的目标:
enter image description here
在配置文件中,您可以定义一个键值对并覆盖特定 SDK 的值,如下所示:

CUSTOM_LS_SUPPORTS_OPENING_DOCUMENTS_IN_PLACE = NO
CUSTOM_LS_SUPPORTS_OPENING_DOCUMENTS_IN_PLACE[sdk=macosx*] = YES
跳到build设置并滚动到最底部。您应该在与选项 2 中定义的相同的 User-Defined 部分中看到键值对。使用该值也是等效的,因此只需确保在 Info.plist 中使用正确的键即可。

关于ios - 为 mac 催化剂设置不同的值以键入 info.plist 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65667991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com