2012-04-28 7 views
2

2つの開発者プロファイルの間でアプリケーションデータを共有したいのですが、これはキーチェーンアクセスで可能ですか?キーチェーンを使用してプロビジョニングプロファイル間でデータを共有できますか?

ドキュメントを読むと、アプリケーションIDの前にある識別子に限定されているように聞こえます。 EX:GUS8339.com.company.appはGUS8339プロファイルの署名付きアプリケーションに限定します

答えて

-2

キーチェーンアクセスグループは、バンドルシードID(プロビジョニングプロファイルに固有の値 "GUS8339")に依存します。つまり、シードIDは基本的には例のプロビジョニングプロファイルIDなので、異なるプロビジョニングプロファイル間でアクセスグループを使用することはできません。

+0

プロフィールに固有のものではありません。これは「アプリID」の一部として設定されていますが、アプリIDは同じバンドルシードを共有できます。新しい会社の場合、チームIDがデフォルトになります。 –

+0

アプリケーションIDは、同じプロビジョニングプロファイル上にある場合は同じバンドルシードを共有できます。バンドルシードIDは、提供プロファイルとエンタイトルメントを一意にするものの一部です。異なるプロビジョニングプロファイル*および*異なるシードIDを持つアプリケーションは、アクセスグループを使用してお互いのキーチェーンを読み取ることができます。彼らはできません。 http://developer.apple.com/library/ios/#documentation/Security/Reference/keychainservices/Reference/reference.html#//apple_ref/c/func/SecItemAdd http://developer.apple。 COM /ライブラリ/ IOS /#技術情報/ tn2250/_index.html – quellish

+0

しかし、あなたは、このデータを知っているか: キーチェーンアクセス・グループ A1B2C3D4E5 * でしたあなた、その後、知っています。他のアプリケーションのキーチェーンのアクセス文字列、キーチェーンからデータを取得するまたは、許可が厳密に与えられていない。私はjailbrokenデバイスがこの種のデータ共有を許してしまうだろうと推測しています。 – cynistersix

3

あなたは正しいですが、それは少し複雑です:

  • プロビジョニングプロファイルが同じバンドルの種を持っている必要があります。これは、対応する「アプリID」を作成するときに設定されます。アプリをApp Storeに送信した後にアプリIDを変更できますが、ワイルドカード以外のアプリIDには固有のバンドルIDが必要です(つまり、アプリにワイルドカード以外のアプリIDを既に設定している場合は、ワイルドカードアプリIDを使用するようにのみ変更できます)。

  • 両方のアプリケーションに同じ「キーチェーンアクセスグループ」へのアクセス権を与える必要があります。これはアプリのエンタイトルメントに設定されています。私はXcodeが今これらを編集するための実用的なUIを持っていると思う。ワイルドカードアクセスグループを使用できますが、これはお勧めしないと思います。

    <key>Entitlements</key> 
    <dict> 
        <key>application-identifier</key> 
        <string>A1B2C3D4E5.com.example.myapp</string> 
        <key>aps-environment</key> 
        <string>production</string> 
        <key>get-task-allow</key> 
        </false> 
        <key>keychain-access-groups</key> 
        <array> 
        <string>A1B2C3D4E5.*</string> 
        </array> 
    </dict> 
    

    これは、あなたが資格に入れることができるものを制限し、しかし、あなたはできるはずです:

プロビジョニングプロファイルの関連部分は、(お好みのテキストエディタで開いている1)。このようになります何かを指定する

<key>keychain-access-groups</key> 
    <array> 
    <string>A1B2C3D4E5.com.example.myappsuite</string> 
    </array> 

これはキーチェーンAPIに指定する必要があることに注意してください。

+0

元の質問には「GUS8339.com.company。アプリケーションはGUS8339プロファイルに署名したアプリケーションに制限します。 " – quellish

関連する問題