You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ionic/Capacitor项目中禁用安卓和iOS应用数据备份?

禁用Ionic+Capacitor应用的安卓/iOS自动备份

安卓平台(解决AndroidManifest重置问题)

不用每次手动修改AndroidManifest.xml,直接在项目根目录的capacitor.config.ts里配置,Capacitor会自动把设置合并到生成的AndroidManifest中,彻底避免重置:

  • 方式1(推荐,适配多数Capacitor版本):
    在android节点下直接添加allowBackup配置:

    export default defineConfig({
      // 保留你原有的其他配置
      android: {
        allowBackup: false
      }
    });
    
  • 方式2(若方式1不生效时用):
    通过manifestEntries手动指定Application节点属性:

    export default defineConfig({
      // 保留你原有的其他配置
      android: {
        manifestEntries: [
          '<application android:allowBackup="false" />'
        ]
      }
    });
    

配置完后执行npx cap sync android,或者重新执行npx cap add android,AndroidManifest里的allowBackup都会自动设为false。

iOS平台

iOS的自动备份可以通过配置Info.plist禁用,同样在capacitor.config.ts里设置,避免手动修改原生文件被重置:

在ios节点的infoPlist中添加以下配置:

export default defineConfig({
  // 保留你原有的其他配置
  ios: {
    infoPlist: {
      // 关闭iTunes文件共享,防止数据被备份
      UIFileSharingEnabled: false,
      // 说明应用不需要自动备份(苹果要求必填,否则可能审核不通过)
      NSBackupUsageDescription: "应用无需自动备份数据"
    }
  }
});

如果需要更彻底地禁用iCloud备份,可在iOS项目的AppDelegate.swift中添加以下代码(仅作为补充,优先用上述配置):

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    if let docDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
        var resourceVals = URLResourceValues()
        resourceVals.isExcludedFromBackup = true
        try? docDir.setResourceValues(resourceVals)
    }
    return true
}

执行npx cap sync ios后,配置会自动同步到iOS项目的Info.plist中。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:52:18