【问题标题】:Creating .framework through .podspec file通过 .podspec 文件创建 .framework
【发布时间】:2017-01-02 06:59:02
【问题描述】:

目前我的框架 (myFramework.framework) 可通过 cocoapods 获得。我正在公开它的源代码,但面临一些问题。

我参考了以下链接:

  1. CocoaPod/Podspec and *.framework
  2. https://guides.cocoapods.org/making/using-pod-lib-create.html
  3. http://blog.cocoapods.org/Pod-Authors-Guide-to-CocoaPods-Frameworks/

如何从 podspec 文件创建 .framework(不是库)? 甚至我也可以从 podspec 创建库。但我想制作 myFramework.framework 文件。

这里是 podspec 文件:

    Pod::Spec.new do |s|
s.name             = 'myFramework'
s.version          = '1.0.0'
s.summary          = 'Product summary will go here'

s.description      = <<-DESC
Product description goes here. It can be anything which describes your product in few lines.
 DESC

s.homepage         = 'homepage link'
s.license          = { :type => 'Commercial',:text => 'Link to website'}
s.author           = { 'abcd' => 'email address' }
s.source           = {:path => ':path => ‘local_path/framework-folder'}
s.social_media_url = 'social_media_url'

s.ios.deployment_target = '7.0'

s.source_files = 'framework-folder/inner-folder/*.h'
s.public_header_files = 'framework-folder/inner-folder/*.h'

s.frameworks =  'CoreGraphics', 'MobileCoreServices', 'Security', 'SystemConfiguration'
s.pod_target_xcconfig = { 'OTHER_LDFLAGS' => '-lObjC' }

end

目前我正在本地测试框架。

use_frameworks!

target 'podDemo' do

pod 'myFramework', :path => ‘~folder_path/myFramework.podspec’
end

pod install 之后的结果是这样的:

但我想像这样添加 .framework:

【问题讨论】:

    标签: ios objective-c frameworks cocoapods podspec


    【解决方案1】:

    podspec 没有指定如何构建库 - 静态或动态。图书馆用户有责任指定如何构建它 - 即在他们的Podfile中。

    默认情况下 Cocoapods 构建静态库,如果您需要框架,则可以在 Podfile 中指定 use_frameworks!

    关于项目导航器中存在的头文件,这是预期的行为,因为如果您希望将头文件包含在构建的框架中,则需要在某处引用它们。如果您转到构建目录,您应该能够找到框架。

    【讨论】:

    • 谢谢@Cristik。目前我正在使用 'pod 'myFramework', :path => ''folder_path/myFramework.podspec"' 在本地对其进行测试。我添加了 'use_frameworks!'在 podfile 中。它仍然给我文件夹结构内的头文件。我认为它必须制作“myFramework.framework”。很困惑该怎么办?
    • 当前构建目录包含 myFramework.framework 和 headers 文件夹(包括所有头文件)。但是我们可以使用 podspec 文件中的任何命令直接包含它吗?类似s.vendor_frameworks = 'myFramework.framework'
    猜你喜欢
    • 2012-12-15
    • 2021-02-28
    • 2020-06-16
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2023-04-02
    • 2017-12-30
    • 2016-06-22
    相关资源
    最近更新 更多