You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

取消iPad左右横屏设置后上传App被拒,遇设备兼容报错

解决iPad端取消横屏后App被苹果审核拒绝的问题

我之前也碰到过一模一样的情况!苹果的审核逻辑是:新版本App不能移除旧版本已经支持的设备界面方向——毕竟老用户已经习惯了横屏使用你的App,直接砍掉这个支持会影响他们的体验,所以才会抛出这个报错。

给你一套亲测有效的解决步骤:

1. 先保留Info.plist里的原有方向设置

不要删除UISupportedInterfaceOrientations~ipad里的Landscape LeftLandscape Right条目,让它依然包含所有旧版本支持的方向(一般是Portrait、Portrait Upside Down、Landscape Left、Landscape Right这四个)。

2. 在代码层面强制iPad只支持竖屏

根据你的项目类型选择对应的实现方式:

如果你用的是UIKit项目

AppDelegate.swift里添加这个方法,全局限制界面方向:

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    // 如果你只需要竖屏,返回.portrait;如果要支持竖屏上下翻转,就返回.portrait.union(.portraitUpsideDown)
    return .portrait
}

如果你用的是SwiftUI项目

通过UIApplicationDelegateAdaptor来适配AppDelegate的逻辑:

@main
struct YourAppName: App {
    // 适配自定义AppDelegate
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        return .portrait // 按需调整
    }
}

3. 测试验证

打包后在iPad上测试一下,不管怎么旋转设备,App都只会保持竖屏显示,同时Info.plist里的配置又符合苹果的审核要求,这样重新提交就能通过啦。

如果有个别页面需要特殊支持横屏,也可以单独在那个页面的ViewController里重写supportedInterfaceOrientations方法,覆盖全局设置就行。

内容的提问来源于stack exchange,提问作者sann chhailong

火山引擎 最新活动