2014-11-22 2 views
1

저는 THEOS 프로젝트로 작업하고 있습니다. 내 프로젝트에서는 Google 플러스 프레임 워크와 같은 번들 리소스 (* .bundle)와 함께 다른 프레임 워크 또는 라이브러리를 사용하려고합니다. Xcode 프로젝트가 아니기 때문에 번들 리소스 복사 섹션이 없습니다. 내가 번들 리소스를로드 할 수 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}

여기에 이미 다른 경로와 다른 번들 자원과 노력하지만 난 여전히 같은 오류

+0

'frameworkBundle'은'myBundle'과 같은 것이 아닙니다, 그렇습니까? –

답변

1
을 얻을 내 코드

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); 

입니다

응용 프로그램 번들 또는 번들 컨테이너 외부에서 리소스를로드 할 수 없습니다. "/ var/mobile/Documents"는 응용 프로그램에서 액세스 할 수 없습니다.

실제 오류는 시스템에서 실행 파일을로드 할 수 없다는 것입니다. -loadAndReturnError:은 해당 번들에 코드를로드하기위한 것입니다. 리소스가 있지만 실행 가능한 코드가 아닌 번들을로드하는 것 같습니다.

+0

SpringBoard에서'root' 권한과 코드가 실행 중이므로 번들 소스 경로는'/ System/Library/CoreServices/SpringBoard.app'가됩니다. 나는 'GooglePlus.bundle'을 시도했지만 여전히 동일한 오류 메시지가 나타납니다. –

+0

"GooglePlus.bundle"은 리소스 번들입니다. 실행 파일이 없습니다. '-loadAndReturnError :'를 호출하면 리소스가 아니라 번들 내에 실행 가능한 바이너리를 로딩 할 수 있습니다. – quellish

+0

'-loadAndReturnError :', tks와 관련된 오류가 있습니다. 그러나 원본 코드'[NSBundle bundleWithPath : path]'를 사용하면'MyBundle.bundle (아직로드되지 않았습니다)'오류 메시지가 나타납니다. –

관련 문제