Ios 如何使用Cocoapods分发已编译的框架?

Ios 如何使用Cocoapods分发已编译的框架?,ios,swift,frameworks,cocoapods,Ios,Swift,Frameworks,Cocoapods,我正在用cocoapod构建一个框架。现在,我把它放在一个私有的存储库中,有一个私有的spec repo。我不想以开源的形式发布这个框架,而是以封闭源代码的形式发布。基本上,我只想分发已经编译好的.framework文件。这样,我将避免向外部公开我的源代码。 我不知道如何告诉cocoapods分发编译后的文件 首先,创建一个示例项目,并为该项目安装pods(要作为SDK.framework发布的库) 然后查看下面的附加图像,以获取.framework扩展名文件以分发给公众 编译框架后,您将需

我正在用cocoapod构建一个框架。现在,我把它放在一个私有的存储库中,有一个私有的spec repo。我不想以开源的形式发布这个框架,而是以封闭源代码的形式发布。基本上,我只想分发已经编译好的.framework文件。这样,我将避免向外部公开我的源代码。 我不知道如何告诉cocoapods分发编译后的文件

  • 首先,创建一个示例项目,并为该项目安装pods(要作为SDK.framework发布的库)
  • 然后查看下面的附加图像,以获取.framework扩展名文件以分发给公众


  • 编译框架后,您将需要创建一个单独的公共存储库以用于分发。在这里,您将放置编译的框架、podspec、许可证、自述文件等

    podspec对于分发框架而不是源代码来说有点不同。见示例:

    Pod::Spec.new do |s|  
        s.name              = 'YourFrameworkName'
        s.version           = '1.7.0'
        s.summary           = 'The YourFrameworkName iOS SDK enables you to embed state-of-the-art real-time goodness into your iOS app.'
        s.homepage          = 'http://example.com'
    
        s.author            = { 'Name' => 'info@example.com' }
        s.license           = { :type => 'Custom', :file => 'LICENSE' }
    
        s.platform          = :ios
        s.source            = { :http => 'https://github.com/example/YourFrameworkName/releases/download/1.7.0/YourFrameworkName.zip' }
    
        s.ios.deployment_target = '9.0'
        s.ios.vendored_frameworks = 'YourFrameworkName.framework'
    
        s.dependency 'SwiftyJSON', '3.1.4'
    end
    
    一旦所有这些都设置好了,您就可以以正常的方式发布pod规范


    请记住,这是一个重要的考虑因素,您用Swift编写的编译框架仅在使用完全相同的Swift版本的项目中可用。随着人们开始在不同的项目中使用不同版本的Swift框架,您很快就会遇到这种限制

    您可以通过将
    podspec
    文件的
    s.source
    指向框架及其源代码的zip文件来完成此操作。无需在公共存储库中公开源代码


    下面是使用此技术的Cocoapod存储库的示例。请注意,我不再参与这个项目,也不再支持或推广这个框架,只是把它作为OP尝试做的一个例子。好的,明白了。现在我有两个问题:1)我的存储库是私有的,因为我正在开发的pod是公司内部的。我需要一个框架,以避免在与外部协作的情况下,我们的源代码可能被未经授权的人看到。podspec验证失败,因为github url指向私有repo。2) 你说“编译框架后”,你是什么意思?这不是cocoapods必须自动完成的事情吗?不是。您需要手动编译您的框架,然后将其提交到公共存储库。pod规范应该只引用公共存储库。
    spec.source = { :http => 'https://bitbucket.org/publicRepo/yourframework.zip' }