Cocoapods - 为私有 iOS 存储库创建 pod

Nit*_*ish 6 github ios cocoapods

我有一个带有代码的存储库,我不想与其他人共享。但我想要一个其他人可以集成到他们的应用程序中的 Pod。那可能吗 ?我按照教程进行操作,但在尝试将其添加到不同的系统上时出现错误: 无法找到“pod_name”的规范。
这是 pod 文件:

# Uncomment the next line to define a global platform for your project
#platform :ios, '9.0'

source 'https://github.com/my_source_url'

target 'DemoPods' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!

 # Pods for DemoPods

pod 'MyPodName'

end  
Run Code Online (Sandbox Code Playgroud)

我的用例:

  • 将我的存储库设为私有,以便源代码无法被访问。
  • 为我的私人存储库创建 Pod。
  • 其他用户应该能够将 pod 添加到他们的项目中。

gch*_*ita 7

要分发闭源 Pod,您首先需要修改您的私有存储库,以便可以生成文件.xcframework

通过 URL 分发

您必须压缩该.xcframework文件并通过 URL 向您的受众提供该文件。(无论是公共的还是私人的)

然后你可以创建一个.podspec像这样的文件:

Pod::Spec.new do |s|
    s.name = '<POD_NAME>'
    s.version = '<VERSION>'
    s.summary = '<SUMMARY>'
    s.description = <<-DESC
    <DESCRIPTION>
                         DESC
  
    s.homepage = '<A_URL_TO_A_WEBPAGE>'
    s.author = { '<AUTHOR_NAME>' => '<AUTHOR_EMAIL>' }
    s.source = { :http => '<URL_TO_YOUR_ZIP_FILE>' }

    ...

    s.vendored_frameworks = '<PATH_OF_XCFRAMEWORK_FILE_IN_THE_ZIP>.xcframework'
end
Run Code Online (Sandbox Code Playgroud)

之后有两种方法可以分发它:

  • Public:如果您想通过 cocoapods specs repo 分发您的 pod,您可以按照.podspec指南将您的文件推送到 cocoapods trunk :

    pod trunk push <PATH_TO_YOUR_PODSPEC_FILE>.podspec
    
    Run Code Online (Sandbox Code Playgroud)

    用户的安装将与任何其他 pod 一样:

    pod trunk push <PATH_TO_YOUR_PODSPEC_FILE>.podspec
    
    Run Code Online (Sandbox Code Playgroud)

    Private:对于私有分发,请遵循指南,创建私有规范存储库并使用以下命令推送您的 podspec:

    pod repo push <REPO_NAME> <PATH_TO_YOUR_PODSPEC_FILE>.podspec
    
    Run Code Online (Sandbox Code Playgroud)

    用户的安装将如下所示:

    use_frameworks!
    
    target 'TargetName' do
      pod '<POD_NAME>'
    end
    
    Run Code Online (Sandbox Code Playgroud)
  • 公开:如果您不介意 cocoapods 规范存储库(或者如果您想测试您的.podspec文件),您可以.podspec通过 URL 公开您的文件,然后指示用户使用podspec方式Podfile安装您的 pod:

    pod repo push <REPO_NAME> <PATH_TO_YOUR_PODSPEC_FILE>.podspec
    
    Run Code Online (Sandbox Code Playgroud)

    Private:同样的方法也适用于私有发行版,只要您的用户是唯一知道或有权访问 podspec URL 的用户。

通过 Github 存储库分发

尽管我不建议将二进制文件(即.xcframework)提交到 git 存储库中,但您几乎可以使用 git 存储库执行相同的操作,但无需压缩文件.xcframework

创建一个 git 存储库并添加该.xcframework文件以及.podspec如下所示的文件:

use_frameworks!

target 'TargetName' do
  pod '<POD_NAME>', :source => '<PRIVATE_SPECS_REPO_URL>'
end
Run Code Online (Sandbox Code Playgroud)

Public:然后你可以通过 cocoapods 规范存储库分发你的 pod,将你的.podspec文件推送到 cocoapods 主干,如下所示:

pod trunk push <PATH_TO_YOUR_PODSPEC_FILE>.podspec
Run Code Online (Sandbox Code Playgroud)

Private:对于私有分发,您可以创建一个私有规范存储库并使用以下命令来推送您的 podspec:

pod repo push <REPO_NAME> <PATH_TO_YOUR_PODSPEC_FILE>.podspec
Run Code Online (Sandbox Code Playgroud)