8

iOS 8 拡張機能とコンテナー アプリの間でデータを共有するのに問題があります。開発ポータルと Xcode からグループをセットアップしました。資格 plist はどちらも次のようになります。

<dict>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>my group id</string>
    </array>
</dict>

使用するアップルドキュメントの推奨ソリューション[[NSUserDefaults standardUserDefaults]

私にはうまくいきません。

私はこの投稿から @Santa Claus による解決策を試しました

[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];

サンタ クロースのソリューションはシミュレーターでは機能しましたが、iPhone 4s では機能しませんでした。実際のデバイスで機能させる方法についてのアイデアはありますか? または、何か不足していますか?

いくつかの更新:

[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group id"];

関数は url を返します。コンテナー アプリと拡張機能からの両方の url は、" path /private/var/mobile/Containers/Shared/AppGroup/3DFB9750-A9F3-4C37-BC3C-0D5BF746B‌ 233" のように同じように見えます。コンテナー アプリからそのフォルダー内に json ファイルを作成しましたが、デバイスで実行すると、拡張機能がフォルダー内のファイルを見つけることができません。しかし、シミュレーターではそれがうまく見つかり、すべてが機能します。

4

3 に答える 3

20

私の解決策は、カスタム キーボードの Info.plist を編集することです。

NSExtension -> NSExtensionAttributes -> RequestsOpenAccess

はいにしてください。

次に、デバイスのキーボードを削除して、再度追加します。キーボード追加ページには、「フル アクセスを許可」という名前の設定があり、それを有効にすると、キーボードが共有データにアクセスできるようになります。

于 2014-07-03T06:35:16.007 に答える
2

キーボード拡張については、heheBear の回答として RequestsOpenAccess を有効にして
、設定/キーボードからキーボードを削除して再度追加してみてください
。ベータ 4 以降、ベータ 5 を含めて、キーボード拡張が安定せず、パフォーマンスが非常に悪い場合があります。

于 2014-09-07T07:46:16.050 に答える
1

この問題はカスタム キーボードでのみ発生し、iOS8 ベータ 2 で問題が修正されました。

于 2014-06-18T23:04:43.397 に答える