python - 在 iOS 设备上运行时,如何允许我的 Kivy 应用程序访问文本文件?
问题描述
我用 Python 和 Kivy for iOS 制作了一个天气应用程序,最后构建它并让它在 Xcode 模拟器上运行。我在 Windows 10 上编写了程序,但一直在 Mac 上编译它。我可以在我的 iOS 设备上构建它,但是当我运行应用程序功能时,我似乎会permissionerror: [errno 1] operation not permitted:
在我的 main.py 尝试写入.txt
文件时得到它。.txt
它需要引用的文件与所有其他文件位于同一工作目录中,例如。main.kv、firebase.py 等等等等,所以我不太确定这里发生了什么。
我已经尝试清理构建并删除派生数据并重新开始构建。在查找器文件中,我已更改权限以允许对与应用程序相关的每个文件具有“读写”权限。签名和功能以我的名义,我通过我的设备“信任”了这一点。
此外,当我在我的实际设备上尝试任何 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”部分。这有关系吗?
解决方案
经过大量研究,我发现我不允许编写 iOS 应用程序的根文件夹,并且只能将其写入名为user_data_dir
. 我在我的程序中所做的只是在我所有的写入文件命令前面加上self.user_data_dir +
.
所以open("briefing_results_1.txt", "w")
以前的现在只是open(self.user_data_dir + "briefing_results_1.txt", "w")
。这解决了一切。
推荐阅读
- terraform - 帐户或密码已过期,请重置您的密码并重试 sudo:无法更改过期密码:身份验证令牌操作错误
- javascript - javascript添加日期?
- python - python aiohttp超时是针对单个TCP连接还是针对http请求?
- sql - 其他表中每个最接近的较早日期的 SQL 查找值
- .net-core - dotnet 恢复文件匹配
- r - R:插入符号包 predict.train 导致无意义的预测
- android - 在 Unit Test Android 中测试多模块 dagger 依赖项
- system - system verilog HDL - 4bit 输入逻辑计算器
- python - 如何将pytorch张量转换为((value0,row0,column0),(value1,row0,column1)......)等视图?
- c# - 自定义 ViewComponent 查看位置