苹果有一个禁止获取用户电话号码的功能,因为这可能是侵入性的等等。
这是据我所知的代码
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
我想知道......在这样做之前,应用程序应该在 UIAlertView 中显示用户对此类操作的批准,这是一个有效的解决方案吗?
在此先感谢各位!
苹果有一个禁止获取用户电话号码的功能,因为这可能是侵入性的等等。
这是据我所知的代码
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
我想知道......在这样做之前,应用程序应该在 UIAlertView 中显示用户对此类操作的批准,这是一个有效的解决方案吗?
在此先感谢各位!
未记录功能的问题是它们不能被依赖。任何版本更新都可能破坏它们。也就是说,更大的问题是苹果是否会批准使用这种调用的应用程序。如果不是(共识似乎是他们不赞成使用 SBFormattedPhoneNumber),那么在这样做之前简单地询问用户可能不会在批准过程中为您购买任何积分。我的建议是避免这种情况,如果需要,只需向用户询问他们的电话号码。
如果您的应用完全使用任何禁止的 API,您的应用将被审核团队拒绝。警报视图或无警报视图。
SBFormattedPhoneNumber
版本后不再存在ios4
。基本上没有办法做到这一点。尝试通过某种未记录的方式访问该号码可能会使您的应用程序被拒绝。
这是 Apple 对此功能的回应
“出于安全原因,iPhone OS 将应用程序(包括其首选项和数据)限制在文件系统中的唯一位置。此限制是称为应用程序“沙箱”的安全功能的一部分。沙箱是一组精细的-粒度控制限制应用程序对文件、首选项、网络资源、硬件等的访问。”
设备的电话号码在您的应用程序容器中不可用。您需要修改您的应用程序,使其仅在您的目录容器中读取,然后将您的二进制文件重新提交到 iTunes Connect,以便重新考虑您的应用程序是否可以在 App Store 中使用。