美文网首页程序员iOS Developer
创建Daemon应用踩过的坑

创建Daemon应用踩过的坑

作者: 秦砖 | 来源:发表于2017-08-21 00:00 被阅读327次

经过连续的奋战,终于把Demo走通了,期间踩了很多哭笑不过的坑,这里记录下,希望能帮助后面的同学。
Daemon应用是可以随机器一起启动且在后台长时间运行的服务程序。Demo的创建主要参考iosre论坛中狗神的翻译文章原文,这里表示十分感谢。

坑一:环境问题

本地的theos工程版本较老,创建时根本找不到tools模板。因为对重装theos环境可能导致的后续问题顾虑重重,花费了大量的时间来尝试在原有的环境上升级版本。事实证明,这条路径非常难走,本人最终放弃了。在不动原有/opt/theos目录,换个目录重新clone了theos代码,配置相关路径后,新版本的theos可用了,且暂时末发现什么问题,希望后面也不会出现较严重的环境问题吧。

坑二:提权

在狗神的文章中提到,生成的deb文件的权限归属为当前用户而不是Daemon应用要求的root用户,将导致应用运行失败。解决办法就是下载文中给出的fauxsu文件并放置到theos/bin目录下,且需要通过chmod/chown命令将新文件提升权限,最终达到的下图的效果:


fauxsu提权最终效果

然后通过make package命令生成的deb文件自然就会变成root:wheel状态,如下图。但在实际操作过程中,上图的状态很容易就做到了,但下图却没有按照预想出现。最终我在文章的回复中找到了答案,需要将mac机器中的System Integrity Protection功能关闭,这里同样要感谢下LiserYu同学。


deb文件权限最终效果

坑三:openURL

应用设计上希望可以用Daemon在后台打开一些指定的应用程序。自然而然地想到使用UIApplication中的openURL来实现功能了。因此将Daemon的main.m改成常规应用的代码形式,编译打包安装到手机,发现Daemon崩溃了。本人不是太确定Daemon是否可能有自己的UI界面,反正openURL这条路暂时走不通了。想了很多办法,都不能很简单的替代openURL。有心栽花花不开,无心插柳柳成荫,花费了好大一番功夫,无意中看到了一个帖子,使用system命令来打开指定的应用,完美的解决了openURL的问题。想必它也应该是openURL底层使用的方法。

结语

Daemon启动应用的功能实现了,接下来就是几个指定新闻应用的界面轮询效果的改进了,期待能在下周给出漂亮的总结。

相关文章

  • 创建Daemon应用踩过的坑

    经过连续的奋战,终于把Demo走通了,期间踩了很多哭笑不过的坑,这里记录下,希望能帮助后面的同学。Daemon应用...

  • 交互设计师所要避免的几个坑

    前言 工作中难免会踩到几个坑,即使现在不踩以后还会踩,只有踩过才会深刻记住,踩过说明爱过!但是踩过的坑必须把坑填满...

  • 钉钉ISV JSAPI开发总结

    近期开发了钉钉版微应用,将自己踩过的坑总结如下 : 坑1.dd.biz.navigation.setLeft iO...

  • vue踩过的坑

    vue踩过的坑

  • D1094:踩坑的价值最大化

    是人就会踩坑,不踩坑理论上就不属于人类,踩坑是人之常情,能回头站在坑边反思,才是对踩过的的坑价值最大化的体现,要不...

  • 创建私有仓库中踩过的坑

    1. [!] The `master` repo is not a git repo. 2.[!] podRo...

  • 记录创建RN项目踩过的坑

    首先,跟着官网的步骤安装react-native-cli 使用以下命令创建项目 react-native init...

  • MediaPlayer的初级应用

    MediaPlayer 其实MediaPlayer这个类的应用非常简单,但是踩过的坑,不写不行啊。 这里是记载的是...

  • 2019-08-14

    docker 搭建 gogs,drone , mysql 踩坑记录,防止以后再踩啊 docker 创建 桥接网络...

  • org.springframework.

    记录web开发踩过的坑 记录一个后端的小细节, springboot repository创建时, 定义的方法一定...

网友评论

    本文标题:创建Daemon应用踩过的坑

    本文链接:https://www.haomeiwen.com/subject/eauqdxtx.html