xcode: как сохранить файлы в папке «документы» в фазе компиляции / сборки (не через «код при запуске»)? - PullRequest
5 голосов
/ 20 июля 2011

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

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

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

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

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

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

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

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

пс

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

Ответы [ 2 ]

4 голосов
/ 20 июля 2011

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

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

2 голосов
/ 18 января 2012

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

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

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

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

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

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

...