如何将Storyboard应用迁移至SwiftUI并保留原App Store上架信息
从Storyboard迁移到SwiftUI并保留原App Store条目方案
一、直接在现有项目中切换到SwiftUI(推荐,无需新建App Store条目)
这是最省心的方式,完全能保留原App Store的所有配置(包括权限、上架条目),只需要提交新版本更新即可:
1. 替换应用入口
- 如果原项目使用
UIApplicationDelegate,可以新增一个SwiftUI的App结构体作为新入口:@main struct YourAppName: App { var body: some Scene { WindowGroup { ContentView() // 你的SwiftUI根视图 } } } - 打开Xcode项目设置,清空"Main Interface"字段,或者直接将入口类指定为这个新的
App结构体。 - 要是需要保留原
AppDelegate里的逻辑,用UIApplicationDelegateAdaptor就能兼容:@main struct YourAppName: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { ContentView() } } }
2. 渐进式替换UI(可选)
不想一次性重写所有界面的话,可以混合Storyboard和SwiftUI:
- 在Storyboard中添加
UIHostingController,把SwiftUI视图嵌入进去,逐步替换旧界面。 - 或者在SwiftUI里用
UIViewControllerRepresentable包装原有的UIKit视图控制器,实现双向兼容。
3. 保留原有配置
Info.plist、权限描述(比如隐私权限)、签名信息这些都不用改,直接沿用就行。- 打包测试时用原Bundle ID,确保权限和第三方依赖和旧版本一致。
二、关于“同一App Store条目下创建新应用”:完全没必要
App Store允许提交同一Bundle ID的新版本更新,不管你用Storyboard还是SwiftUI开发,只要Bundle ID和原应用一致,提交的新版本就会覆盖原条目下的现有版本,根本不需要创建新的应用条目。
注意事项
- 提交更新前,确保SwiftUI版本的功能和旧版本一致(或更完善),避免因功能缺失被拒。
- 保留原有测试流程,确认权限、第三方服务在新版本中正常运行。
内容的提问来源于stack exchange,提问作者user19010953
相关产品推荐
相关产品推荐

