2

次のアプリ識別子com.test.product1があると仮定します。これは、グループ ID group.com.test.product1 を提供するproduct1 のものです。

groupid group.com.test.product2 を提供する product2 のcom.test.product2を持つ別の製品とドキュメントを共有することになっています

これらすべてのアプリケーション間でgroup.com.test.productなどの共通グループを共有するにはどうすればよいですか?

4

2 に答える 2

5

アプリ グループを使用して共有データを保存できますが、組み込みの型でのみこれを実行しようとしました。

独自のクラスを保存しようとしている場合は、NSKeyedArchiver や NSCoding などを確認する必要がある場合があります (こちらを参照してください)。

組み込み型を使用する方法が見つかった場合は、次のようにアプリ グループを使用できます。

複数のアプリ間で NSUserDefaults データを共有する

アプリと拡張機能の間、または 2 つのアプリ間で既定値を共有するには、次の手順を使用して設定にアプリ グループを追加する必要があります。

  1. Project Navigator で、*.xcodeproj ファイル (一番上にあるはずです) をクリックします。
  2. Project Navigator の右側で、Project と Targets を探します。ターゲットの下で、プライマリ ターゲットをクリックします ([ターゲット] の下で最初にある必要があります)。
  3. 上部に向かって、[機能] タブをクリックします。
  4. [アプリ グループ] セクションで、右側のスイッチをクリックしてアプリ グループをオンにします。
  5. + ボタンをクリックして、group.com.company.myAppという名前のアプリ グループを追加します。
  6. 他のアプリで同じ場所に移動すると、このグループが選択できるようになります。この共有データを使用するアプリごとに、このグループをオンにします。

注: Apple Developer Portal (すべての証明書、識別子、デバイス、およびプロビジョニング プロファイルを表示する Apple Web サイト) にアクセスし、[識別子] > [アプリ グループ] に移動すると、この新しいアプリ グループが表示されます。

データを保存するには:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
userDefaults!.setObject("user12345", forKey: "userId")
userDefaults!.synchronize()

データを取得するには:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
if let testUserId = userDefaults?.objectForKey("userId") as? String {
  print("User Id: \(testUserId)")
}
于 2015-10-29T14:32:16.083 に答える