Операционная система iPhone 4.0 записывает в видимый файл в песочнице - PullRequest
1 голос
/ 30 июня 2010

Я работал до версии 4.0 с моим iPhone и писал на media / DCIM / 100APPLE. Я мог бы загрузить эти файлы с помощью DiskAid. Это было идеальное решение для разработчиков. Мой провайдер, не спрашивая, обновил мой телефон до 4.0. Взрыв, я больше не могу писать где-нибудь видимым. В дистрибутиве мы будем использовать временный каталог, без проблем, но в dev мне нужно, чтобы файлы были написаны правильно Я старался UIFileSharingEnabled

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

NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * tempDir = [paths objectAtIndex: 0];

Если я удаляю приложение с iphone и снова запускаю его из xcode, я получаю Ошибка запуска удаленной программы: нет такого файла или каталога (/private/var/mobile/Applications/34846A80-429F-46CB-AC4B-09A701255839/myapp.app/myapp).

Единственный способ обойти это, это удалить общий доступ к файлам из info.plist, запустить отладчик и приложение работает нормально, конечно, оно все равно не будет писать в вышеупомянутый tempDir.

Все отлично работает с NSString * tempDir = NSTevenDirectory (); но я не вижу записанное досье и нахожусь в шторке.

Кто-нибудь нашел решение для работы в темноте.

Ответы [ 3 ]

1 голос
/ 01 июля 2010

Вы действительно можете использовать общий доступ к файлам iTunes для разрабатываемых вами приложений, а не только для тех, которые были развернуты в App Store. Я не уверен, что происходит в вашем случае, потому что код, который вы показываете:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

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

Вы можете свободно читать и писать в этот каталог, и его содержимое обновляется в режиме реального времени, пока iTunes подключен к устройству.

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

0 голосов
/ 01 июля 2010

У меня была похожая проблема. Я использовал подпрограмму с путями NSArray * и DocumentsDirectory для загрузки файлов с сервера и работы с ними в телефоне. Все было хорошо, пока не вышла 4.0, и теперь приложение работает в симуляторе, но не будет работать в IPhone. Поток записи не открывается, и я получаю эту ошибку:

Ошибка домена = NSPOSIXErrorDomain Code = 1 "Операция не может быть завершена. Операция не разрешена" UserInfo = 0x264d10 {} - ошибка

0 голосов
/ 30 июня 2010

Я согласен с @ceejayoz, вы и iTunes обновили свой телефон, поставщики сотовых сетей не могут выдвигать обновления. Вы должны были принять это.

Кроме того, почему вы не можете просто запустить его в симуляторе? Тогда все файлы, записываемые во временный каталог приложения, будут на жестком диске вашего компьютера. Сим хранит свою файловую систему в ~ / Library / iPhone Simulator или в чем-то подобном.

...