2014-11-22 2 views
1

Я работаю с проектом THEOS. В моем проекте я хочу использовать другие фреймворки или библиотеки с их ресурсом связки (* .bundle), например с платформой Google Plus. Потому что это не проект Xcode, поэтому он не имеет Ресурсы копирования Bundle Resources. Я использую NSBundle класса для загрузки пакета ресурсов, но я получаю эту ошибкуЦель C - Ошибка загрузки пакета

Error Domain=NSCocoaErrorDomain Code=4 "The bundle “MyBundle” couldn’t be loaded because its executable couldn’t be located." UserInfo=0x15a308d0 {NSLocalizedRecoverySuggestion=Try reinstalling the bundle., NSLocalizedFailureReason=The bundle’s executable couldn’t be located., NSLocalizedDescription=The bundle “MyBundle” couldn’t be loaded because its executable couldn’t be located., NSBundlePath=/var/mobile/Documents/MyBundle.bundle}

Вот моего код

NSString *bundlePath = @"/var/mobile/Documents/MyBundle.bundle"; 
NSBundle *myBundle = [NSBundle bundleWithPath:bundlePath]; 
NSError *error; 
BOOL loaded = [myBundle loadAndReturnError:&error]; 

NSLog(@"loaded: %@", (loaded ? @"TRUE" : @"FALSE")); 
NSLog(@"error: %@", error); 

Я уже попробовать с другим путем и другим пакетом ресурсами, но я все еще получаю ту же ошибку

+0

'frameworkBundle' - это не то же самое, что' myBundle', не так ли? –

ответ

1

Вы не можете загружать ресурсы из своего приложения или пакета. «/ var/mobile/Documents» недоступен для вашего приложения.

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

+0

У меня есть разрешение «root», а мой код запущен внутри SpringBoard, поэтому путём исходного пути будет '/ System/Library/CoreServices/SpringBoard.app'. Я попытался с помощью GooglePlus.bundle, но все равно получаю то же сообщение об ошибке –

+0

«GooglePlus.bundle» - это набор ресурсов. Он не содержит исполняемого файла. Вызов '-loadAndReturnError:' предназначен для загрузки исполняемых двоичных файлов внутри пакета, а не ресурсов. – quellish

+0

Я вижу свою ошибку с '-loadAndReturnError:', tks. Но с исходным кодом '[NSBundle bundleWithPath: path]', я получаю сообщение об ошибке 'MyBundle.bundle (еще не загружено)' –

Смежные вопросы