首页 > 解决方案 > 操作系统错误:不允许操作,在 Flutter 应用程序中的 iOS 中创建文件夹时,errno = 1

问题描述

在 Flutter 中使用以下代码在 iOS 15 操作系统中创建文件夹时:

Future<void> ensureInitialized() async {
    if (!kIsWeb) {
      final docDir = await getApplicationDocumentsDirectory();
      dataDirectory = Directory('${docDir.parent.path}/biyiapp-dev');
      if (!dataDirectory!.existsSync()) {
        dataDirectory!.createSync(recursive: true);
      }
      File sessionFile = File('${dataDirectory!.path}/session.json');
      if (sessionFile.existsSync()) {
        final String jsonString = await sessionFile.readAsString();
        lastSession = Session.fromJson(json.decode(jsonString));
      }
    }
  }

当我在 iPhone XR 的真实设备中运行此代码时,显示如下错误消息:

[12:27:49:427] [ERROR] {"error":"FileSystemException: Creation failed, path = '/var/mobile/Containers/Data/Application/9024BC3C-CA76-42A5-977E-FCA9BA191FA5/biyiapp-dev' (OS Error: Operation not permitted, errno = 1)","message":"global error","stackTrace":"#0      _Directory.createSync (dart:io/directory_impl.dart:133)\n#1      ProAccount.ensureInitialized (package:pro_account/src/pro_account.dart:35)\n<asynchronous suspension>\n#2      DictGlobalConfig.loadApp.<anonymous closure> (package:biyi_app/config/dict_global_config.dart:22)\n<asynchronous suspension>\n"}

我应该怎么做才能使颤振应用程序默认在iOS真实设备中创建文件夹?

标签: iosflutter

解决方案


macOS 需要您请求特定权限才能访问网络。为此,打开macos/Runner/DebugProfile.entitlements并添加以下键值对。

<key>com.apple.security.network.client</key>
<true/>

然后在 中做同样的事情macos/Runner/Release.entitlements

检查这个。


推荐阅读