请教如何为脚本赋予 Full Disk Access 权限

2021-10-28 21:19:36 +08:00
 amet

我写了个 Chrome 插件,其中 Native App 部分是一个 Python 3 脚本,通过标准输入输出与插件交互。插件通过 Chrome 调用这个脚本(或者可执行文件)读取 Safari 的 Bookmarks.plist ,因此需要 Full Disk Access 。

我之前使用 pyinstaller 打包可执行文件,然后为这个文件赋予权限。但不知是不是升级 Monterey 的缘故,现在就算是打包 Hello World 类型的脚本都不能通过完整性校验了。我只有一台 mac ,暂时不能验证。

请问还有什么好办法?


关于 PyInstaller 打包失败:

PyInstaller: 4.5.1
Python: 3.9.7
Platform: macOS-12.0.1-x86_64-i386-64bit

使用 pyinstaller ./main.py,其中 main.py 内容如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys

def Main():
    print(sys.version_info)
    sys.exit(0)

if __name__ == '__main__':
    Main()

报错如下:

Traceback (most recent call last):
  File "/usr/local/bin/pyinstaller", line 8, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/__main__.py", line 126, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/__main__.py", line 65, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 815, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 762, in build
    exec(code, spec_namespace)
  File "/Users/***/Temp/main.spec", line 23, in <module>
    exe = EXE(pyz,
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/building/api.py", line 524, in __init__
    self.__postinit__()
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/building/datastruct.py", line 159, in __postinit__
    self.assemble()
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/building/api.py", line 761, in assemble
    osxutils.fix_exe_for_code_signing(self.name)
  File "/usr/local/lib/python3.9/site-packages/PyInstaller/utils/osx.py", line 211, in fix_exe_for_code_signing
    assert linkedit_seg.fileoff + linkedit_seg.filesize == \
AssertionError: Sanity check failed!
1641 次点击
所在节点    macOS
4 条回复
amet
2021-10-28 22:11:45 +08:00
我尝试搜索了 `pyinstaller alternative`,试了试 nuitka ,解决了打包为可执行文件的问题
dingwen07
2021-10-28 23:21:09 +08:00
Automator.app 创建 app
里面有 shell ,然后直接 shell 执行 python 脚本
yzwduck
2021-10-29 07:33:25 +08:00
请先确定是哪个程序需要授予 Full Disk Access:用 spindump 收集 Python 进程信息,然后看它的 Responsible 进程。我觉得在这种使用场景下,需要 Full Disk Access 的很可能是 Chrome 浏览器。
LoneFireBlossom
2021-11-05 17:38:05 +08:00
一台 Mac 也可以装多个系统我记得 你可以搜一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/811359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX