2013-02-28 2 views
4

하나의 응용 프로그램 그룹에서 두 개의 샌드 박스 응용 프로그램에 문제가 있습니다. 내 타이틀먼트가 파일에서 나는 다음이 '회사'와 '프로그램 응용이'내 회사와 내 팀의 ID와 앱 이름과 TEAM_ID로 대체됩니다 Mac App Sandbox 그룹 컨테이너 문제

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>com.apple.security.app-sandbox</key> 
    <true/> 

    <key>com.apple.security.application-groups</key> 
    <array> 
      <string>TEAM_ID.com.Company.AppName</string> 
    </array> 
</dict> 
</plist> 

. 두 응용 프로그램 모두 정확히 동일한 권한을가집니다.

이제 두 앱을 모두 빌드하고 실행하면 모든 것이 제대로 된 것처럼 보입니다. ~/Library 폴더에서 찾을 수있는 'Group Containers'폴더가 없다는 것을 제외하고 ... 두 앱용 폴더가있는 'Containers'폴더가 있습니다. 그러나 Group Containers 폴더는 없습니다.

저는 10.8.2를 실행 중이며 내 앱의 배포 대상은 10.8입니다.

개발자 라이브러리에 따르면 10.7.4에서 사용할 수 있습니다. 나는 이걸 사용했습니다 : https://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW19 내 인 타이틀먼트를 만듭니다.

내가 뭘 잘못하고 있니?

덕분에, 공식 애플 개발자 포럼에

답변

2

누군가가 내 문제에 대한 해결책이었다 프로그래밍 방식으로 폴더를 생성 제안!

NSString *groupContainer = [@"~/../../../Group Containers/TEAM_ID.com.Company.AppName" stringByExpandingTildeInPath]; 

[[NSFileManager defaultManager] createDirectoryAtPath:groupContainer withIntermediateDirectories:YES attributes:nil error:NULL]] 

나는 (: 및 writeToFile : NSMutableDictionary의 메소드 initWithContentsOfFile 사용) 내 주요 응용 프로그램 내 도우미 (데몬) 응용 프로그램이 읽을 수있는 설정을 쓸 수있는 PLIST 파일의 그룹 컨테이너 폴더를 사용했습니다. 이제 완벽하게 작동합니다 :)

+0

앱과 함께 deamon 앱을 배포합니까? –