C 库 fopen 失败

C library fopen fails

提问人:shy-neon 提问时间:11/15/2023 最后编辑:mahal tertinshy-neon 更新时间:11/16/2023 访问量:40

问:

我的 macOS swift 项目包含一个 c 库。这个库有一个函数,它需要文件的路径作为字符串,然后在内部打开该路径的文件并执行其操作。 但是,它无法打开文件

当应用程序在沙盒中运行时,该函数会成功打开 fils(例如在容器的根目录上),并且一切正常。一旦沙箱被禁用,即使我之前打开了一个 OpenPanel 实例并授予了对将要打开文件的文件夹的访问权限,该函数也无法打开该文件并“抛出”错误。

处理这种情况的正确方法是什么?(由于其他原因,此应用程序无法在沙盒中运行,因此这对我来说不是一个有价值的选择)

文件 URL appstore-sandbox nsopenpanel security-scoped-bookmarks

评论

0赞 trojanfoe 11/15/2023
您是否尝试过关闭文件中的沙盒.entitlements
2赞 Community 11/16/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。
1赞 mahal tertin 11/16/2023
难道你是反过来的意思吗?它只在沙盒之外工作?希望您创建url并将其转换为字符串:请显示代码。
0赞 aehlke 11/17/2023
你解决了这个问题吗?遇到同样的问题,但相反(即使 Swift 可以访问应用程序容器中的文件,沙盒也会破坏 fopen)
0赞 shy-neon 11/17/2023
不,激活沙箱并将“/file.name”路径提供给函数会打开容器根目录中的文件,我几乎可以在其中做我想做的所有事情。但是,禁用它并尝试提供“~/Desktop/file.name”路径会打开

答: 暂无答案