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

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.dtcms.com/a/354503.html

相关文章:

  • Flutter:ios打包ipa,证书申请,Xcode打包,完整流程
  • Intern-S1-mini模型结构
  • SpringBoot系列之实现高效批量写入数据
  • 专项智能练习(图形图像基础)
  • 文本处理与模型对比:BERT, Prompt, Regex, TF-IDF
  • 高精度惯性导航IMU价格与供应商
  • [sys-BlueChi] docs | BluechiCtl命令行工具
  • 【C#/Cpp】CLR项目搭建的内联和托管两选项
  • IPv4和IPv6的主要区别,以及常见的过渡策略有哪些
  • OpenCV计算机视觉实战(22)——图像拼接详解
  • 机器视觉学习-day07-图像镜像旋转
  • 【开题答辩全过程】以 基于Spring Boot农产品运输服务平台为例,包含答辩的问题和答案
  • MapStruct用法和实践
  • 【笔记ing】大模型算法架构
  • android studio 同步慢问题解决
  • Logstash数据迁移之mysql-to-kafka.conf两种路由决策对比
  • WebRTC音频QoS方法五(音频变速算法之Accelerate、FastAccelerate、PreemptiveExpand算法实现)
  • Kafka、RabbitMQ 与 RocketMQ 在高并发场景下的高可用与性能对比分析
  • 游戏使用云手机在线运行怎么样?
  • 小白成长之路-k8s原理(二)
  • 【在 macOS 系统上使用 Docker 启动 Kafka 的完整指南】
  • 点评项目(Redis中间件)第二部分Redis基础
  • ArtCAM 2008安装教程
  • React 业务场景使用相关封装(hooks 使用)
  • 【AI自动化】VSCode+Playwright+codegen+nodejs自动化脚本生成
  • Git 删除文件
  • WINTRUST!_ExplodeMessag函数中的pCatAdd
  • 【大前端】React useEffect 详解:从入门到进阶
  • 响应用户:React中的事件处理机制
  • [linux仓库]透视文件IO:从C库函数的‘表象’到系统调用的‘本质’