遇到的 XC 8 中的两个小坑

产品设计 2017-04-01

今天可能时运不济,一次碰到了两个小坑,趁着现在 pod repo update 的时候记一下。

Background Fetch

今天在一开始在写和 Background Fetch 相关的代码。把 performFetchWithCompletionHandler 写好,然后其他的配置做好之后,连上手机准备测试。因为一般 Background Fetch 发生都需要时间,而且这个调用的时间间隔是系统定的,即使设定了 setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum) 可能也要蛮久一段时间系统才会调用。所以一般都会点 Xcode -> Debug -> Simulate Background Fetch 让 Background Fetch 能立即执行来方便调试。

所以我当然也是要点的。

结果我期待的结果并没有和以前一样发生,程序居然奔溃退出了,就像这样。

我开始以为是自己代码有问题,于是调试了一会儿,最后发现即使我在方法里什么都不做调用的时候还是会奔溃。有点懵。然后我在模拟器上试了一发,结果发现并没有任何问题!调用是成功的!

Google 了一发,在 Apple Developer Forums 里看到了一篇贴 ( https://forums.developer.apple.com/thread/51361 ),也有人在 Xcode 8 上遇到了一样的情况:

然而最后是怎么解决的呢?当然不是等20分钟让他自然发生调用。你会发现在真机上点击后的奔溃是 Xcode 自己断开的,然后你再轻轻的点一下继续执行按钮,它就把我的 Background Fetch 执行好了。

Fun.

UNNotificationSound

还有就是关于 UNNotificationSound 的问题。

我在尝试用 iOS 10 新的 UserNotification 来创建通知,一个本地通知,其他的一切都没有问题,然而自定义的提醒通知的声音就是无法播放。并且以前创建通知写法的代码是没有问题可以播放的。

从苹果的文档 ( https://developer.apple.com/reference/usernotifications/unnotificationsound ) 看到 UNNotificationSound 支持由 Linear PCM / MA4 (IMA/ADPCM)/ µLaw / aLaw 封装成的 aiff, wav, caf 几种格式的文件。我也转换了几种格式都试了下想确定是不是格式的问题,而无论怎么测试,系统始终播放的是默认的三连音:哒哒哒。

然后我又遇到了一样处境的人(这次的人比较多),还是在 Apple Developer Forums 里的帖子( https://forums.developer.apple.com/thread/49512 )。

有人好像找到了暂时解决的方法:重启 iOS 设备,卸载 App ,然后重新安装,自定义的铃声就可以生效了。但是有人说这种方法在你使用 Xcode 再装 App 的时候又会失效了。

但是无论如何,我的自定义铃声一直没有播出来。

Magic.

责编内容by:Roc Zhang's Blog (源链)。感谢您的支持!

您可能感兴趣的

iOSOpenDev修改版MonkeyDev 首先 iOSOpenDev 是啥? 他是个直接通过 Xcode 新建 Hook 的工程模板,然后编译生成安装deb。 网站: http://ww...
Xcode10和iOS12适配(持续更新) 昨晚熬夜看完了 WWDC 2018 ,睡前电脑挂着下载 Xcode10 。手机装好了 iOS12 ,体验了一番,感觉比iOS11快多了,看了一眼各家Ap...
Xcode修改版权Copyright、统一配置类前缀 修改类的Copyright、类前缀 对于已经在项目中的文件,想要修改版权信息,使用全局替换就可以了,而对于新文件来说,想让Xcode帮你自动填充版权...
iOS静态代码扫描之工具调研 为了进一步加强测试质量,同时探索测试左移在同步中的实践,iOS同步助手尝试接入静态代码扫描工具。希望通过不同的途径提前发现日常测试中难发现的问题。 然而iO...
Xcode continues to extend all groups in the projec... Since a couple days ago Xcode keeps expanding all the groups and subgroups in...