2012-07-26 7 views
2

자격 부여 문서는 내가 메인 응용 프로그램과 주요 응용 프로그램 번들에 포함 된 도우미 응용 프로그램에 자격 키를 추가 한 어떤 multiple apps produced by a single development team can share access to a special group container샌드 박스 코코아 응용 프로그램 그룹

에서하는 방법을 설명합니다. 그룹 디렉토리는 생성되지 않으며 경로를 얻는 방법 ([NSURL containerURLForSecurityApplicationGroupIdentifier:])은 실제로 어떤 헤더에도 존재하지 않습니다.

공유 그룹 컨테이너를 만들려면 무엇이 누락 되었습니까?

UPDATE : 추가 자격 및 그룹 컨테이너 생성을 여기

내 자격이 주요 응용 프로그램 및 도우미 응용 프로그램 파일입니다. 나 자신 어떤 dev에 포럼에서 정보를 기반으로 그룹 컨테이너 디렉토리를 작성하려고했습니다

<?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.pinepointsoftware</string> 
    </array> 
</dict> 
</plist> 

(내 실제 ID와 TEAM_ID 교체) : 실행

NSFileManager *fm = [NSFileManager defaultManager]; 
NSString *path = [@"~/Library/Group Containers/TEAM_ID.com.pinepointsoftware" stringByExpandingTildeInPath]; 

if ([fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:NULL]) { 
    [fm createFileAtPath:[path stringByAppendingPathComponent:@"test.txt"] contents:nil attributes:nil]; 
} 

그 주와 및 도우미 내부 응용 프로그램은 각각의 샌드 박스에 두 개의 다른 디렉토리를 만듭니다.

XPC 용 응용 프로그램 그룹을 사용하는 Apple AppSandboxLoginItemXPCDemo의 샘플 프로젝트를 찾았습니다. 팀과 일치하도록 인 타이틀먼트 및 번들 식별자를 변경하여 작동 시키지만 그룹 컨테이너를 공유 할 수는 없습니다.

+0

인 타이틀먼트 선언의 XML 스키마를 게시 할 수 있습니까? – Dov

답변

5

"~"은 샌드 박스 환경에서 컨테이너 디렉토리로 자동 변환됩니다.

이렇게하는 한 가지 방법은 ~/Library에 도달 할 때까지 "~"에 단계 뒤로 ("../") 번호를 추가 한 다음 시작하여 그룹 컨테이너를 만드는 것입니다.

+0

좋아, 고마워. 이 작업을 사용하여 디렉토리 만들기 : NSString * groupContainer = [@ "~ /../../../Group Containers/TEAM_ID.com.pinepointsoftware"stringByExpandingTildeInPath]; ' –

+0

이 작업은 가능하지만 걱정이됩니다. 미래에 애플이 그것을 고치면 깨어 라! 이상하게도이 기능은 10.7.4에서 소개되었으며 현재 10.8.1이며이 심각한 버그를 해결하지 못했습니다. – strange

+1

이것은 버그가 아닙니다. 경로에 대한 액세스 권한이 없으면 작동하지 않습니다. containerURLForSecurityApplicationGroupIdentifier 메소드가 구현 될 때까지 그룹 컨테이너의 경로를 가져 오는 방법입니다. – Samir

관련 문제