终于开始做攻防相关的操作了,我会一边攻一边防,这篇文章先介绍一个简单的代码混淆的防备操作。文章会从为何要加密、加密市场市场现状、加密思路、方法、工具、操作等方面进行阐述,也作为我个人的记录以便日后的回顾。
伴随着一年的 iOS 开发,最多的就是项目打包 ipa,然后上传到内测分发的平台如 fir.im 上去。时间长了,觉得这种毫无技术含量的人工操作太烦了,程序员就是要懂得偷懒,所以,我个人想出了一个好主意,通过摸索一步步证明我的想法是可行的,最后产出 Shell 脚本 DKIpaBuilder。
用 Xcode 做 iOS 开发的同学都知道,在项目根目录里有一个 project.xcodeproj 文件。如果多人协作,项目合并的时候这个文件非常容易有冲突。一旦这个文件冲突了项目就打不开了,然后就非常不情愿地用文本编辑器打开这个文件,人肉搜索 >>> <<< 或者 === 来进行人肉替换解决冲突问题。
这简直就是浪费青春,如果合并的是一个距离上次 commit 已经很了久的崭新的 commit,你估计会找同事“聊聊人生”... 怎么解决这个问题呢?
在前一篇《解决讨厌的.DS_Store文件(上)》
使用 macOS 的操作系统的人都知道,系统经常会自动在每个目录生成一个隐藏的 .DS_Store 文件。.DS_Store (Desktop Services Store) 是一种由苹果公司的 Mac OS X 操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini。删掉后会自动重新生成,如何优雅地解决它?
团队项目开发中,遵循一个合理、清晰的 Git 使用流程,是非常重要的。之前写了一篇文章《Git 分支管理》
我们 iOS 组的每个项目都是多条分支,每个开发者一条分支,三个人就是三条分支,我作为组长我是 Master 分支。其他部门的同事问到我,项目的分支应该是一条还是多条?有同事认为,一条 master 分支就够了,不需要那么多条分支。该篇文章就分支管理问题做一番自己的想法记录。
NSString 这个类,在 OC 中很常见,[NSString stringWithFormat:]
这个方法我们都很熟悉了。但是也有很常见的一个问题,那就是参数为空的时候会返回@"(null)"
。
举个例子
label.text = [NSString stringWithFormat:@"所在医院 : %@", self.doctor.hospital];
当 doctor.hospital 为 nil 时,显示“所在医院 : (null)”,理所当然 (null) 这样的字眼不应该出现在界面上被用户看见。
一般情况下,往数据库插入emoji字符,会报类似如下的错误:
Error 1366: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...' for column 'xxx'
Google说MySQL的utf8不是真正的UTF8,只能包含3个字节的unicode,4个字节就会报错。解决这个问题要使用utf8mb4
这个编码。