【问题标题】:Differentiate between iOS and macCatalyst in xcconfig file在 xcconfig 文件中区分 iOS 和 macCatalyst
【发布时间】:2019-10-15 21:38:46
【问题描述】:

在 xcconfig 文件中,可以使用 sdkarch 说明符。例如:

BUILD_SETTING_NAME[sdk=sdk] = value for specified sdk
BUILD_SETTING_NAME[arch=architecture] = value for specified architecture

在为 macCatalyst(“UIKit for Mac”)构建时如何使用它来使用不同的值?

【问题讨论】:

  • 使用不同的配置?
  • @matt 是的,这可行,但只有一个值需要不同,所以我希望我可以避免这条路线。
  • 也许值得注意的是,x86 不再意味着模拟器。

标签: ios xcode xcconfig mac-catalyst


【解决方案1】:

好吧,事实证明这比我想象的要容易。您可以在 xcconfig 文件中简单地执行此操作:

SOME_PLATFORM_DEPENDENT_VALUE = "use this on iOS";
SOME_PLATFORM_DEPENDENT_VALUE[sdk=macosx*] = "use this on macOS including macCatalyst";

在第一行,您设置所有平台的值。在第二行中,您设置特定 SDK 的值。特定值优先于“一般”值。

就是这样!您可以在此great NSHipster article 中了解有关这些不同选项的更多信息。

【讨论】:

  • 谢谢 Johannes :) 我需要 iOS+Catalyst (iOS SDK) 的配置和“常规” macOS (Mac SDK) 的另一个配置...你知道这是否可能吗?谢谢:)
  • @JensSchwarzer 我不确定...查看 NSHipster 文章。您可以通过结合sdk=arch= 来完成此操作。我认为arch 的值必须是x86_64。否则,使用为 macOS 目标设置的其他值可能会有所帮助。
  • 再次感谢 Johannes :) 我不得不放弃这个,因为 macosx 加入了 Catalyst。而且我认为我不能使用arch,因为 macOS 现在也可以在 arm 上运行...
  • @JensSchwarzer 似乎有一个可以使用的IS_MACCATALYST 构建变量,请参阅此处提到的:steipete.com/posts/zld-a-faster-linker
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多