drs*_*ock 5 objective-c plcrashreporter ios10 xcode8 mfmailcomposeviewcontroller
使用Xcode 8.0重建已发布的应用程序,该应用程序使用PLCrashReporter,AWS Cognito/SNS和Google分析框架.
仅在iOS 10.x设备上看到,在运行我的测试存储桶期间不再显示邮件撰写vc.在Xcode控制台中,当到达if([MFMailComposeViewController.canSendMail])时,我会立即看到这些消息:
[MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
[MC] Filtering mail sheet accounts for bundle ID: [MY BUNDLE ID], source account management: 1
[MC] Result: YES
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一种对这些控制台消息的引用:iOS 10上的UIActivityViewController崩溃
但我的应用程序不使用照片,我仍然尝试将链接中提到的照片隐私说明添加到我的info.plist中,但是当然没有快乐.问题依然存在.
我的应用程序确实使用相机,扫描条形码.相机隐私说明在info.plist中,自去年以来一直存在.该应用程序不使用其他需要隐私说明的功能.
连接iOS 9.3.5设备时,相同的准确代码和XC8设置按预期工作.
有人见过这个吗?
经过大量分析,我终于在上周末解决了这个问题。了解它实际上与 iOS 10 中的 MFMailComposeViewController 隐私更改无关的关键是以下日志消息:
[MC] Result: YES
Run Code Online (Sandbox Code Playgroud)
如果您得到“否”,则说明您存在隐私问题,但如果您得到“是”,则表明隐私不是问题。无论如何,我最终发现,就我而言,问题是在 iOS 10 中运行的代码中发现的计时问题。
在正在测试的同一设备型号上,一个使用 iOS 10,另一个使用 iOS 9.3.5,问题是当另一个警报已经出现时,调用 UIAlertController 当前请求的错误路径。在 iOS 9.x 及更早版本中,每次预期的内容都会胜出并首先出现,这只是“运气”。但在 iOS 10 上,它每次都未能这样做,然后这在我的情况下阻止了 MFMailComposeViewController 。
以下代码有问题:
[self presentViewController:crashMailAlertController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
将其替换为以下代码解决了该问题:
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:crashMailAlertController animated:YES completion:nil];
}];
Run Code Online (Sandbox Code Playgroud)
就我而言,我想要的只是确保此错误路径 UIAlertController 始终首先出现,因为这是一个罕见的事件(仅当发生崩溃时),因此首先忽略任何先前的警报是获取它的门票,以便 MFMailComposeViewController将会跟随,因为它嵌入到警报按钮操作中。
| 归档时间: |
|
| 查看次数: |
3808 次 |
| 最近记录: |