makefile自动化编译工具

make命令执行时,需要一个makefile文件,以告诉make命令需要怎么样的去编译和链接程序。

首先,我们用一个示例来说明makefile的书写规则,以便给大家一个感性认识。这个示例来源于gnu 的make使用手册,在这个示例中,我们的工程有8个c文件,和3个头文件,我们要写一个makefile来告 诉make命令如何编译和链接这几个文件。我们的规则是:

使用Sphinx制作简洁而又美观的文档

{% github it-boyer width = 30% %}

使用 sphinx 制作简洁而又美观的文档

安装

1
2
3
4
5
6
7
8
9
$ easy_install sphinx
Searching for sphinx
Reading http://pypi.python.org/simple/sphinx/
Reading http://sphinx.pocoo.org/
Best match: Sphinx 1.0.5
Downloading http://pypi.python.org/packages/[...]
Processing Sphinx-1.0.5-py2.5.egg
[...]
Finished processing dependencies for sphinx

创建工程

1
2
3
4
5
6
$ sphinx-quickstart 
Welcome to the Sphinx 1.0.5 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).
[...]

工作目录的列表

swift混编及Framework和静态库的支持

swift和OC混编

OC

oc调用swift framework/swift静态库

oc静态库调用swift/oc的framework

oc静态库调用swift/oc的静态库

swift

swift调用oc/swift静态库

swift framework调用oc/swift静态库

swift静态库调用oc/swift静态库

使用Fastlane持续集成开发

{% github it-boyer width = 30% %}

持续集成

在框架开发中,一个优秀的持续集成环境是至关重要的。CI 可以保证潜在的贡献者在有保障的情况下对代码进行修改,减小了框架的维护压力。大部分 CI 环境对于开源项目都是免费的,得益于此,我们可以利用这个星球上最优秀的 CI 来确保我们的代码正常工作。

cocoapods如何自动化管理项目依赖

通过介绍项目相关的属性配置,来了解cocoapods如何自动化管理项目依赖的。最后会通过自定义ruby脚本来演示。

cocoapods偶现问题

pod install安装依赖,主要是对build settings中的新增依赖配置等, 当cocopad 集成失败时,可以通过以下几步排查 ,也可以尝试清除项目中pod相关的信息,重新pod install,了解以下步骤都是很重要的。

将Playground作为项目的单元测试

Perfect项目中增加playground

新建Perfect.xcodeprojPerfectPlayground

  1. 新建一个Xcode工程Perfect
1
swift package generate-xcodeproj
  1. 设置include路径 在Xcode工程的build settings中设置SWIFT_INCLUDE_PATH 路径为 ${PROJECT_DIR}并设置recursive(递归)选项。
  2. 在同一工程目录下创建一个PerfectPlayground

新建Perfect.workspace

  1. 新建一个工作空间:Perfect.workspace,在工作空间中添加工程和操场:Perfect.xcodeprojPerfectPlayground
  2. 编译Perfect.xcodeproj,这样就激活了PerfectPlaygroundPerfectLib函数库功能。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import PerfectLib
let json = "{\"name\": \"tom\"}"
do {
    let name = try json.jsonDecode()
    print(name)
}catch{

}
let u = UUID()
print(u.string)

原文Perfect-Playground

新组件开发流程及打包证书配置

新组件开发/发布的流程

原理:在build程序包之前,会根据平台提供的程序包的组件依赖信息,来other linker flags进行删减更新,仅保留依赖包的配置,这样以来,就可以针对打包平台提供的APP依赖,来生成相应的产品APP。 添加新组件的步骤

使用screen在后台运行进程

screen

  1. 支持会话恢复 当我们开启screen后,只要screen进程没有终止,其内部运行的会话都可以恢复。网络连接中断临时,用户也可以进入开启的screen中,对中断的会话的进行控制(恢复或删除)。 通常的用法是在暂时离开的时候,让在screen中运行的会话保持正常运行并将Screen切换到后台。
  2. 支持多窗口 当使用screen时,可以开启多个窗口,让每个会话都独立运行到不同的窗口,并拥有各自的编号、名称等。用户可以通过这些编号及名称进入不同的窗口。
  3. 会话共享 Screen可以让一个或多个用户从不同终端登录一个会话,并共享会话。使用户登陆同一会话的用户看到同一会话内容。 同时它可以提供窗口访问权限的设置,对窗口进行密码保护。

screen参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-A            将所有的视窗都调整为目前终端机的大小
-d            将指定的screen作业离线
-h            指定视窗的缓冲区行数
-m             即使目前已在作业中的screen作业,仍强制建立新的screen作业
-r             恢复离线的screen作业
-R            先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业
-s            指定建立新视窗时,所要执行的shell
-S             指定screen作业的名称
-v            显示版本信息
-x            恢复之前离线的screen作业
-ls或-list    显示目前所有的screen作业
-wipe         检查目前所有的screen作业,并删除已经无法使用的screen作业

screen命令

  1. 自定义shell脚本启动一个进程
1
2
3
4
5
6
screen_name="ngrok" # 创建了一个名为 my_screen 的窗
screen -dmS $screen_name

cmd="ngrok tcp 22";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\n'
  1. 退出进程
1
screen -S session_name -X quit

其他