cocoapods 初接触

一、安装 cocoapods

gem 是 Ruby 的一个包管理器,而 cocoapods 是一个用于管理 iOS 项目中第三方库依赖的工具。

我将用 Ruby 的 gem 命令安装名为 cocoapods 的 Gem 包。这个命令的作用是将 CocoaPods 工具安装到系统中,以便今后可以在 iOS 项目中使用 CocoaPods 来管理依赖关系。

sudo gem install cocoapods
pod setup --verbose
pod --version

image-20240126下午51805004

image-20240126下午52025382

image-20240126下午54623024

二、背景学习

可以看谷歌的这个学习视频(怪怪的感觉🤣) https://youtu.be/iEAjvNRdZa0?si=tlD5kxp4gAAUZu7s

image-20240126下午54831482

三、初始化 iOS 项目

pod init

将出现一个文件 Podfile:

image-20240126下午54450231

修改文件 Podfile,增加一下 pod 的内容:

image-20240126下午60209206

# 回到命令行

pod install

image-20240126下午60030747

文件目录改成这样了,多了很多文件,目录结构也有点变化:

image-20240126下午60256713

在xcode中也能看到,多了Pods这个文件夹:

image-20240205上午94023021

四、build

首次 init 后,需要先build一遍原有项目,有可能会有错误。问题各有千秋。

我目前是 xcode 15,遇到了两个问题:

1. User error: Sandbox: rsync.samba(26931) deny(1) file-write-create

cocoapods User error: Sandbox: rsync.samba(26931) deny(1) file-write-create /Users /Library/Developer/Xcode/DerivedData

image-20240205上午94911487

根据:Xcode 15 beta build issues - apple developer forumsXcode 15 cannot copy frameworks to app bundle possibly due to sandboxing issues #11946 - github

禁用 Xcode 的沙盒机制

爬楼这个答案还不错,机翻不太好:

如果您想保持ENABLE_USER_SCRIPT_SANDBOXING启用,修复方法是将文件添加为输入和输出。我使用脚本在构建信息plist文件中设置构建号。我只需要将"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"设置为脚本的输出

构建设置ENABLE_USER_SCRIPT_SANDBOXING在Xcode 14中添加,但在更新中启用了在Xcode 15中推荐设置

来自Xcode 14发布说明:

您现在可以使用ENABLE_USER_SCRIPT_SANDBOXING构建设置为shell脚本构建阶段启用沙盒。沙箱阻止访问项目源根目录内的文件以及派生数据目录,除非您将这些文件列为输入或输出。启用后,如果脚本阶段试图从未声明的依赖项中读取或写入,则构建将因沙盒违规而失败,从而防止错误的构建。

感谢Daniel Jalket的博客文章:Xcode构建脚本沙盒-https://indiestack.com/2023/06/xcode-build-script-sandboxing/

具体是, User script sandboxing - > Set " No "

image-20240205下午11115522

2. Failed to instantiate the default view controller for UIMainStoryboardFile ‘Main’ - perhaps the designated entry point is not set?

image-20240205下午24833674

瞎操作看到一个初始化 view设置,点上去就ok了。

image-20240205下午32350018


Mac 下快速新建 “markdown” 文件 mbti 备忘