如何通过 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 使用本地项目的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Flutter 插件使用 cocoapods?

添加本地动态框架后的 Cocoapods Mach-O Linker Errors

关于Cocos2dx v4.0 和 Cocoapods配合使用

图文介绍项目支持cocoapods导入

使用CocoaPods建立私有仓库

如何发布自己的开源框架到CocoaPods