首页 > 编程语言 >XCode 编译 PAG 源码

XCode 编译 PAG 源码

时间:2024-07-28 15:52:10浏览次数:10  
标签:node XCode 编译 源码 PAG PATH

最近工作中要使用PAG替换Lottie,为了方便阅读源码,使用XCode对其源码进行了编译。

1 下载源码

编译源码首先要下载源码,有关PAG源码可直接到github上下载。

2 添加相关依赖

下载源码之后,进入到PAG项目根目录,执行如下脚本:

./sync_deps.sh

3 构建 iOS PAGViewer 工程

PAG项目包含多种平台下的代码,包括iOSWindowsLinux等。我们只关注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的路径,不在XCodePATH环境变量下。

为了查看XCodePATH环境变量,可以按照下图进行设置,将XCodePATH环境变量输出到XCodeReport面板:

image

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

在脚本中添加echo命令,输出XCodePATH信息:

echo "当前 PATH: $PATH"

再次编译PAGViewer Target,仍然失败,但是XCodeReport面板已有输出信息:

image

将上面XCodePATH信息拷贝保存下来,然后在Mac终端运行which node命令,查看Macnode的安装目录:

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

可以验证,Mac上的node安装目录/opt/homebrew/bin不在XCodePATH环境变量中。

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

image

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

image

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

标签:node,XCode,编译,源码,PAG,PATH
From: https://www.cnblogs.com/chaoguo1234/p/18328308

相关文章

  • Java----CAS算法与AtomicInteger源码解读
    CAS介绍:为了确保对数据操作的原子性,在java.util.concurrent.atomic下定义许多关于各种基本类型数据的提供原子操作的类。这里我们以AtomicInteger为例子。AtomicInteger的本质:自旋锁+CAS算法CAS的全称是:CompareAndSwap(比较再交换);是现代CPU广泛支持的一种对内存中的......
  • 微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)附项目源码与配套文档
    目的和意义微信小程序图书馆座位预约管理系统可以对微信小程序图书馆座位预约管理系统信息进行集中管理,可以真正避免传统管理的缺陷。微信小程序图书馆座位预约管理系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和......
  • SpringBoot+Vue电影院售票系统 - 附源码与配套文档
    1.1 研究背景随着互联网技术的迅速发展和普及,人们的生活方式发生了深刻变革,对于文化娱乐消费的需求日益增长,而作为文化消费重要组成部分的电影行业也迎来了前所未有的发展机遇。然而,传统的电影院售票模式,如现场购票、电话预定等,已难以满足现代消费者对便捷性、灵活性和个性......
  • 2024最新一元云购源码.完美运营版.机器人自动下单.可指定中奖.一元购源码.一元夺宝源
    2024年最新云购源码一元云购H5新版本新UI 完美运行版•带易支付接口机器人自动购买•可指定中奖云购演示站:yun.6323g.com/ 源码下载链接:https://pan.baidu.com/s/1UsSE3IX_um_eAEcMIBLpHA?pwd=akjd 提取码:akjd  免责声明:该资源仅供学习和研究使用,一切关于该资源......
  • 手把手搭建im即时通讯app源码(基于PHP即时通讯源码聊天系统协议)uniapp全开源框架
    即时通讯(InstantMessaging,IM)系统是现代互联网应用中不可或缺的一部分,它允许用户进行实时的文本、语音、视频交流。随着技术的发展,IM系统的功能越来越丰富,如红包、客服、禁言等。本文将深入探讨如何使用PHP语言结合WebSocket、UniApp等技术开发一个功能完备的即时通讯系......
  • Java计算机毕业设计旅游服务管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,旅游服务管理的复杂性与日俱增。传统的手工管理方式已难以满足现代旅游业的高效、精准服务需求。特别是在用户体验、旅游团管理......
  • Java计算机毕业设计驾校学员管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着汽车保有量的持续增长,驾驶技能已成为现代社会不可或缺的基本技能之一。驾校作为培养驾驶员的重要机构,其学员管理效率与服务质量直接影响到学员的......
  • Java计算机毕业设计美食商城(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展和人们生活水平的日益提高,美食不再仅仅是满足口腹之欲的简单需求,它已经成为了一种文化、一种生活方式,甚至是一种社交媒介。在这......
  • Java计算机毕业设计结合疫情情况的婚恋系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景近年来,全球疫情的持续影响不仅改变了人们的生活方式,也深刻影响了人们的社交与情感需求。在隔离与社交距离成为常态的背景下,传统线下相亲、约会活动受......
  • (免费领源码)java#ssm#mysql航空机票管理系统27545-计算机毕业设计项目选题推荐
    摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的航空机票管理系统,机票系统的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本航空机票管理系统是针对目前航空机票管理系统的实际需求,从实际工作出发,对......