cocoapods 初接触
2024-01-26 tech ios apple-developer 4 mins 13 图 1555 字
一、安装 cocoapods
gem
是 Ruby 的一个包管理器,而cocoapods
是一个用于管理 iOS 项目中第三方库依赖的工具。我将用 Ruby 的
gem
命令安装名为cocoapods
的 Gem 包。这个命令的作用是将 CocoaPods 工具安装到系统中,以便今后可以在 iOS 项目中使用 CocoaPods 来管理依赖关系。
sudo gem install cocoapods
pod setup --verbose
pod --version
二、背景学习
可以看谷歌的这个学习视频(怪怪的感觉🤣) https://youtu.be/iEAjvNRdZa0?si=tlD5kxp4gAAUZu7s
三、初始化 iOS 项目
pod init
将出现一个文件 Podfile:
修改文件 Podfile,增加一下 pod 的内容:
# 回到命令行
pod install
文件目录改成这样了,多了很多文件,目录结构也有点变化:
在xcode中也能看到,多了Pods这个文件夹:
四、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
根据:Xcode 15 beta build issues - apple developer forums 和 Xcode 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 "
2. Failed to instantiate the default view controller for UIMainStoryboardFile ‘Main’ - perhaps the designated entry point is not set?
瞎操作看到一个初始化 view设置,点上去就ok了。