最近工作中要使用
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
编译到自己手机上:

image

当设置完
Team
之后会报错,可以删除
Bundle Identifier
,然后点击
Signing Certification
下面的
Try Again
按钮。

5 编译


XCode
中选择
PAGViewer``Target
以及要
iPhone
手机,点击进行编译:

image

6 脚本设置

能一帆风顺的源码编译经常是可遇而不可求,
PAG
源码编译也一样。

编译过程中,会收到如下报错:

image

看报错信息,是在编译
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
面板:

image

上图中
CMake PostBuild Rules
会执行一个脚本,正是这个脚本在编译中报错。

在脚本中添加
echo
命令,输出
XCode

PATH
信息:

echo "当前 PATH: $PATH"

再次编译
PAGViewer
Target
,仍然失败,但是
XCode

Report
面板已有输出信息:

image

将上面
XCode

PATH
信息拷贝保存下来,然后在
Mac
终端运行
which node
命令,查看
Mac

node
的安装目录:

localhost:~$ which node
/opt/homebrew/bin/node

可以验证,
Mac
上的
node
安装目录
/opt/homebrew/bin
不在
XCode

PATH
环境变量中。

为了解决这个问题,我们需要将这个目录添加到
XCode
的环境变量中,方式就是在刚才的脚本里,添加一条
export
语句:

image

完成之后,会发现编译
tgfx-vendor
也会出现同样的脚本问题,也是按照上述方式解决:

image

最后,再次编译,就会发现
PAG
源码被你成功编译了!!

标签: none

添加新评论