ios - 操作系统错误:不允许操作,在 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真实设备中创建文件夹?
解决方案
macOS 需要您请求特定权限才能访问网络。为此,打开macos/Runner/DebugProfile.entitlements
并添加以下键值对。
<key>com.apple.security.network.client</key>
<true/>
然后在 中做同样的事情macos/Runner/Release.entitlements
。
检查这个。
推荐阅读
- django - 如何获取类别列的列表,然后在单个视图中列出所有内容?
- python - 将 Visual Studio 2017 中的 Anaconda 更新到最新版本
- linux - 如何退出“顶部”的“循环” | grep 用户?
- c# - GetConversationMembersAsync 返回 403(禁止)
- javascript - (node:17453) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect
- typescript - 对类型脚本中严格类型检查的交叉类型的混淆
- javascript - 来自其他功能的 Google Script ui.button 调用提示
- python - Python - 如何在索引中使用字符串
- java - Nodejs cipher.setAAD(buffer) vs Java chiper.updateAAD(byte[]),我会得到相同的 authTag 吗?
- javascript - 我将如何在 jQuery 中重复或循环 img 选择器?