当 运行 在 iOS 设备上时,如何允许我的 Kivy 应用程序访问文本文件?
How can I allow permissions for my Kivy app to access text files when running on an iOS device?
我用 Python 和 Kivy 为 iOS 制作了一个天气应用程序,并最终构建了它并在 Xcode 模拟器上得到了它 运行ning。我在 Windows 10 上编写了程序,但一直在 Mac 上编译它。我可以在我的 iOS 设备上构建它,但是当我 运行 应用程序运行时,当我的 main.py 尝试写入 [=13= 时,我似乎得到 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"
我注意到在这边 window 它们不显示标签的“.txt”部分。跟这个有关系吗?
经过大量研究,我发现我不能写 iOS 应用程序的根文件夹,它只能写在名为 user_data_dir
的特定目录中。我在我的程序中所做的只是在我所有的写文件命令前加上 self.user_data_dir +
.
所以之前的 open("briefing_results_1.txt", "w")
现在只是 open(self.user_data_dir + "briefing_results_1.txt", "w")
。那解决了一切。
我用 Python 和 Kivy 为 iOS 制作了一个天气应用程序,并最终构建了它并在 Xcode 模拟器上得到了它 运行ning。我在 Windows 10 上编写了程序,但一直在 Mac 上编译它。我可以在我的 iOS 设备上构建它,但是当我 运行 应用程序运行时,当我的 main.py 尝试写入 [=13= 时,我似乎得到 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"
我注意到在这边 window 它们不显示标签的“.txt”部分。跟这个有关系吗?
经过大量研究,我发现我不能写 iOS 应用程序的根文件夹,它只能写在名为 user_data_dir
的特定目录中。我在我的程序中所做的只是在我所有的写文件命令前加上 self.user_data_dir +
.
所以之前的 open("briefing_results_1.txt", "w")
现在只是 open(self.user_data_dir + "briefing_results_1.txt", "w")
。那解决了一切。