将两个 Xcode 个目标组合成一个可分发的应用程序
Combine two Xcode targets into one distributable app
我在 Xcode 项目中创建了两个目标。一个用于 iOS 应用程序,另一个用于 iPadOS 伴侣。现在我想以同一个名字和 App Store link 分发它们,但我无法通过 App Store Connect 为 iOS 和 iPadOS 提交不同的构建。
我无法将目标合并为一个,因为我有一些 UI 库无法在 iPadOS 上运行 and/or 无法在 iOS 上运行。我还计划将 iPadOS 目标制作成 Mac-Catalyst 应用程序,因此我也希望将目标分开。
有没有办法将这两个目标一起归档,以便 App Store Connect 在一个上传中看到这两个应用程序?或者我需要在不同的包 ID 下分发 iOS 和 iPadOS 应用程序。
您当然可以将它们分发到不同的包 ID 下。使两个目标共享代码非常容易,正如您可能已经在做的那样。
然而,更常见的是只有一个应用程序,即所谓的“通用”应用程序,它在 iPhone 和 iPad 上运行(因此仅使用一个应用程序构建目标)。这些具有因设备类型而异的某些功能是很正常的;图像或 nib 等资源可以自动加载不同的版本,具体取决于我们是 运行 在 iPhone 还是 iPad,而 traitCollection
有 userInterfaceIdiom
属性 让您的代码根据相同的区别实时决定要做什么。
因此,请继续为两种设备类型加载所有“UI 库”,如果应用当前环境不支持,则不要调用其中一种发现自己 运行.
我在 Xcode 项目中创建了两个目标。一个用于 iOS 应用程序,另一个用于 iPadOS 伴侣。现在我想以同一个名字和 App Store link 分发它们,但我无法通过 App Store Connect 为 iOS 和 iPadOS 提交不同的构建。
我无法将目标合并为一个,因为我有一些 UI 库无法在 iPadOS 上运行 and/or 无法在 iOS 上运行。我还计划将 iPadOS 目标制作成 Mac-Catalyst 应用程序,因此我也希望将目标分开。
有没有办法将这两个目标一起归档,以便 App Store Connect 在一个上传中看到这两个应用程序?或者我需要在不同的包 ID 下分发 iOS 和 iPadOS 应用程序。
您当然可以将它们分发到不同的包 ID 下。使两个目标共享代码非常容易,正如您可能已经在做的那样。
然而,更常见的是只有一个应用程序,即所谓的“通用”应用程序,它在 iPhone 和 iPad 上运行(因此仅使用一个应用程序构建目标)。这些具有因设备类型而异的某些功能是很正常的;图像或 nib 等资源可以自动加载不同的版本,具体取决于我们是 运行 在 iPhone 还是 iPad,而 traitCollection
有 userInterfaceIdiom
属性 让您的代码根据相同的区别实时决定要做什么。
因此,请继续为两种设备类型加载所有“UI 库”,如果应用当前环境不支持,则不要调用其中一种发现自己 运行.