XCode 编译 PAG 源码
最近工作中要使用
PAG
替换
Lottie
,为了方便阅读源码,使用
XCode
对其源码进行了编译。
1 下载源码
编译源码首先要下载源码,有关
PAG
源码可直接到
github
上下载。
2 添加相关依赖
下载源码之后,进入到
PAG
项目根目录,执行如下脚本:
./sync_deps.sh
3 构建 iOS PAGViewer 工程
PAG
项目包含多种平台下的代码,包括
iOS
,
Windows
,
Linux
等。我们只关注
iOS
。
从根目录进入到
iOS
目录,双击
gen_ios
文件。执行完毕后,目录下会多出一个
PAGViewer.xcworkspace
。
4 设置 XCode 签名证书
点击
PAGViewer.xcworkspace
,进入到
PAG
项目工程,做下图配置,这样可以将
PAGViewer
编译到自己手机上:
当设置完
Team
之后会报错,可以删除
Bundle Identifier
,然后点击
Signing Certification
下面的
Try Again
按钮。
5 编译
在
XCode
中选择
PAGViewer``Target
以及要
iPhone
手机,点击进行编译:
6 脚本设置
能一帆风顺的源码编译经常是可遇而不可求,
PAG
源码编译也一样。
编译过程中,会收到如下报错:
看报错信息,是在编译
tgfx
项目,运行脚本时,脚本命令出错,出错的命令是
node
命令。
首先查看
Mac
上是否安装了
node
。
在
Mac
终端运行
node -v
,如果输出如下版本信息,说明已经安装:
v22.5.1
既然安装了
node
,那
XCode
为啥还报错找不到呢?
原因是
XCode
运行脚本时的
PATH
环境变量与终端中的
PATH
环境变量不同。
XCode
的进程环境变量是由
macOS
系统在启动时设定的,而不是由用户的
Shell
配置文件(如
~/.bash_profile
)直接设定的。
也就是说,我们安装的
node
的路径,不在
XCode
的
PATH
环境变量下。
为了查看
XCode
的
PATH
环境变量,可以按照下图进行设置,将
XCode
的
PATH
环境变量输出到
XCode
的
Report
面板:
上图中
CMake PostBuild Rules
会执行一个脚本,正是这个脚本在编译中报错。
在脚本中添加
echo
命令,输出
XCode
的
PATH
信息:
echo "当前 PATH: $PATH"
再次编译
PAGViewer
Target
,仍然失败,但是
XCode
的
Report
面板已有输出信息:
将上面
XCode
的
PATH
信息拷贝保存下来,然后在
Mac
终端运行
which node
命令,查看
Mac
上
node
的安装目录:
localhost:~$ which node
/opt/homebrew/bin/node
可以验证,
Mac
上的
node
安装目录
/opt/homebrew/bin
不在
XCode
的
PATH
环境变量中。
为了解决这个问题,我们需要将这个目录添加到
XCode
的环境变量中,方式就是在刚才的脚本里,添加一条
export
语句:
完成之后,会发现编译
tgfx-vendor
也会出现同样的脚本问题,也是按照上述方式解决:
最后,再次编译,就会发现
PAG
源码被你成功编译了!!