如何上传具有相同Bundle ID的多个目标的应用程序

问题描述 投票:0回答:1

背景:

我在 AppStore 上发布了一款仅适用于 iPhone 的应用程序。现在,我想通过创建专门为 iPad 定制的版本来扩展其对 iPad 的兼容性。但是,由于两个版本之间存在显着的设计差异,我正在考虑创建一个新目标,并将目标设置为 iPad。我不确定这个设置将如何运作。

问题:

在 Xcode 中,可以为 iPhone 创建一个目标,为 iPad 创建另一个目标,两者共享相同的 Bundle ID。然而,在 AppStore Connect 中,iPhone 和 iPad 版本是合并的。在安装过程中,iPhone 和 iPad 版本之间的转换具体会在什么时候发生?或者,在应用程序启动过程中基于

didFinishLaunchingWithOptions
动态确定设备(
UserInterfaceIdiom
),随后启动适当的协调器/屏幕/视图模型是否更可行?

如何将具有两个目标、共享相同捆绑 ID 但具有不同目标(iPhone 和 iPad)的应用程序上传到 AppStore Connect?

如果您对完成此任务的更好方法有任何想法或建议,如果您能在回复中分享它们,我将不胜感激。

我打算开发一个独特的 iPad 版本的应用程序,同时保留与 iPhone 版本共享的资源,例如 UI 组件、网络和存储层。

如何确保iPad用户可以独占访问iPad版本的应用程序?通过单独的目标或利用 UserInterfaceIdiom 来实现这一点是否更好?

ios swift xcode app-store-connect ios-targets
1个回答
0
投票

解决方案:

保持您当前的 iPhone 目标及其功能完好无损。

添加新的 iPad 目标:在 Xcode 中,专门为 iPad 创建一个新的“iOS 应用程序”目标。

共享代码库:将代码组织到网络、存储和可重用 UI 组件的框架或 Swift 包中。在 iPhone 和 iPad 目标中包含这些共享模块。

单独的 UI:为 iPhone 和 iPad 布局创建单独的故事板或 XIB 文件,将它们链接到每个目标中各自的视图控制器。

动态 UI 调整(可选):使用 UIDevice.current.userInterfaceIdiom 在运行时检测设备类型(iPhone 或 iPad),并以编程方式调整 UI 元素以实现最佳 iPad 使用。

应用商店上传:

将 iPhone 或 iPad 存档上传到 App Store Connect。 App Store Connect 会根据共享的 Bundle ID 自动检测两个目标,并在下载过程中根据用户的设备提供正确的版本(iPhone 或 iPad)。

PS:以下是我实现您的场景的一些发现。

© www.soinside.com 2019 - 2024. All rights reserved.