5

1 つのアプリケーション グループ内の 2 つのサンドボックス アプリケーションで問題が発生しています。私の資格ファイルには、次のものがあります。

<?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>

ここで、'Company' と 'AppName' は私の会社に置き換えられ、アプリ名と TEAM_ID は私のチームの ID に置き換えられます。どちらのアプリケーションにも、これらのまったく同じ資格があります。

さて、両方のアプリをビルドして起動すると、すべてがうまくいっているようです。~/Library フォルダーに「Group Containers」フォルダーが見つからないという事実を除いて...両方のアプリ用のフォルダーを含む「Containers」フォルダーがあります。ただし、Group Containers フォルダーはありません。

10.8.2 を実行しており、アプリの展開ターゲットは 10.8 です。

Developer Libraryによると、10.7.4から利用できるはずです。私はこれを使用しました: https://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW19を作成する私の資格。

私は何を間違っていますか?

ありがとう、

4

2 に答える 2

3

公式の Apple Developer Forums の誰かが、プログラムでフォルダーを作成することを提案しました。これが私の問題の解決策でした!

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

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

メイン アプリケーションが、ヘルパー (デーモン) アプリケーションが読み取ることができる設定を書き込むことができる plist ファイルにグループ コンテナー フォルダーを使用しました (NSMutableDictionary の initWithContentsOfFile: および writeToFile: メソッドを使用)。これは今では完全に機能します:)

于 2013-03-01T16:22:20.623 に答える