【问题标题】:Flutter MacOs access to filesFlutter MacOs 访问文件
【发布时间】:2021-07-11 16:31:39
【问题描述】:

我正在尝试在 Flutter 中构建一个自定义桌面应用程序,以便能够加载图片,例如图库。 为此,我会要求用户选择一个文件夹,然后它会自动显示图片。

现在,从简单的事情开始,由于是第一次为Mac开发,我只是尝试通过Image.file(new File)方法显示图片。

The issue that I got back is 

======== Exception caught by image resource service ================================================
The following FileSystemException was thrown resolving an image codec:
Cannot open file, path = 'media/preview.jpg' (OS Error: Operation not permitted, errno = 1)

我在想某种程度上与权利有关。 我的权利是:

<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.assets.downloads.read-write</key>
<true/>
<key>com.apple.security.assets.pictures.read-write</key>
<true/>
<key>com.apple.security.assets.downloads.read-write</key>
<true/>

但是由于我要加载图片的文件夹可能在任何地方,我想知道这是否是我收到错误的原因。

【问题讨论】:

    标签: flutter flutter-desktop


    【解决方案1】:

    因此,只要您的应用位于沙盒中,它似乎只能在用户从打开的对话框中选择这些文件夹(下载、图片、音乐和电影)之外的文件时打开它们。

    因此,出于开发目的,我已禁用沙盒,因为我无法在 Apple Store 上分发。

    但至少我可以发展。享受

    【讨论】:

    • 这太不幸了。为什么我无法访问支持文件夹,例如 ~/LibraryApplication Support~/Library/Caches?以前用 Electron 没问题。我什至没有收到访问提示?我错过了什么吗?
    【解决方案2】:

    我遇到了同样的问题,并通过在 example/macos/Runner/DebugProfile.entitlements 中禁用 com.apple.security.app-sandbox 来解决它:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.security.app-sandbox</key>
        <false/>
    </dict>
    </plist>
    
    

    【讨论】:

      【解决方案3】:

      我无法访问位于外部的文件。但它对我有用,非常感谢...

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
          <key>com.apple.security.app-sandbox</key>
          <false/>
      </dict>
      </plist>
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-20
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        • 2021-12-10
        • 2018-11-23
        • 1970-01-01
        相关资源
        最近更新 更多