#python #ios #xcode #permissions #kivy
Вопрос:
Я создал приложение погоды на Python и Kivy для iOS и, наконец, создал его и запустил на симуляторе Xcode. Я написал программу для Windows 10, но компилировал ее на Mac. Я могу создать его на своих устройствах iOS, но когда я запускаю функции приложений, я, кажется, понимаю permissionerror: [errno 1] operation not permitted:
, когда мой main.py пытается ЗАПИСЫВАТЬ в .txt
файлы. .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». Это как-то связано с этим?
Комментарии:
1. Вы должны работать в песочнице. Если вы добавили файлы txt в свой проект, они окажутся в комплекте. Вам необходимо использовать API пакета для чтения файлов из пакета.
2. Могу я спросить, как я мог бы начать учиться использовать api пакета? Я вообще не имею ни малейшего представления о том, что происходит с xcode, извините.
Ответ №1:
После долгих исследований я обнаружил, что мне не разрешалось записывать корневую папку приложения iOS и что ее можно было записывать только в определенный каталог под названием user_data_dir
. То, что я сделал в своей программе, было просто дополнить все мои команды записи файлов self.user_data_dir
.
Так что то, что было open("briefing_results_1.txt", "w")
раньше, теперь справедливо open(self.user_data_dir "briefing_results_1.txt", "w")
. Это решило все.