ios - 存储共享 Safari 凭据时出现 SecAddSharedWebCredential 静默错误 - 应用审核失败
问题描述
由于登录屏幕挂起,我的应用程序未通过审核。当用户登录时,应用程序收到成功的响应后,它会尝试存储或更新用户共享的 Web 凭据。
该应用程序已被苹果审查并拒绝,他们说该应用程序在屏幕上加载微调器时挂起,由于处理超时、成功、不成功或无法识别的 http 响应代码,我无法重现并且不应该出现这种状态。
@IBAction func pressedLogin(_ sender: UIButton) {
OurCustomSpinner.sharedInstance.showSpinner()
let loginOperation = LoginOperation(email: emailTextField.text!, password: passwordTextField.text!)
loginOperation.success = { userItem in
DispatchQueue.main.sync {
// Try to store credentials, we don't care if it succeeds or fails, user should still go to next screen
SecAddSharedWebCredential("midrive.com" as CFString, self.emailTextField.text! as CFString, self.passwordTextField.text! as CFString, { (error) in
// Store user object (would crash if it failed)
DispatchQueue.main.sync {
// Spinner hidden here - line never reached
OurCustomSpinner.sharedInstance.hideSpinner()
// Take user to next screen
}
})
}
}
loginOperation.failure = { error in
DispatchQueue.main.sync {
// Spinner hidden here - line never reached
OurCustomSpinner.sharedInstance.hideSpinner()
self.presentError(message: error.localizedDescription)
}
}
NetworkQueue.shared.addOperation(op: loginOperation)
}
由于应用程序永远不会到达隐藏微调器的地方,我只能认为 Web 请求成功(因此没有超时错误),并且SecAddSharedWebCredential
以某种方式静默失败,可能是由于用于应用程序审查的设备上的安全配置。
以前有没有人遇到过这种情况,或者是否有人知道是否存在阻止共享 Web 凭据的安全选项?它在本地工作并正确预填充/更新密码,并适用于我们的 testflight 用户。
只是为了更新这个,我重新提交了这个没有这SecAddSharedWebCredential
条线,它第一次通过了审查。
解决方案
推荐阅读
- c - 用于对齐 ENUM 和字符串的条件 X-MACRO
- notepad++ - Notepad++ 中的高级替换字符串
- python - 机器人框架套件设置和套接字
- postgresql - Postgres 副本不同步
- c++ - 有人可以解释一下 for(;Q.size();) 的作用吗?
- django - 在 Django(Navbar.html、general.css 等)中将全局 html/css 文件放在哪里,以便所有应用程序都可以引用它?
- python - 使用 python 请求的 Yelp API 调用
- python - Python - 即使在正确的目录中也无法导入
- python - 在 Python 中从 XML 文件中提取注释
- java - 如何将数据从 android java 发送到 azure 事件中心