【问题标题】:How to use local-only project via CocoaPods如何通过 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 中?

标签: ios objective-c xcode cocoapods podspec


【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-15
        • 2018-12-06
        • 2019-06-18
        • 2021-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-25
        相关资源
        最近更新 更多