从现有的Xcode项目创建一个CocoaPod

26

到目前为止,我一直在尝试破解这个问题,但是还没有成功。我有一个Xcode Swift项目,并使用其Github存储库进行源代码控制。我想使用此项目创建一个新的CocoaPod。

我已经阅读了CocoaPods文档,但迄今为止没有工作,现在我感到非常困惑,是否有人能够按顺序编写我需要完成新建pod的步骤,因为我的现有Xcode项目已经链接到Github存储库中。

提前感谢!


你看过这个吗?https://guides.cocoapods.org/making/making-a-cocoapod.html - dalton_c
2
是的,但这会创建一个空的Xcode项目。我已经有了我的项目以及它链接的git仓库。 - Gabriel
如果您已经找到了解决方案,请发布如何将CocoaPods添加到现有项目的步骤。 - Manolis Karamanis
3个回答

18

选自Cocoapods文档

$ pod spec create YourProject
$ edit YourProject.podspec

接着在编辑器中将s.source_files = "Classes", "Classes/**/*.{h,m}"替换为

s.source_files = "Classes/**/*.{swift}"

然后运行,直到您通过所有测试。

$ pod spec lint YourProject.podspec

那基本上就是全部内容了。

您可以通过创建一个新的演示应用程序,并遵循Anbu.Karthik的9个步骤,在现实生活中测试此Podspec。

在创建的podfile中添加类似于以下内容:

pod 'YourProject', :path => '/Users/you/work/YourProject'

路径应指向包含podspec文件的目录。再次运行 pod install


7

从现有的Xcode项目创建Cocoapod的简单步骤

  • 在您的git帐户上创建存储库(Repo名称,请检查README,在许可证下选择MIT)。
  • 复制您的存储库网址。打开终端并运行以下命令。

    git clone copied your repository url

  • 现在将您的Xcode项目复制到Mac上克隆的存储库文件夹中。现在运行以下命令

    git add -u to add all files (if not added use: git add filepath/folder)

    git commit -m "your custom message"

    git push origin master

  • 创建一个新版本,以前往您的git存储库或运行以下命令

    git tag 1.0.0

    git push --tags

  • 首先,我们需要确保您已经安装了CocoaPods,并可以在终端中使用。运行以下命令:

    sudo gem install cocoapods --pre

创建Podspec

  • 所有的Pod都有一个podspec文件。podspec文件,顾名思义,定义了Pod的规格!现在让我们创建一个,在终端上运行以下命令:

    touch PodName.podspec

  • 在添加和修改.podspec文件后,请通过在终端上输入以下命令来验证.podspec文件

    pod lib lint

  • 一旦您成功验证并且没有错误,就可以运行以下命令注册并构建cocoapod

    pod trunk register  

    pod trunk push PodName.podspec

如果一切顺利,你会在终端上看到这个结果

成功发布了 PodName (1.0.0)

2月5日 02:32

https://cocoapods.org/pods/PodName

告诉你的朋友们吧!

耶!!!!恭喜您获得了Pod链接。在您想要使用它的任何地方使用它。


使用pod trunk register需要添加一个与podspec作者属性中提供的电子邮件地址相匹配的电子邮件地址,以及您的姓名和描述。例如: $ pod trunk register ben@example.com 'Ben Davidson' --description='我的个人电脑' - Benjamín Cáceres Ramirez

0

您可以使用https://github.com/CocoaPods/Xcodeproj (它已经随Cocoapods一起发布,因此如果您使用后者,则已经拥有前者)来解析您的XCode项目/工作区,并且例如:

  • 获取所需的目标
  • 获取包含在该目标编译中的所有文件
  • 将其打印或写入文件中(甚至直接写入到Podspec文件中)
  • 更新您的Podspec,使spec.source_files包含所有这些文件

由于Podspec是一个Ruby脚本,因此您甚至可以将此过程集成到Podspec本身中,以仅维护单个XCode项目目标源文件并从中更新Podspec。类似以下内容:

require 'xcodeproj'
project = Xcodeproj::Project.open('MySuperProject.xcodeproj')
target = project.targets.select { |target| target.name == 'MyTarget1' }.first

def self.relative_file_paths(build_phase)
  folder_path_length = __dir__.length + 1  # add '/' to the end
  paths = build_phase.files_references.map{ |f| f.real_path.to_s[folder_path_length..-1] }
  puts build_phase, paths
  return paths
end

Pod::Spec.new do |s|
  s.name = 'MySuperProject'
  s.version = '1.0'
  s.authors = 'My team'
  s.license = 'My License'
  s.homepage = 'github.com:me/MySuperProject.git'
  s.source = { :git => 'github.me/MySuperProject.git' }
  s.summary = 'My Super Project'

  headers = (self.relative_file_paths target.headers_build_phase) + ['include/SomeHeader.h']
  s.source_files = (self.relative_file_paths target.source_build_phase) + headers
  s.public_header_files = headers
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接