我用Python和Kivy为iOS制作了一个天气应用程序,最后构建了它,并在Xcode模拟器上运行它。这个程序是我在Windows10上写的,但一直在Mac上编译。我可以在我的iOS设备上构建它,但是当我运行应用程序函数时,当我的main.py试图写入.txt
文件时,我似乎得到了permissionerror: [errno 1] operation not permitted:
。它需要引用的.txt
文件与所有其他文件位于相同的工作目录中。main.kv,firebase.py等等,所以我不太确定这里发生了什么。
我已经尝试过清理构建和删除派生数据,并重新开始构建。在finder文件中,我更改了权限,允许对与应用程序相关的每个文件具有“读写”权限。签名和功能都在我的名下,我通过我的设备“信任”这一点。
此外,当我在我的实际设备上尝试任何firebase身份验证时,应用程序崩溃并退出,但在模拟器上它工作得很好。在我的iPhone/iPad上,我可以像平常一样更新实时数据库,当涉及到firebase上的身份验证时,它就会崩溃。我猜这是因为它写入了"refresh_token.txt“文件,当身份验证发生时将读取该文件。
如何在我的iOS设备上允许此操作的权限??有没有一种方法可以允许在iOS上写入文件?
我刚开始使用Mac/Xcode/Kivy,所以请对我好一点。如果能帮上忙我会很感激的。非常感谢。
这是xcode包的截图。文本文件分别为:
"alternate_figs.txt“
"briefing_results_1.txt“
"briefing_results_2.txt“
"refresh_token.txt“
我注意到在这个侧窗口中,他们没有显示标签的".txt“部分。这和它有什么关系吗?
发布于 2021-10-09 03:55:08
经过大量的研究,我发现我不被允许写iOS应用的根文件夹,它只能写在一个名为user_data_dir
的特定目录中。我在我的程序中所做的就是在我所有的写文件命令前面加上self.user_data_dir +
。
因此,以前的open("briefing_results_1.txt", "w")
现在只有open(self.user_data_dir + "briefing_results_1.txt", "w")
了。这就解决了所有问题。
https://stackoverflow.com/questions/69491636
复制