在iOS中阅读短信

时间:2013-04-24 09:04:57

标签: ios swift sms appstore-approval ios12

我是iOS开发人员,我尝试构建具有自动激活功能的移动应用程序,我找到的不仅仅是阅读短信的方式,而是仅使用私有API,这将导致Apple拒绝我的应用。我有两个问题和欣赏任何反馈可以帮助我。

1-有没有办法在iOS平台上阅读短信而不面对Apple拒绝? 2-任何人都可以向我提供Apple开发者文档中的相关部分,该部分描述了不允许在iOS平台上阅读SMS消息吗?

5 个答案:

答案 0 :(得分:18)

  1. 不,没有办法阅读短信。由于隐私问题,Apple对此非常严格。
  2. 登录开发者门户网站,然后点击App Store Review Guidelines
  3. 指南中没有指明您无法访问SMS。但是,如果您使用不允许的私有方法,那么您只能访问它,并且会让您拒绝app。

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

答案 1 :(得分:7)

更新

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

  

oneTimeCode

     

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

您可以从单因素短信登录流程中自动填写安全代码:

yourSingleFactorCodeTextField.textContentType = .oneTimeCode
  

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

     

警告

     

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

Security Code Autofill

答案 2 :(得分:5)

iOS 12 中,Apple将在UITextFieldUITextView以及采用UITextInput protocol的任何自定义视图上支持密码自动填充。系统键盘上的textContentType设置为 .oneTimeCode

  • 使用情节提要/ XIB
  

UITextField中选择UITextView / storyboard/XIB,然后单击“单击属性”。   检查员。转到文本输入特征,单击“内容类型”并选择   一次完成代码。

仅适用于系统键盘。因此,请避免使用自定义键盘。


有关更多信息,您还将查看WWDC 2018 Session 204 - Automatic Strong Passwords and Security Code AutoFill并跳至 24:28 来自动预填充OTP。

iPhoneX image

答案 3 :(得分:2)

支持-自iOS 12以来

流程,在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

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

要使用密码,请点击它。

enter image description here

答案 4 :(得分:0)

对于Swift 5:

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

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

       }

或者您可以从情节提要中添加以下 contentType

enter image description here