2016-08-08 17 views
1

1PasswordとLastPassの両方がパスワード管理に同じスキーム(org-appextension-feature-password-management)を使用します。これにより、サードパーティのアプリケーションでonepassword-app-extensionを使用して、これらのパスワードマネージャを使用することができます。互換性のあるパスワード拡張子の作成方法は?

この拡張機能と互換性のある独自のパスワードマネージャを実装したい場合、何をする必要がありますか?

答えて

2

パスワードマネージャを実装するには、次の

  1. は、あなたのプロジェクトに新しいターゲットを追加します。 [アクション拡張機能]を選択します。

  2. org-appextension-feature-password-managementを、アプリケーションでサポートされているURLスキーム(CFBundleURLSchemes)として追加します。

    ターゲットの[情報]タブでこれを行うことができます。このスキームは重要な部分です。 identifier doesn't seem to be used

    これは、-[OnePasswordExtension isAppExtensionAvailable]がtrueを返すために必要です。アプリの拡張機能の対象で

  3. 、次のように TRUEPREDICATEから NSExtensionActivationRuleを変更:

    SUBQUERY (
        extensionItems, 
        $extensionItem, 
        SUBQUERY (
        $extensionItem.attachments, 
        $attachment, 
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "org.appextension.find-login-action" 
    )[email protected] == [email protected] 
    )[email protected] == 1 
    

    この-[OnePasswordExtension findLoginForURLString:forViewController:sender:completion:]メソッドが呼び出された場合、あなたの拡張機能にのみ表示されますことを確認します。これらのUTIの2つ以上を一致させる場合は、Apple's more complex example hereを参照してください。

    注:このSUBQUERYは、Apple's SUBQUERY exampleと同じで、定数が変更されています。構文やその仕組みが不思議なら、see this answer

  4. あなたが戻ってホストアプリの拡張機能からのデータを送信する準備が整いました:

    let itemProvider = NSItemProvider(
        item: ["username": "foo", "password": "123"], 
        typeIdentifier:kUTTypePropertyList as String) // TODO: import MobileCoreServices 
    
    let extensionItem = NSExtensionItem() 
    extensionItem.attachments = [itemProvider] 
    
    extensionContext!.completeRequestReturningItems([extensionItem], completionHandler: nil) 
    

それはあなたができる、これらのスキームを登録しても大丈夫ですなぜあなたは迷っている場合read this article

私たちのブランドニュートラルスキームは、ユーザーとアプリ開発者の両方にとってより簡単なものにする必要があります。したがって、ブランドニュートラルスキームを使用する私たちの理由の一部は、に、このスキームをできるだけ多くのアプリデベロッパーに奨励することです。私たちは、アプリ開発者に1Passwordといくつかの競合他社を選択させることを強いられていません。代わりに、使用するパスワードマネージャの選択を委任しています。

+0

詳細をお知らせください。 19種類のアプリケーションエクステンションタイプがあります。どれがパスワードマネージャの作成に使用されますか? – user1478430

関連する問題