浏览代码

share app keychain with share extension

cyberta 3 年之前
父节点
当前提交
8c903d0553

+ 4 - 2
DcCore/DcCore/Helper/KeychainManager.swift

@@ -2,7 +2,7 @@ import Foundation
 import Security
 
 public class KeychainManager {
-
+    private static let sharedKeychainGroup = "8Y86453UA8.group.chat.delta.ios"
     enum KeychainError: Error {
         case noPassword
         case unexpectedPasswordData
@@ -35,7 +35,8 @@ public class KeychainManager {
         let keychainItemQuery = [
           kSecValueData: createRandomPassword().data(using: .utf8)!,
           kSecAttrAccount as String: "dc_db",
-          kSecClass: kSecClassGenericPassword
+          kSecClass: kSecClassGenericPassword,
+          kSecAttrAccessGroup as String: KeychainManager.sharedKeychainGroup as AnyObject
         ] as CFDictionary
 
         var ref: AnyObject?
@@ -55,6 +56,7 @@ public class KeychainManager {
         let query: [String: Any] = [kSecClass as String: kSecClassGenericPassword,
                                     kSecAttrAccount as String: "dc_db",
                                     kSecMatchLimit as String: kSecMatchLimitOne,
+                                    kSecAttrAccessGroup as String: KeychainManager.sharedKeychainGroup as AnyObject,
                                     kSecReturnAttributes as String: true,
                                     kSecReturnData as String: true]
         

+ 4 - 0
DcShare/DcShare.entitlements

@@ -6,5 +6,9 @@
 	<array>
 		<string>group.chat.delta.ios</string>
 	</array>
+	<key>keychain-access-groups</key>
+	<array>
+		<string>$(AppIdentifierPrefix)group.chat.delta.ios</string>
+	</array>
 </dict>
 </plist>

+ 4 - 0
deltachat-ios/deltachat-ios.entitlements

@@ -14,5 +14,9 @@
 	<array>
 		<string>group.chat.delta.ios</string>
 	</array>
+	<key>keychain-access-groups</key>
+	<array>
+		<string>$(AppIdentifierPrefix)group.chat.delta.ios</string>
+	</array>
 </dict>
 </plist>