我的应用被拒绝了,因为它在iPad上崩溃。老实说,它应该会崩溃,因为它没有我的应用程序使用的SIM卡(用于发送消息)。我已经制作了设备: iphone,并在我的构建中部署目标iphone。然而,出于某种原因,苹果的人仍然试图在iPad上运行它。我怎么才能让我的应用程序只适用于iPhone?没有理由捕获异常并尝试在iPad或iPod touch上运行它,因为大多数应用程序功能都包含发送短信。我该怎么做?以及如何确保应用程序只在iPhone上运行,而不是在iPad或iPod touch上运行
发布于 2012-12-03 14:31:12
我认为一种选择是在应用程序info.plist中提供UIRequiredDeviceCapabilities标志。你可以给Telephony或sms,这样它就可以过滤掉没有SIM卡的设备。
来自iphone app programming guide。
UIRequiredDeviceCapabilities -应用商店使用此密钥来确定应用程序的功能,并防止将其安装到不支持应用程序所需功能的设备上
如果你阅读上面pdf (第93页)中的应用程序相关资源部分,那应该会更好。
从上面的文档中,
如果您的应用程序需要特定设备功能的存在或不存在才能运行,则必须在应用程序的Info.plist文件中使用UIRequiredDeviceCapabilities键声明这些要求。在运行时,除非设备上存在声明的功能,否则iOS无法启动您的应用程序。此外,App Store需要此信息,以便它可以生成用户设备的要求列表,并防止用户下载他们无法运行的应用程序
它说,iOS在启动之前会检查所需的设备功能。所以我认为你不会有任何问题。关于模拟器,我不确定上面是否适用于他们,因为我们甚至可以在模拟器中模拟来电(你知道模拟器没有SIM卡)。所以我不确定模拟器在这种情况下对你有多大帮助。
还有一件事,如果这款应用在非sim设备上运行时崩溃,苹果只会拒绝它。苹果总是批准一个应用程序,在使用它之前优雅地检查设备功能是否存在。在使用短信功能之前,您可以检查设备是否可以发送短信。
if([MFMessageComposeViewController canSendText]){
  // send sms
}如果它不能发送短信,就会显示一个提示框。只有两行代码,但不那么头疼和紧张。
https://stackoverflow.com/questions/13678181
复制相似问题