使用cocoapods 私有库管理linphone

问题背景

Linphone 是一个基于 Sip 协议开源的音视频通话开源软件,其 LinphoneCoreLinphone 的核心库,我们的项目中用到了 Linphonecore 以及基于其封装的 LinphoneManagerlinphone 原有的项目文件比较乱,而且其 linphoneManager 有很多自己的 APP 的业务逻辑,甚至还有部分页面的逻辑。涉及到Linphone 源码的修改,编译一次需要的时间也比较长,我们项目本身有 Cocoapods 私有库的支持,如果能将经过进一步封装后的代码通过其管理起来,使用者将非常方便。

Mac下pip安装MysqlClient

因为使用 Django 连接 mysql 需要 mysqlClient,安装过程可谓一波三折, 尝试使用 pip install mysqlclient, 提示未安装 mysql_config 报错如下:

献给这么努力的你

时光划线,岁月静好。今年的北京天气格外的好,虽然临近春节,又有些恼人的雾霾,但是仍然不影响生活的好心情。

[翻译]为Xcode target添加第三方动态库(.dylib)

最近在遇到一些动态库添加的问题,被折磨了好久,最后发现一篇很好的文章,不过是英文的,翻译一下留着备用。

原文地址

动态库(Unix类似系统中以 .dylib 结尾的文件)不同于静态库(.a结尾),静态库会在代码编译链接后打包进二进制可执行程序。而另一种库是在运行期才会加载,注意这里是加载没有链接的过程。加载意味着程序会在需要的查找该库。这也是为什么会有一些情况,当你很开心的双击打开一个程序却告诉你缺少xx库的原因。(翻译注:用Windows同学很容易碰到缺少 xx.dll, dll 文件类似这里的 dylib 库)。不同的是,静态库会把需要的部分编译进你的app,因此用户不会遇到这么多麻烦。

配置 TeamCity 自动化打包iOS(更新到Xcode9)

工具选择

目前流行的自动化集成有Jenkins和TeamCity。Jenkins功能很强大,更新也很快,而且免费。Teamcity在一定范围内不用收费,免费版的可以建10个 build,最多支持最多3个 build Agents。对小团队非常简单而且容易上手。Teamcity的功能非常强大,比较吸引我的是能够非常清晰的进行 Code Review 。

AES加密

AES(Advanced Encryption Standard)是一种对称加密算法,给定一个密钥可以将普通文本转换为密文。通过相同的密钥将密文还原为原始文本。AES 提供了三种密钥的长度 128,192和256, 在 iOS设备上支持硬件优化,速度是非常快的。

部署Asterisk到树莓派

Asterisk是一款基于SIP协议的开源PBX通信框架,下一代基于IP的电话拨号系统。在撰写本文的时候的最新版是 14.0,通过它我们可以在树莓派上搭建一个 SIP 服务器,实现 VoIP 功能。想对 SIP 协议有深入了解的话,可以参考这篇博文