Tag: Dnd

请勿打扰-警报无法响起的故事

游戏早期警报 是 我们团队 的第一个iOS应用。 我们那小小的沉睡者乐队确信此闹钟应用可以唤醒世界上任何人。 我们添加了一些经典游戏,随着闹铃响起,您可以玩游戏来停止它。 好玩吧 好吧,出了点问题。 事实证明,iOS上的第三方应用程序具有一定的局限性,并且我们的闹钟不会响。 这些是我们遇到的一些限制 – 通知不能覆盖铃声开关,也不能覆盖“请勿打扰”模式 。 – 来自应用程序的本地通知 (即使离线也可以发送的唯一通知类型) 将永远不会在电话“睡眠”时隐式“唤醒”应用程序。这限制了应用程序开发人员在手机中设置另一个通知的可能性。贪睡事件。 – 第三方应用程序的通知声音的最长持续时间为30秒。 这意味着一旦30秒结束,就不会再有声音了。 现在,开发人员需要计划无限数量的通知,以确保用户将醒来。 另外,如果您尝试添加超过30秒的声音,则声音不会消失。 – 第三方应用程序无法将音量设置为高于或低于设备的设置音量 ,也无法抑制其他应用程序的声音。 因此,如果您一直打开声音,则可能在闹钟响起之前被Facebook或Twitter通知唤醒。 – 所有用于通知的警报声音 (必须捆绑在应用程序内) 必须来自应用程序 ; 应用无法访问音乐应用或Spotify中存储的声音(无法唤醒音乐)。 基本上,如果您将手机设置为静音或处于“请勿打扰”模式,则只有本机iOS闹钟会在早上响起。 最终,我们找到了使“早期”工作的方法- 如果您让该应用程序运行并仅锁定手机或让其自行锁定,它将能够在早上真正唤醒您。 我们需要一种方法来通知我们的用户有关这一重要信息的信息,并且为此我们创建了一个小屏幕。 该屏幕在2.5年来经历了一次真正的演变,我们的应用程序一直存在于App Store中,并且我们从所有更改中学到了很多东西。 我们有尴尬的时刻和启蒙的时刻。 早期的Game Alarm开发人员Jelena Krmar撰写了这个故事以及其他一些故事,您可以在 我们的博客 上阅读所有这些故事。 并且,如果您中有更多人遇到了类似的问题,这些问题都限制了iOS上第三方应用程序的使用,请随时与我们联系并分享您的经验。

因此,Dice现在位于GitHub中(3/3)

我注意到它仍然是2017年,并且我仍在努力使GitHub发挥作用。 我从一篇有关Dice类的文章开始,然后是一篇关于如何测试Dice并添加解析器的文章。 这是第三篇也是最后一篇文章,将所有Dice内容都放入GitHub。 确定许可证 我研究了适用于Dice的软件许可,或更广泛的说是RolePlayingCore,并选择了MIT许可 ,因为它提供了很多开放性和灵活性,同时又避免了疯狂的打击。 在担任开发人员的那段时间里,我已经处理了好几个开放和封闭源代码许可库。 我还与我工作过的每家公司的法律部门和法律顾问打交道,而且我也看到了自己的诉讼和违约情况。 我了解到有些许可证和条款值得使用,有些则不行。 一般来说,如果许可证的长度超过一页,那么很可能会在以后发生坏事。 而且他们经常会。 在这种情况下,值得使用此许可证,因此我为RolePlayingCore选择了该许可证。 持续集成CI脚本 一旦有了代码并提交了初始README.md ,我便转到了多个分支并进行了持续集成。 好了,现在,仍然有两个分支,即master和development 。 至于持续集成,我选择Travis CI是因为它支持iOS,并且它是选择列表的顶部。 不幸的是,我挣扎了一下。 有时候我可以成为一个真正的白痴。 开启它之后,我进入了其中一种匆匆忙忙的模式,“它应该工作”,然后……只是……没有,一遍又一遍。 我的.travis.yml文件在第一个实际上没有构建任何内容的提交到实际成功构建的提交之间有12个提交失败的编辑。 有时我会陷入这种模式,在这种模式下我会无意识地跳动一个问题,直到最终让步。 经过的时间是三天,主要是因为我有一份日常工作。 实际上只浪费了我一两个小时。 在这种情况下,我不知道“成功”是什么样子,我一直在猜测,有时甚至是疯狂,直到我最终决定检查其他GitHub iOS存储库以寻求帮助。 我的困难实际上并没有那么糟糕,主要是:(1)正确设置Xcode版本,(2)正确选择方案名称,(3)正确设置模拟器名称。 我只是把它们弄对了而愚蠢。 实际开始工作时的情况如下: 语言:Objective-C osx_image:xcode8.3 脚本: -设置-o pipefail -travis_retry xcodebuild -workspace RolePlayingCore.xcworkspace -scheme“ RolePlayingCore”-目标“ platform = iOS Simulator,name = iPhone 7”测试构建 xcpretty 这是一个开始。 但尚未完成。 完成将包括设备测试等等。 我可能会考虑做的一件事是设置本地Travis,这样我就可以在推出更改之前对更改进行限定。 我尚不知道如何做的一件事是确保代码覆盖率保持在100%,如果低于或低于某个阈值,则失败。 […]