일부 문자열 및 리소스를 교환 할 수있는 OS X 응용 프로그램이 있습니다. 나는 번들 skin.bundle
을 만든 내가 쉽게이 코드리소스 번들을 PlugIns 폴더에로드 중
NSString *path = [[NSBundle mainBundle] pathForResource:@"skin" ofType:@"bundle"];
if (path != nil) {
self.skinBundle = [NSBundle bundleWithPath:path];
[self.skinBundle load];
}
을 나는 주요 응용 프로그램 번들로 번들을 넣어 경우에서 리소스를로드 (이 .APP/내용 아래에 넣어 가도록 (듯이)/자료) 및 사용할 수 있습니다
Cocoa bundle documentation은 모듈화 된 응용 프로그램 용 PlugIns (.app/Contents/PlugIns I believe?) 폴더를 사용하여 대화를하기 때문에 위의 코드를 약간 변경하여 시도했습니다.
NSString *plugins = [[NSBundle mainBundle] builtInPlugInsPath];
NSString *path = [[NSBundle mainBundle] pathForResource:@"skin" ofType:@"bundle" inDirectory:plugins];
그러나 이제 path
은 nil입니다. 나는 또한 동일한 결과를 가진 [[NSBundle mainBundle] pathForResource:@"skin" ofType:@"bundle" inDirectory:@"PlugIns"]
를 시도했다.
번들에는 유효한 Info.plist 파일이 포함되어 있습니다 (코드 서명 목적으로).
나는 첫 번째 접근 방식으로 살 수 있지만 물론 궁금해하고 있습니다. 그것을 생각해 보니 skin.obundle을 찾으면 Application Support 폴더에 번들되므로 업그레이드가 쉽게 지속됩니다.