当前位置: 首页 > web >正文

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.xdnf.cn/news/19081.html

相关文章:

  • Servlet 注解:简化配置的完整指南
  • 大模型微调示例四之Llama-Factory-DPO
  • 若依cloud集训总结
  • 汉字这颗穿越时空的智慧之光,在未来绽放出更加耀眼的光芒
  • 深入解析Java并发编程与单例模式
  • 文件系统挂载详细分析(《图解Linux内核》虚拟文件系统篇笔记三)
  • 神经网络为何能 “学习”?从神经元到深度学习模型的层级结构解析
  • 打破存储局限:CS 创世 SD NAND 如何优化瑞芯微(RK)与北京君正平台的贴片式 SD 卡性能
  • 【C++成长之旅】C++入门基础:从 Hello World 到命名空间与函数重载的系统学习
  • Bscan Bonding Chain
  • 印度尼西亚数据源 PHP 对接文档
  • Mysql——分库分表
  • Redis发布订阅:实时消息系统的极简解决方案
  • 从数字到价值:ESG评级的深层变革
  • Linux827 测试
  • 计算机日常答疑,一起寻找问题的最优解
  • LeetCode算法日记 - Day 24: 颜色分类、排序数组
  • PyTorch图像预处理完全指南:从基础操作到GPU加速实战
  • 完整实验命令解析:从集群搭建到负载均衡配置(2)
  • [vcpkg] Windows入门使用介绍
  • day22 回溯算法part01
  • 服务器类型与TCP并发服务器构建(SELECT)
  • 设计模式:桥接模式(Bridge Pattern)
  • 《Linux内存管理:实验驱动的深度探索》【附录】【实验环境搭建 7】【使用buildroot方式构建文件系统】
  • 【开发便利】让远程Linux服务器能够访问内网git仓库
  • 链表-25.k个一组翻转链表-力扣(LeetCode)
  • 深入解析 Flink Function
  • Vue将内容生成为二维码,并将所有二维码下载为图片,同时支持批量下载(下载为ZIP),含解决一次性生成过多时页面崩溃解决办法
  • TCP 并发服务器构建
  • 智芯MCU 勘误文档问题解析