首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅针对MFMailComposeViewController和iOS 10的隐私问题

仅针对MFMailComposeViewController和iOS 10的隐私问题
EN

Stack Overflow用户
提问于 2016-10-02 18:57:19
回答 3查看 3.9K关注 0票数 5

用Xcode 8.0重建一个已经发布的应用程序,它使用PLCrashReporter、AWS认知/社交网络和谷歌分析框架。

考虑到仅在iOS 10.x设备上,在运行我的测试桶时不再显示邮件组合vc。在Xcode控制台中,当到达if(MFMailComposeViewController.canSendMail)时,我立即看到这些消息:

代码语言:javascript
复制
[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设置按照预期工作。

有人看到这个了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-22 17:28:05

因此,经过大量的分析,我终于在上周末解决了这个问题。要知道它实际上与MFMailComposeViewController 10中的隐私更改无关,关键在于以下日志消息:

代码语言:javascript
复制
[MC] Result: YES

如果你得到“否”,那么你的隐私问题,但是表示隐私不是一个问题。无论如何,我最终发现,在我的例子中,问题是运行在iOS 10中的代码中出现了一个时间问题。

在正在测试的相同的设备模型上,一个使用iOS 10,另一个使用iOS 9.3.5,问题是在已经出现另一个警报时,会调用错误路径UIAlertController当前请求。在iOS 9.x和更早的时候,每一次预期的结果都是“幸运的”。但是在iOS 10上,它每次都没有这样做,这就在我的情况下阻止了MFMailComposeViewController。

以下代码是有问题的:

代码语言:javascript
复制
[self presentViewController:crashMailAlertController animated:YES completion:nil];

用这段代码代替它解决了这个问题:

代码语言:javascript
复制
[self dismissViewControllerAnimated:YES completion:^{
            [self presentViewController:crashMailAlertController animated:YES completion:nil];
        }];

在我的例子中,我想要的只是确保这个错误路径UIAlertController总是首先出现,因为它是一个罕见的事件(只有在发生了崩溃时),所以首先取消任何先前的警报都是启动它的门票,这样MFMailComposeViewController就会跟随它,因为它嵌入了警报按钮操作中。

票数 1
EN

Stack Overflow用户

发布于 2016-10-16 14:33:01

当我试图弹出共享活动对话框(使用UIActivityViewController)时,我收到了相同的日志消息。该代码在ios9中运行良好,但在ios10中失败了(而不是对话框,我得到了两个弹出窗口,只有“更多的.”)。在他们里面)。我在一个数组中传入一个图像,作为'activityItems: myImage‘。问题似乎是,这个参数需要一个非可选值数组,因此更改为'myImage!‘解决了问题。

不确定这是否是所描述的问题的解决方案,但也许类似的方法会奏效。

票数 0
EN

Stack Overflow用户

发布于 2017-03-27 08:00:34

它为我工作!!

代码语言:javascript
复制
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];
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39820512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档