2016-04-14 13 views
2

私はアプリと有料版の無料版を持っています。無料版から有料版に既存のデータをインポートするオプションをユーザーに提供したいと思います。Swiftの無料アプリから有料アプリにコアデータをインポート

現在、データはコアデータに保存されています。

私はインターネットなどで既存のソリューションを検討しましたが、既存のソリューションでは、データを含むURLリクエストを使用して無料アプリケーションから有料アプリケーションにリクエストすることを提案しています。 (例えばhttp://mobileorchard.com/lite-to-paid-iphone-application-data-migrations-with-custom-url-handlers/

だから私の質問は、スウィフトにソリューションを実装するのが最善であるか、次のとおりです。

は、URLの方法は、まだ最善のアプローチですか? コードサンプルはありますか?

DB全体をJSONに変換してから、JSONペイロードでリクエストを作成し、もう一方のコアデータにデシリアライズすることをお勧めします。 Create json string from core data and vice versa?

答えて

2

両方のアプリがアクセスできるアプリケーションのグループを設定しています。データをアプリケーショングループフォルダに入れ、両方のバージョンからアクセスします。あなたはそれをコピーする必要はありません、ちょうどそれをそのまま残してください。 Xcodeでターゲットの設定の「アプリケーショングループ」セクションでアプリのグループを設定し

  1. :これを行うには

    。両方のバージョンで同じアプリグループを使用します。

  2. でアプリのグループフォルダの場所検索:

    NSURL *groupURL = [[NSFileManager defaultManager] 
        containerURLForSecurityApplicationGroupIdentifier: 
         @"GROUP_NAME_HERE"]; 
    

    またはスウィフト中:

    //swift 
    let groupURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("groupIdentifier") 
    
  3. あなたが見つかったディレクトリに永続的ストアファイルを置くために、あなたのコアデータのセットアップコードを変更します前の手順で

既存のアプリケーションがあるので、既存のデータを新しいアプリケーショングループディレクトリに移動することができます。これを行うには、migratePersistentStore:toURL:options:withType:error:を使用して、既存の店舗をステップ2の新しい場所に移動します。

この時点で、両方のアプリは同じディレクトリを読み書きできます。人々が有料アプリを購入すると、そのデータは文字通り既にそこにあります。

+0

これは素晴らしい、とてもきれいで、とても簡単です - 優雅な解決策です。迅速な同等物も追加します! –

+0

@PhilHudson編集提案のおかげで、なぜ人々がそれを拒否したのかわかりません。 –

+0

アプリグループは本当にうまくいっています(まだ起動していないアプリ用)。私は、データ(およびドキュメントディレクトリに保存されているイメージ)の移行について検討しています。これにはSwiftのベストプラクティスとアプローチの例や経験がありますか? :)任意のヒントをいただきました! –

0

キーワードはアプリケーション間通信です。簡単な方法の1つは、URLスキームハンドラを作成することです。

:iPhone OSのプログラミングガイドは

アプリはデバイス上の他のアプリとの間接的にしか通信します。 AirDropを使用してファイルやデータを他のアプリケーションと共有できます。 カスタムURLスキームを定義して、アプリがURLを使用して アプリに情報を送信できるようにすることもできます。

注: UIDocumentInteractionControllerオブジェクトまたはドキュメントピッカーを使用してアプリケーション間でファイルを送信することもできます。 ドキュメントインタラクションのサポートの追加については、 コントローラを参照してください.iOSのドキュメントインタラクションプログラミングトピックを参照してください。 ドキュメントピッカーを使用してファイルを開く方法については、ドキュメント ピッカープログラミングガイドを参照してください。私はどうだろう何

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html