3

だから私は自分のターゲットを持つ共有拡張子を持つアプリを持っている。アプリのバンドルIDのコアはcom.company.appで、共有の拡張子はcom.company.app.shareです。それぞれには独自のエンタイトルメントファイルがあり、コアアプリケーションはApp Groups -> group.com.company.appであり、共有拡張は同じです。両方のバンドルIDはアップルデベロッパーのウェブサイトに掲載されていますが、何らかの理由でApp Groupの共有ディレクトリにファイルを追加するには?

共有のprivate/var/mobile/Containers/Shared/AppGroup/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Library/Caches/ディレクトリに書き込む権限がないようです。

私が取得エラーメッセージは次のとおりです。 You don’t have permission to save the file “Caches” in the folder “Library”.

ディレクトリは次のように保存されている:私はここで何が不足していています

GetZipURLInItems(self.extensionContext.inputItems, ^(NSURL *url, NSError *error) { 
    if (error == nil) { 

     NSURL *containerURL = [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:GroupIdentifier] URLByAppendingPathComponent:@"Library/Caches"]; 
     NSLog(@"EXT: containerURL: %@", containerURL); 

     [WPZipArchive unzipFileAtPath:[url path] toDestination:[containerURL absoluteString]]; 

     [self listDirectoryAtPath:[containerURL absoluteString]]; 
    }}); 

+0

どのように書き込もうとしていますか? NSFileManagerを使って見てください:containerURLForSecurityApplicationGroupIdentifier – Gruntcakes

+0

@Essenceofchickens元の質問を更新して、私がどのようにディレクトリを保存しているかを表示しました。 – kiaraRobles

+0

URLByAppendingPathComponent:の部分を使わずに試しましたか? – Gruntcakes

答えて

1

問題は[url absoluteString] vs [url path]を実際に使用していました。すべてのURLをパスに変更すると、権限エラーが解決されました。

関連する問題