2011-06-01 38 views
0

我在這裏找到了這篇帖子。它在iPad模擬器模式下按照預期工作,但在切換到實際的iPad設備模式時無法使用。相反,它提出了「沒有這樣的文件存在」的錯誤信息。在執行這些代碼之前,我確實通過右鍵單擊xxxxxx.app創建了一個Populator文件夾,然後選擇「顯示包內容」並將一些文件放入Populator文件夾。 Xcode是否將整個應用程序包複製到iPad設備上?有什麼建議麼?無法將文件從主包複製到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]]; 
    } 
+0

我發現有2個地方有xxxxx.app包。一個用於模擬器,另一個用於構建分佈。 – user523234 2011-06-01 00:42:03

回答

3

構建完成後,無法將文件或文件夾添加到NSBundle。對於該設備,Xcode將簽署NSBundle。無論您在設備上的NSBundle中需要什麼文件和文件夾,都必須添加到您的Xcode項目中。

將文件/文件夾添加到NSBundle的另一種方式是在捆綁包簽署之前的構建階段。

0

無法訪問實際文件列表,您可能想檢查文件名的大小寫。 iPhone模擬器不區分大小寫,而iPad文件系統則區分大小寫。這在過去讓許多開發者絆倒了。

0

正如我在原來的問題評論:

我發現有2處具有xxxxx.app包。一個用於模擬器,另一個用於構建分佈。

相關問題