Unity游戏打包——iOS打包pod的重装和使用

本文由 NRatel 历史笔记整理而来,如有错误欢迎指正。

一、重装 pod 和使用

1、下载安装 rvm
curl -L get.rvm.io | bash -s stable

2、使环境变量生效 (zsh)
source ~/.zshrc
source ~/.profile

3、查看rvm版本
rvm -v

4、重装ruby
关闭mac sip(可能需要)
sudo rvm remove 3.0.0 (注意sudo)
sudo rvm install 3.0.0 (注意sudo)

rvm list

rvm use 3.0.0 --default (当存在多格ruby版本时)

ruby -v (确认输出结果为3.0.0)

报错,重装openssl,解决:

m1 rvm install 3.0.0 Error running ‘__rvm_make -j8‘-CSDN博客


brew uninstall --ignore-dependencies openssl@3
rm -rf /usr/local/etc/openssl@1.1
brew reinstall openssl@1.1


5、安装 cocoapods

sudo gem install -n /usr/local/bin cocoapods

pod --version

6、Pod 使用基础:

⑴、在 xcode 的根目录下,使用 pod init 可创建一个默认的 podfile。

⑵、编辑 Podfile,它定义了:
目标平台:platform :ios, '10.0'

是否使用框架:use_frameworks!

目标依赖的库:target ‘xxx’ do xxx end

多个目标共享相同的依赖:abstract_target ‘xxx’ do end

指明安装依赖后执行一些特定操作 post_install do |installer|

⑶、在 xcode 的根目录下(podfile所在目录),使用 pod install安装依赖

⑷、在xcode 的根目录下(podfile所在目录),使用 pod update更新依赖(需要时)

  可指定更新某个库,如:pod update Alamofire

二、相关概念知识自我答疑

问题1:为什么要安装ruby 和 rvm?

有些sdk需要更新 pod,

pod 安装/更新 可能需要先更新 ruby(否则会失败)
(Podfile是ruby代码

更新 ruby 需要先下载安装 rvm

问题2:什么是ruby 和 rvm?

Ruby: Ruby 是一种面向对象的高级编程语言,以其简洁明了的语法和强大 的元编程能力而受到开发者的喜爱。Ruby 支持多种编程范式,包括函数式、 命令式和反射式编程。

RVM(Ruby Version Manager): RVM 是一个用于管理和使用多个 Ruby 环 境的工具。它允许开发者在一个系统上安装多个版本的 Ruby,并能够在这 些版本之间轻松切换。这对于需要在不同项目中使用不同 Ruby 版本的开发 者来说非常有用,因为不同的项目可能依赖于不同版本的 Ruby 或其生态系 统中的库(gem)。RVM 不仅能管理 Ruby 解释器的版本,还能管理 gemsets, 即一组相关的 gems,这样就可以为每个项目或每个Ruby版本创建独立的 gem 环境,避免版本冲突。

问题3、Unity在导出xcode工程后,为什么会变成 pod工程?

原因:Unity引入了 ExternalDependencyManager

问题4、使用 pod,对 xcodebuild 构建有什么影响?

⑴. 打开项目时,应使用 .xcworkspace 而不是 .xcodeproj

当在项目中使用 CocoaPods 后,需要使用生成的 .xcworkspace 文件来打开和构建项目,而不是原来的 .xcodeproj 文件。因为 .xcworkspace 文件包含了你的项目以及 CocoaPods 管理的所有依赖。

⑵. xcodebuild 构建命令的对应调整

当使用 xcodebuild 构建项目时,需要指定 .xcworkspace 文件,而不是 .xcodeproj 文件。如下所示:

xcodebuild -workspace YourProject.xcworkspace -scheme YourScheme -configuration Release

⑶、在执行 xcodebuild 前 应保证已执行过 pod install

问题5、Scheme 是什么?

Scheme,翻译为计划,方案。

一个 scheme 是一个配置文件,它包含了一系列的动作(Actions),这些动作包括构建(Build)、测试(Test)、运行(Run)、分析(Analyze)、存档(Archive)等。

在 Xcode 中,选择 Product > Scheme > Edit Scheme,可以打开 Scheme 编辑器。然后配置每个动作的详细设置。

问题6、Podfile.lock 是什么?

Podfile.lock 是 CocoaPods 依赖管理工具生成的一个重要文件,用于锁定和记录你项目中所有 CocoaPods 依赖的具体版本。这个文件确保每个团队成员或 CI/CD 环境在执行 pod install 时使用的依赖版本是一致的,从而避免版本不兼容问题。

版本锁定: Podfile.lock 文件记录了 Podfile 中指定的每个库的确切版本。当你运行 pod install 时,CocoaPods 会参考 Podfile.lock 中的版本信息,而不是直接从 Podfile 中获取最新兼容版本。这确保了每次安装的依赖版本一致。

团队协作: 在团队开发中,如果没有 Podfile.lock,不同开发者在不同时间运行 pod install 可能会安装不同版本的依赖库,导致潜在的兼容性问题。Podfile.lock 通过锁定依赖版本,确保所有开发者使用相同版本的库。

CI/CD 环境一致性: 在持续集成和持续部署环境中,Podfile.lock 确保构建服务器使用与开发环境相同的依赖版本,避免了由于依赖版本变化而导致的构建失败或行为不一致。

Podfile.lock 文件包含以下主要内容:

PODS:列出所有已安装的 pods 及其具体版本。

DEPENDENCIES:列出 Podfile 中声明的依赖库及其版本要求。

SPEC CHECKSUMS:每个 pod 的规格(spec)的校验和,用于验证 pod 规格的完整性。

PODFILE CHECKSUM:整个 Podfile 文件的校验和,用于检测 Podfile 是否发生了变化。

COCOAPODS:CocoaPods 的版本信息。

通过提交 Podfile.lock 到版本控制系统,可以避免由于依赖版本不一致导致的问题,从而提高项目的稳定性和可维护性。

但由Unity导出的xcode项目有自己的打包工作流,因此一般并不需要它提交到版本控制系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920485.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS OpenSearch 可观测最佳实践

AWS OpenSearch 介绍 OpenSearch 是一种全面开源搜索和分析引擎,使用案例包括日志分析、实时应用程序监控、点击流分析等。Amazon OpenSearch Service 是一项托管服务,让用户能够在 AWS 云中轻松部署、运行并扩展 OpenSearch 集群。 观测云 观测云是一…

HTML5七夕节网站源码

一,网站概述 本七夕节主题网站采用HTML5、CSS3与JavaScript技术栈构建,响应式设计适配多终端设备,通过模块化开发实现丰富交互体验。以下从架构设计、功能实现和视觉效果三方面概述: 1.1、架构设计 采用单页应用(SPA)架构&…

以技术赋能强化消费者信任,助推餐饮服务质量提质增效的明厨亮灶开源了

AI 视频监控平台简介 AI 视频监控平台是一款兼具强大功能与便捷操作的实时算法视频监控系统。其核心愿景在于打破各大芯片厂商间的技术壁垒,省去冗余重复的适配流程,构建 “芯片 - 算法 - 应用” 的全流程组合体系。这一体系可帮助企业级应用降低约 95%…

【NJU-OS-JYY笔记】操作系统:设计与实现

1. 绪论 1.1. 程序的执行与状态机 在计算机科学中,任何程序都可以被抽象为一个状态机,无论是我们熟知的日常工具(LibreOffice,Chrome)还是开发工具(IDE,GCC,GDB)&#…

GaussDB 修改schema属主时报:must be member of role “dtest“

1 问题现象schema的属主为root,客户需要修改对应的业务用户,在使用root用户登入postgres库时修改schema属主时报:ERROR:dn_6007_6008_6009:must be member of role "dtest"执行命令为:alter schema dtest owner to dtes…

好•真题资源+专业练习平台=高效备赛2025年初中古诗文大会(0829)

2025年初中生古诗文大会的初选11月2日-9日正式开赛,还有两个多月。快来做真题,吃透题目背后的知识点,举一反三不但对比赛有用,对于课内的语文学习也有很大促进。【好消息】2025年古诗文大会阅读专辑的模拟题好真题独家超详细完整解…

Pointer--Learing MOOC-C语言第九周指针

2、指针运算1.指针运算(本节内容详细请登录中国大学MOOC官网查询)指针是可计算的112?指针计算*p指针比较0地址指针的类型用指针来做什么2.动态内存分配输入数据:1.如果输入数据时候,先告诉你个数,然后再输入…

升级DrRacket8.10到8.18版本@Ubuntu24.04

升级DrRacket8.10到8.18版本 安装参考:在FreeBSD、Windows、Ubuntu24三种平台下安装Racket多范式编程语言_racket安装-CSDN博客 Ubuntu24.04里面的版本是8.10,所以无法使用apt upgrade升级,最终是使用下载升级软件,手工升级完成&#xff01…

亚马逊季节性产品运营策略:从传统到智能化的演进

"季节性产品如何在有限销售窗口内实现收益最大化?" "面对剧烈波动的市场需求,广告投放该如何灵活应对?" "如何避免旺季断货或淡季资源浪费的库存难题?" "传统人工运营方式能否跟上季节性产品的…

解析xml文件并录入数据库

主函数:参数处理、信号处理、打开日志、解析参数到结构体、添加进程心跳、处理业务函数业务处理函数:将规则xml加载到结构体(xml文件名、对应表名、更新标志、预先执行语句)、打开源文件夹并匹配10000个xml文件、判断数据库是否开…

mongoDB学习(docker)

docker 命令创建mongoDBdocker pull mongo docker run -d --name my-mongo \-e MONGO_INITDB_ROOT_USERNAMEroot \-e MONGO_INITDB_ROOT_PASSWORD123456 \-v /my/data/mongo:/data/db \-p 27017:27017 \mongodocker run -d --name my-mongo -e MONGO_INITDB_ROOT_USERNAMEroot…

软件测试(四):等价类和判定表

1.等价类划分表例:qq号等价类测试用例:无论有效无效,对应的用例都只举一个数据例子(例子在其对应的用例情况区间任选一个即可)自测案例写完测试用例后执行测试用例验证(借助工具DDSP)实际结果与…

week5-[二维数组]翻转

week5-[二维数组]翻转 题目描述 给定一个 nnn\times nnn 的正方形二维数组,将它旋转 180180180 度后输出。 输入格式 输入共 n1n 1n1 行。 第 111 行 111 个正整数 nnn。 接下来 nnn 行,每行 nnn 个正整数 aija_{ij}aij​ 表示这个二维数组。 输出格式 …

微调大模型并部署服务提供外部调用

微调大模型并部署服务提供外部调用1.背景知识介绍说明LoRA 微调算法LoRA原理:微调常见框架2. 环境搭建下载并使用docker compose部署 LLaMA-Factory3. 微调微调结束之后导出模型4. 本地运行模型5. 服务http调用验证应用到的技术 微调框架( LLama-Factory…

命令行操作:逻辑运算符、重定向与管道

命令行操作:逻辑运算符、重定向与管道前言一、逻辑运算符1.1. 逻辑运算符 && (AND)1.2. 逻辑运算符 || (OR)1.3. 标准文件描述符 (FD)二、重定向2.1 重定向: > 与 >>2.2 重定向错误输出: 2>/ 与 2>>2.3 POSIX 推荐(经常使用)三、管道 (顺…

IDA Pro 逆向安卓 SO 库实战指南:从静态分析到动态调试

IDA Pro 逆向安卓 SO 库是一个系统性的工程。下面我将为你提供一个从环境准备、基础静态分析到高级动态调试的完整实战指南。一、 准备工作与环境搭建 所需工具IDA Pro: 主力逆向工具,建议使用 7.7 或更高版本,对 ARM/ARM64 架构支持更好。目标 APK:…

Python爬虫(47)Python异步爬虫与K8S弹性伸缩:构建百万级并发数据采集引擎

目录一、背景与行业痛点二、核心技术架构解析2.1 异步爬虫引擎设计2.2 K8S弹性伸缩架构三、生产环境实践数据3.1 性能基准测试3.2 成本优化效果四、高级优化技巧4.1 协程级熔断降级4.2 预测式扩容五、总结🌈Python爬虫相关文章(推荐)一、背景…

处理器的双发射是什么?

处理器的双发射是什么? 这是一个处理器微架构层面的概念,对于理解现代高性能CPU(包括一些Cortex-M7/M55/M85等高端MCU内核)如何提升性能至关重要。 核心摘要 双发射 是一种处理器设计技术,允许CPU的译码器在一个时钟周期内,同时解码并派发两条指令到不同的执行单元中去…

麒麟操作系统挂载NAS服务器

前言:因信创整改,需将原服务器的服务全部迁移到信创服务器,在部署完应用后,发现外挂了NAS服务(可用df -h查看挂载文件),于是在信创服务器上需要挂载NAS服务器。在Linux上挂载NAS服务器可以通过多…

qt配置ros2环境,简单版本

因为不同的系统环境会有差异,先把我的环境介绍如下: 系统:Ubuntu22.04 ROS版本:ros2 humble Qt版本:qt-5.14.2 要配置Qt中的ros环境,需要在Qt的系统环境中添加2个变量,一个是编译环境变量、一个…