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
英文地址,請注明出處:http://en.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個變量,一個是編譯環境變量、一個…