【问题标题】:How to set separate LaunchScreen storyboards for different targets in Xcode如何在 Xcode 中为不同的目标设置单独的 LaunchScreen 故事板
【发布时间】:2016-01-20 21:19:07
【问题描述】:

我有一个包含多个目标的 Xcode 项目。基本上每个目标都是针对不同客户的我的应用程序的定制版本。我尝试根据每个目标的构建设置中的用户定义字段自定义启动屏幕文件,然后在 info.plist 中使用该变量来确定哪个启动屏幕。如果可能的话,我更愿意使用用户定义的构建设置来维护一个 info.plist。

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    您还可以根据每个配置选择不同的 LaunchScreen,即使在单个目标中也是如此。只需在 .xcconfig 文件中设置一个变量,例如

    LAUNCHSCREEN_NAME=launchscreen1

    然后您可以在单个 Info.plist 中设置 UILaunchStoryboardName$(LAUNCHSCREEN_NAME)

    在构建时,所选配置将决定使用哪个启动屏幕。

    【讨论】:

      【解决方案2】:

      LaunchScreen 是指初始视图而不是启动屏幕(iOS 8+ 风格的启动故事板取代了静态启动图像)。对吗?

      编辑:OP 确实意味着启动故事板。这些可以单独设置到每个目标,因为它们以 Info.plist 选项的形式指定,每个目标都可以有自己的 Info.plist 文件。

      【讨论】:

      • 是的,我的意思是替换启动图像的 iOS 8+ 故事板。当我在“常规 > 启动屏幕文件”部分将适用的故事板 xib 分配给目标时,它会将其保存到每个目标。然后我必须记住在构建时手动更改它。理想情况下,为目标设置它会很好,它只是记住它。
      • 我的故事板启动屏幕只有一张图片和一些文字。一个更好的解决方案是以编程方式决定将哪些图像和文本添加到该故事板。
      • 好的。我刚刚在我的项目中尝试过它并且它有效。启动故事板是 Info.plist 中的 UILaunchStoryboardName 键。 Info.plist 可以使用 INFOPLIST_FILE 构建选项为每个目标单独设置。不幸的是,您不能通过代码以编程方式执行此操作,因为当 iOS 显示您的启动图像/故事板时,您的应用程序尚未运行。这就是启动图像的重点。
      • 所以我需要为每个目标使用不同的 info.plist 吗?我目前有一个使用用户定义的构建设置进行自定义的。
      • 是的。您应该已经为目标设置了单独的 .plist。无论如何,它是默认配置,将它们分开是有意义的(除非您通过覆盖 INFOPLIST_FILE 选项使它们通用)。这没什么大不了的,大部分.plist 是由Xcode 生成的和/或宏驱动的。或者,您可以使用 INFOPLIST_PREPROCESSOR_DEFINITIONS 在 Info.plist 中定义扩展宏。然后,您可以继续使用单个文件。
      猜你喜欢
      • 2014-11-07
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多