如何通过 CocoaPods 使用本地项目
Posted
技术标签:
【中文标题】如何通过 CocoaPods 使用本地项目【英文标题】:How to use local-only project via CocoaPods 【发布时间】:2018-12-17 14:51:23 【问题描述】:我正在努力寻找一种方法来将我们创建的 Xcode 框架打包为仅在内部使用的 Pod(不公开,不在 github 上)。
如何修改 .podspec
以从我的开发机器上的本地 Xcode 项目构建 SDK?
【问题讨论】:
您可以将:path =>
用于本地 pod。但是你的 Pod 是否在任何 Git 存储库中(即使是私有的)?
我的想法是只在本地拥有 Pod,这样我就可以将它仅用于调试目的,因此不能将它托管在任何 Git 存储库(无论是私有的还是公共的)上。 @Larme
在您的 podfile 中,您可以将 :path =>
用于您的本地 pod。我不知道如何通过pod spec lint
绕过源问题。
但是如何创建本地 pod?我只有 pod 的源代码,所以我想找到一种方法将源代码打包到本地 pod 中?
【参考方案1】:
简短回答:您不要为此使用.podspec
。更长:.podfile
主要用于指定:
IIRC,除了一些信息元数据,.podspec
没有说明您如何访问该项目文件夹,因为这是单独处理的。
如 cmets 中所述,您可以使用Podfile
来使用本地项目,:path =>
指令指向本地项目文件夹。例如,您的项目位于 /Users/me/proj
中——而 .podspec
位于顶层——您的 Podfile 将具有如下条目:
pod 'MyPodName', :path => '/Users/me/proj'
警告:当您运行 pod update, install
时,这将拉取当时在该项目中本地签出的任何内容。
【讨论】:
【参考方案2】:本地 CocoaPods
[Dependency manager]
Git 示例:
文字
播客文件
//Podfile pod supports:
//default(try to find .podcpec in centralised repo), path
//-remote
pod 'PodName'
//-local
//local_path can be absolute or relative
pod 'PodName', :path => '<local_path>.podspec'
Pod 规格
//Podspec source supports:
//git, svn, hg, http
//-remote
s.source = :git => "https://url_to.git", :tag => "git_tag"
//-local
s.source = :git => 'file:///path_to_git_folder', :tag => "git_tag"
//or, where path_to_git_folder can be relative
s.source = :git => '/path_to_git_folder', :tag => "git_tag"
不要忘记事先提交您的更改。 git_tag
可以与分支名称相同。
几个有用的命令:
更新:
Podfile
:
pod update
检查
.podspec
:
pod spec lint "<some_path>.podspec" --quick
pod spec lint "<some_path>.podspec" --verbose --allow-warnings
注册会话:
pod trunk register <email> '<name>' --description='<description>'
发布:
pod trunk push <file>.podspec --verbose --allow-warnings
Pod 搜索[About]:
pod search <pod_name>
[Local Carthage] [Local Swift Package Manager]
[android Maven local]
【讨论】:
【参考方案3】:您只需要一个私有 Git 存储库,将 source
添加到 Podfile
然后决定框架是闭源还是开源,那么podspec
文件会有所不同。
所有pod repo ...
都会帮助你Doc
【讨论】:
以上是关于如何通过 CocoaPods 使用本地项目的主要内容,如果未能解决你的问题,请参考以下文章
添加本地动态框架后的 Cocoapods Mach-O Linker Errors