Не удается скопировать файлы из основного пакета в каталог документов на iPad - PullRequest
0 голосов
/ 01 июня 2011

Я нашел этот кусок кода из другого поста здесь.Он работал, как и предполагалось, в режиме симулятора iPad, но не тогда, когда я переключался в режим реального устройства iPad.Вместо этого появилось сообщение об ошибке «нет таких файлов».Перед выполнением этих кодов я создал папку Populator, щелкнув правой кнопкой мыши на xxxxxx.app и выбрав «показать содержимое пакета», и поместил некоторые файлы в папку Populator.Копирует ли Xcode весь пакет приложения через устройство iPad?Есть предложения?

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Populator"];
NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"Files"];
NSLog(@"Source Path: %@\n Documents Path: %@ \n Folder Path: %@", sourcePath, documentsDirectory, folderPath);
NSLog(@"docdire: %@", documentsDirectory);
NSLog(@"loadImage button clicked");
label.text = [@"sourcePath: " stringByAppendingString:sourcePath];
textField.text = [@"clicked: " stringByAppendingString:documentsDirectory];;

NSError *error;
if([[NSFileManager defaultManager] copyItemAtPath:sourcePath toPath:folderPath error:&error]){
NSLog(@"File successfully copied");
        label.text = @"copy succeeded";
    } else {
        NSLog(@"Error description-%@ \n", [error localizedDescription]);
        NSLog(@"Error reason-%@", [error localizedFailureReason]);
        label.text = [@"Error description: " stringByAppendingString:[error localizedDescription]];
        label2.text = [@"Error reason: " stringByAppendingString:[error localizedFailureReason]];
    }

Ответы [ 3 ]

3 голосов
/ 01 июня 2011

Вы не можете добавлять файлы или папки в NSBundle после его сборки. Для устройства Xcode собирается подписать NSBundle. Все файлы и папки, которые вы хотите в NSBundle на устройстве, должны быть добавлены в ваш проект XCode.

Другой способ добавить файлы / папки в NSBundle - на этапе сборки, прежде чем пакет будет подписан.

0 голосов
/ 01 июня 2011

Как и в моем комментарии в исходном вопросе:

Я обнаружил, что есть 2 места, в которых есть пакет xxxxx.app.Один для симулятора, а другой для дистрибутива сборки.

0 голосов
/ 01 июня 2011

Без доступа к фактическому списку файлов вы можете проверить регистр имен файлов. Симулятор iPhone не чувствителен к регистру, а файловая система iPad - чувствительна к регистру. Это сбило с толку многих разработчиков в прошлом.

...