xcode: как сохранить файлы в папке "документы" в фазе компиляции / сборки (не через "код при запуске")?

У меня есть много jpeg+png+html файлов для добавления в мое приложение, и, конечно, когда я "собираю" его, все мои файлы ресурсов добавляются / включаются в папку myApp mainBundle.

Я хотел бы иметь возможность изменять с помощью кода, во время выполнения, некоторые из моих ресурсов, но:

1) мы не можем "записывать" файлы через код во время выполнения в mainBundle

2) мы можем сделать это просто в папке "документы" (или временная, или...)

3) мы можем копировать файлы в папку "Документы" просто через код во время выполнения

4) мы не можем удалить файлы mainBundle после их копирования в "Документы"

но это означает, что у нас будет вдвое больше нашего приложения, и в больших приложениях (это мой случай) это должно быть лишено смысла, у нас будет много больших файлов, которые никогда больше не будут использоваться в mainBundle...

поэтому мне было интересно, есть ли обходной путь для этой проблемы (это просто я считаю, что это бессмысленно?) для добавления файлов непосредственно в папку "Документы" на этапе "сборки" через xCode или других подобных решений...

п.с.

Можно было бы загрузить все файлы в первый раз, когда пользователь использует мое приложение через сервер / интернет прямо в папке "Документы", поэтому мое приложение не будет загружать через iTunesStore, но, конечно, это займет много времени. в первый раз для конечных пользователей, и это, конечно, не может быть принято...

2 ответа

Решение

Ну, вы не можете, так как каталог документов создается при установке приложения. Нет способа делать то, что вы хотите во время компиляции. Ни вы не можете сделать это при установке.

Так как вам нужен файл, вы должны включить их в свой пакет, я даже включил базу данных sqlite размером 10 МБ, которую я копирую в документ непосредственно при первом запуске. Так оно и есть.

Не работает для приложений

Копирование файлов в каталог документов во время компиляции требует, чтобы вы знали этот каталог заранее. Как правило, вы не можете этого знать, так как каталог документов, возможно, не был создан до установки вашего приложения.

Может работать на юнит-тестах на симуляторе

Однако расположение каталога документов зависит от целевой платформы и типа создаваемого пакета. Для модульных тестов, основанных на SenTestingKit, выполняемых на симуляторе iOS, вы можете определить каталог документов во время компиляции, просто выполнив это на этапе сборки "Run Script":

~/Library/Application Support/iPhone\ Simulator/$IPHONEOS_DEPLOYMENT_TARGET/Documents

Обратите внимание, что это действительно работает только для пакетов модульных тестов, так как они не выполняются в выделенном каталоге приложения и, таким образом, получают доступ к "общему" каталогу документов на платформе симулятора.

Другие вопросы по тегам