【iOS】Target Membership

起源

昨晚 Archive 工程,开始上传至 App Store 时,报如下错误:

ERROR ITMS-90705: "Launch storyboard not found. Make sure you specify the launch storyboard filename without a filename extension for the key UILaunchStoryboardName in the Info.plist."

这句话在说找不到 Launch storyboard,确认一下 UILaunchStoryboardName 的值不需要带扩展名,然而我确定我并没有带扩展名。然后同事帮我检查工程之后发现,由于 LaunchScreen.storyboard 未设置 target membership,因而在最后 Archive 出来的工程中,找不到这个文件。

囧,这个文件是从其他工程里拖出来的,于是出现了以上情况。

了解

首先了解一下 Xcode Target 这个概念:

A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. A target defines a single product; it organizes the inputs into the build system—the source files and instructions for processing those source files—required to build that product. Projects can contain one or more targets, each of which produces one product.

在一个 workspace 里面,可以包含多个 target,每一个 target 对应不同的 product。这种情况一般可以用于同一个项目的不同版本,就可以使用不同的 target 来控制。比如免费版、试用版、付费版等。他们有共用的资源在同一个 workspace 中,而这些资源,就用 target membership 来制定,他们最后需要被 build 到哪些或哪个 product 中。

参考:
【IOS】Target membership

你可能感兴趣的:(【iOS】Target Membership)