28

我是一名 iOS 开发人员,我试图构建一个具有自动激活功能的移动应用程序,我发现不仅仅是阅读 SMS 消息的方法,但只使用私有 API,这会导致 Apple 拒绝我的应用程序。我有两个问题,很感激任何反馈都可以帮助我。

  1. 有什么方法可以在 iOS 平台上阅读 SMS 消息而不会遇到 Apple 拒绝?
  2. 任何人都可以向我提供 Apple 开发人员文档中的相关部分,描述它不允许在 iOS 平台上阅读 SMS 消息的部分吗?
4

5 回答 5

26
  1. 不,没有办法阅读 SMS 消息。由于隐私问题,Apple 对此非常严格。
  2. 登录开发者门户并点击App Store Review Guidelines

指南中没有任何地方指定您不能访问 SMS。但是只有使用不允许的私有方法才能访问,这会导致您的应用程序被拒绝。

您只能访问 Apple 为其提供文档化 API 的数据。除非 Apple 为其提供 API,否则您无法访问应用程序沙盒之外的文件。

于 2013-04-24T09:07:09.180 回答
18

更新

从 iOS 12 开始,Apple 支持读取文本字段中的安全代码(OTP - 一次性密码)。

一次代码

指定单因素 SMS 登录代码的期望值。

您可以从单因素 SMS 登录流程中自动完成安全代码:

yourSingleFactorCodeTextField.textContentType = .oneTimeCode

iOS 支持 UITextField、UITextView 和任何采用 UITextInput 协议的自定义视图上的密码自动填充。

警告

如果您对安全代码输入文本字段使用自定义输入视图,iOS 将无法显示必要的自动填充 UI。

安全码自动填充

于 2018-06-13T05:52:31.183 回答
7

iOS 12开始, Apple 将支持密码自动填充UITextFieldUITextView以及任何采用UITextInput protocol. 系统键盘将textContentType其设置为.oneTimeCode

  • 使用故事板/XIB

选择UITextField/单击单击属性检查器UITextViewstoryboard/XIB转到文本输入特征,单击内容类型并选择一个时间码并完成。

它仅适用于系统键盘。所以避免使用自定义键盘。


如需更多信息,您还将查看WWDC 2018 Session 204 - Automatic Strong Passwords and Security Code AutoFill并跳转到24:28以自动预填充 OTP。

iPhoneX 图像

于 2018-09-24T03:21:12.760 回答
5

支持 - 自 iOS 12 起

Flow,在 iPhone 上自动填写短信密码 - https://support.apple.com/en-in/guide/iphone/iphc89a3a3af/13.0/ios/13.0

实施指南 - https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_a_text_input_view

当您登录某些应用程序和网站时,一次性 SMS 密码会发送到您的 iPhone。作为一项安全措施,您需要在应用程序或网站中输入代码。iPhone 可以检测信息中的密码并将其显示在键盘上方。

要使用密码,请点按它。

在此处输入图像描述

于 2020-05-05T06:50:13.467 回答
2

对于斯威夫特 5:

iOS 12开始,Apple 支持读取文本字段中的安全代码(OTP - 一次性密码)。

if #available(iOS 12.0, *) {
               otpField.keyboardType = .default
               otpField.textContentType = .oneTimeCode
       } else {
               // Fallback on earlier versions

       }

或者您可以从情节提要中添加此contentType ,如下所示:

在此处输入图像描述

于 2019-07-22T09:53:22.983 回答