私は今同じ問題と戦っています。「答え」は、identifierForVendor が Apple ドキュメント内の意図した設計に従って壊れていることです。
バンドル ID はリバース DNS 形式であると想定され、最初の 2 つのコンポーネントを使用してベンダー ID が生成されます。たとえば、com.example.app1 と com.example.app2 は同じベンダー ID を持つように見えます。
実際には、identifierForVendor は、同じプロビジョニング プロファイルと署名証明書を使用するアプリでのみ同一です。例として、エンタープライズ環境に複数のアプリがあり、そのすべてが com.mycompany..
identifierForVendor は、bundleID com.mycompany.app1.* とそのプロビジョニング プロファイルを使用するアプリでは同一ですが、com.mycompany.app2 では同じ署名証明書を使用しますが、プロビジョニング プロファイルが異なると異なる identifierForVendor 値が生成されます。
編集:これは iOS7 でのみ発生しますが、iOS6 では問題なく動作します。私は昨日これをしばらくテストし、問題を 7 日中再現することができましたが、6 以内に期待どおりの結果が得られました。
EDIT2: Apple は identifierForVendor の目標投稿を移動しました。彼らは明らかにアルゴリズムの問題を特定し、問題を修正する代わりに、ドキュメントの変更により iOS バージョン間で識別子の機能を変更しました。更新されたドキュメントのリンクは以下のとおりです。SMH。
identifierForVendor