8

Keychain Services Programming Guide には、次のように記載されています。

「iPhone では、キーチェーンの権利はアプリケーションの署名に使用されるプロビジョニング プロファイルに依存します。アプリケーションの異なるバージョン間で同じプロビジョニング プロファイルを一貫して使用するようにしてください。」

問題はありませんが、AppStore でアプリに更新を提供した場合でも、キーチェーンに保存されている古い値にアクセスできることをテストしたいと思います。オリジナルと同じバンドル ID と製品名を含むアドホック配布プロファイルで署名されたバージョンでアプリを更新してテストしようとしましたが、キーチェーンの古い値にアクセスできませんでした。

アップデートを AppStore に提出し、それが機能することを期待する唯一のオプションはありますか?

4

4 に答える 4

4

これは良い質問です。

キーチェーンにデータを保存する主な理由の 1 つは、悪意のあるユーザーがアクセスできないようにすることです。これだけでは非常に単調な文なので、誰かがそのデータにアクセスする方法について読むことをお勧めします。

キーチェーン データにアクセスするもう 1 つの方法は、ターゲット アプリと同じアプリ ID を持つ悪意のあるアプリを作成することです。Apple は、プロビジョニング プロファイルが同じであることを要求することで、このルートを保護しています。


したがって、あなたの質問に答えるには、同じプロビジョニング プロファイルからのキーチェーン データの更新のみをテストできます。つまり、

  1. アドホックからアドホックへ
  2. アプリストアからアプリストアへ。

それまでには手遅れになるため、App Store から App Store への移行は実際にはオプションではありません (アップデートは市場に出ています)。代わりに、App Store アプリを削除してアドホック バージョンをインストールする必要があります。次に、キーチェーンでデータを再作成し、最新のアドホック バージョンに更新して、それが機能することをテストします。

もちろん、これには、現在アプリ ストアにあるアプリのアドホック バージョンをアーカイブする必要があります。これがない場合、更新をテストすることはできません。

于 2013-07-22T09:56:25.647 に答える
-1

実際に重要なのはプロビジョニング ファイルではなく、アプリ ID です。具体的には、アプリ ID の作成時に設定したバンドル シード ID。キーチェーン アクセスはそれによって管理されます。そのため、プロファイルが同じバンドル シード ID を持つアプリ ID を使用している限り、キーチェーン内の情報に引き続きアクセスできます。これを行うアプリがいくつかあります。

これにより、同じバンドル シード ID を使用するように設定している限り、同じキーチェーン アイテムにすべてアクセスできる一連のアプリを作成できます。そのため、ライト バージョンとプロ バージョンを実行すると、両方とも同じキーチェーン情報にアクセスできますが、ユーザーのデフォルトなどの個別のバンドル ID を維持できます。

于 2011-04-19T01:37:25.337 に答える
-1

私が間違っていない限り、アプリ ストアでアプリを更新するには、同じプロビジョニング プロファイルを使用する必要があります。したがって、同じプロファイルを使用するため、同じキーチェーン アイテムにアクセスできる必要があります。

于 2011-04-19T01:21:49.477 に答える
-3

SFHFKeychainUtils が適切な選択かもしれません。キーチェーンにアクセスするためのラッパーです。詳細: SFHFKeychainUtils: http://www.ioslib.com/archives/sfhfkeychainutils/

于 2011-04-22T04:01:29.973 に答える