在测试设备未通过基于 SMS 的用户身份验证后,iOS 应用程序被 Apple 拒绝 [关闭]

Posted

技术标签:

【中文标题】在测试设备未通过基于 SMS 的用户身份验证后,iOS 应用程序被 Apple 拒绝 [关闭]【英文标题】:iOS app rejected by Apple after test device fails SMS based user authentication [closed] 【发布时间】:2021-06-03 08:42:41 【问题描述】:

我有一个仅适用于 iPhone 设备的 ios 应用。

Target Device Families 构建设置设置为 iPhone

UIRequiredDeviceCapabilities 构建设置包括telephony,这是 iPad 不具备的功能。

Apple 拒绝该应用程序,因为在多重身份验证期间,他们的 iPad 无法发送/接收 SMS 文本消息。

Apple 文档指出

在运行时,除非设备上存在声明的功能,否则 iOS 无法启动您的应用程序。此外,App Store 需要此信息,以便它可以生成用户设备的要求列表并防止用户下载他们无法运行的应用程序。

我对此的解释是 iPad 无法启动我的应用程序,因为设备上没有电话功能。

我的问题

    telephony 真的是一种使 iPad 无法使用的功能吗? 除了为审核流程开发完整的应用演示版之外,还有什么策略可以让应用可能具有的任何基于 SMS 的功能获得批准?

我知道最后一个问题有点基于意见,但我认为它的答案可以帮助其他人在开发基于 SMS 的功能时避开这个问题。

也许唯一可行的解​​决方案是为他们制作一个演示版。

【问题讨论】:

【参考方案1】:

我检查了 WhatsApp(它也需要 SMS 身份验证),但它在 iPad App Store 上不可用。 在其Info.plist 中,它具有以下与 iPhone 相关的键:

   <key>CFBundleSupportedPlatforms</key>
   <array>
      <string>iPhoneOS</string>
   </array>
   <key>UIRequiredDeviceCapabilities</key>
   <dict>
      <key>telephony</key>
      <true/>
   </dict>
   <key>DTPlatformName</key>
   <string>iphoneos</string>
   <key>LSRequiresIPhoneOS</key>
   <true/>
   <key>UIDeviceFamily</key>
   <array>
      <integer>1</integer>
   </array>

您可以尝试添加它们并再次检查审核过程。

【讨论】:

很好的调查,谢谢!我会尽快尝试,看起来很有希望。当我收到 Apple 的回复(希望是好消息)时,将标记为已接受。再次感谢。

以上是关于在测试设备未通过基于 SMS 的用户身份验证后,iOS 应用程序被 Apple 拒绝 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

可以在 keycloak 中使用基于 SMS 的 OTP 吗?

为啥在 nuxt-auth-next 中进行 google 授权后用户未通过身份验证?

REST API 中基于令牌的身份验证

IBM Worklight:基于适配器的身份验证成功后未获得响应

Laravel SMS 短信发送包

Twilio SM 两因素身份验证