Ios Swift登录用户,访问组不工作

Ios Swift登录用户,访问组不工作,ios,swift,firebase,firebase-authentication,Ios,Swift,Firebase,Firebase Authentication,在我的应用程序中,我想使用Auth.Auth().useUserAccessGroup登录用户 这是我使用电子邮件登录的代码(用户也可以使用Facebook、Google和Apple登录): 注册功能: static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){ do {

在我的应用程序中,我想使用
Auth.Auth().useUserAccessGroup
登录用户

这是我使用电子邮件登录的代码(用户也可以使用Facebook、Google和Apple登录):

注册功能:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}
钥匙链共享:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}

问题:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}
调用此函数时
如果let error=error
则失败:

@c NSError.userInfo字典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到的错误的详细信息“userInfo={FIRAuthErrorUserInfoNameKey=error\u KEYCHAIN\u error,NSLocalizedFailureReason=SecItemCopyMatching(-34018),NSLocalizedDescription=访问密钥链时出错。@c NSError.userInfo字典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到错误的详细信息}

因此,我第一次调用它时,
尝试Auth.Auth().useUserAccessGroup(“SN26HDFT24.com.wishlists app.group”)
实际上成功了,至少它没有抛出任何东西

但是当再次调用它时,
dotry块
失败。错误消息与上面相同

权利:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}

功能:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}

我被卡住了,在这上面找不到任何东西

这是我的共享扩展名:

static func signUpWithEmail(email: String, password: String, username: String, finished: @escaping (_ done: Bool) -> Void){
    
    do {
        try Auth.auth().useUserAccessGroup("SN26HDFT24.com.wishlists-app.group")
    } catch let error as NSError {
        print("Error changing user access group: %@", error)
    }
    Auth.auth().createUser(withEmail: email, password: password) { (result, error) in
        
        if let error = error {
            Utilities.showErrorPopUp(labelContent: "Fehler", description: error.localizedDescription)
            finished(false)
        }
        
        if let userId = result?.user.uid { 

             // successfully signed in

        } else {
            print("user couldn't sign in")
            finished(false)
        }
    }
}

我不知道这是怎么发生的,但是访问组的字符串在您的权限中是错误的

它应该是
$(AppIdentifierPrefix)com.wishlists app.group
,而不是
$(AppIdentifierPrefix)SN26HDFT24.com.wishlists app.group


您的扩展必须激活相同的应用程序组和密钥链组。我看不到您的应用程序扩展的任何内容。然后您还必须在扩展中调用
useUserAccessGroup(“SN26HDFT24.com.wishlists app.group”)

初始化firebase应用程序(
FirebaseApp.configure()
)。@cybergen也尝试过,你确定吗?我想我必须使用前面的团队id才能访问钥匙链。我非常确定。我查看了我们的(愿望列表;-))尽管如此,我们的共享扩展仍存在问题。当在主应用中注销并再次登录时,扩展将保持注销状态,直到调用共享扩展的应用(如Amazon或Safari)被终止并重新启动。$(AppIdentifierPrefix)应该是你的团队id。哦,是你哈哈:D好的,我会试试!为什么我在我的数据库中看不到你那边的任何登录?是我?我可能不是你特定应用的用户。