用Xcode 8.0重建一个已经发布的应用程序,它使用PLCrashReporter、AWS认知/社交网络和谷歌分析框架。
考虑到仅在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我在这里找到了对这类控制台消息的引用:UIActivityViewController在iOS 10上的崩溃
但我的应用程序不使用照片,但我还是尝试添加照片的隐私描述,在链接到我的info.plist的笑容,但当然没有joy。问题依然存在。
我的应用程序确实使用相机扫描条形码。相机的隐私描述是在info.plist上进行的,从去年起就一直如此。该应用程序没有使用其他需要隐私描述的功能。
当附加一个XC8 9.3.5设备时,完全相同的代码和iOS设置按照预期工作。
有人看到这个了吗?
发布于 2016-10-22 17:28:05
因此,经过大量的分析,我终于在上周末解决了这个问题。要知道它实际上与MFMailComposeViewController 10中的隐私更改无关,关键在于以下日志消息:
[MC] Result: YES如果你得到“否”,那么你的隐私问题,但是表示隐私不是一个问题。无论如何,我最终发现,在我的例子中,问题是运行在iOS 10中的代码中出现了一个时间问题。
在正在测试的相同的设备模型上,一个使用iOS 10,另一个使用iOS 9.3.5,问题是在已经出现另一个警报时,会调用错误路径UIAlertController当前请求。在iOS 9.x和更早的时候,每一次预期的结果都是“幸运的”。但是在iOS 10上,它每次都没有这样做,这就在我的情况下阻止了MFMailComposeViewController。
以下代码是有问题的:
[self presentViewController:crashMailAlertController animated:YES completion:nil];用这段代码代替它解决了这个问题:
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:crashMailAlertController animated:YES completion:nil];
}];在我的例子中,我想要的只是确保这个错误路径UIAlertController总是首先出现,因为它是一个罕见的事件(只有在发生了崩溃时),所以首先取消任何先前的警报都是启动它的门票,这样MFMailComposeViewController就会跟随它,因为它嵌入了警报按钮操作中。
发布于 2016-10-16 14:33:01
当我试图弹出共享活动对话框(使用UIActivityViewController)时,我收到了相同的日志消息。该代码在ios9中运行良好,但在ios10中失败了(而不是对话框,我得到了两个弹出窗口,只有“更多的.”)。在他们里面)。我在一个数组中传入一个图像,作为'activityItems: myImage‘。问题似乎是,这个参数需要一个非可选值数组,因此更改为'myImage!‘解决了问题。
不确定这是否是所描述的问题的解决方案,但也许类似的方法会奏效。
发布于 2017-03-27 08:00:34
它为我工作!!
if([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailCont = [[MFMailComposeViewController alloc] init];
mailCont.mailComposeDelegate = self; // Required to invoke mailComposeController when send
[mailCont setSubject:@"Mail Subject"];
[mailCont setToRecipients:[NSArray arrayWithObject:@"demo@gmail.com"]];
[mailCont setMessageBody:@"" isHTML:NO];
[self presentViewController:mailCont animated:YES completion:nil];
}https://stackoverflow.com/questions/39820512
复制相似问题