【问题标题】:iOS publish private code framework on cocoapodsiOS 在 cocoapods 上发布私有代码框架
【发布时间】:2017-12-07 21:56:31
【问题描述】:

我需要在 cocoapods 上发布一个 MySDK.framework(混合 obj-c + Swift)。我按照Publish a Universal Binary iOS Framework in Swift using CocoaPods中的步骤进行操作

当我运行pod install 时,它会说:

Analyzing dependencies
Fetching podspec for `MySDK` from `..`
Downloading dependencies
Using AFNetworking (3.1.0)
Using Crashlytics (3.9.3)
Using FXBlurView (1.6.4)
Using Fabric (1.7.2)
Using HexColors (2.3.0)
Using JSONModel (1.7.0)
Using KVOController (1.2.0)
Using Masonry (1.0.2)
Using SAMKeychain (1.5.3)
Using SDWebImage (3.8.2)
Using SnapKit (3.0.2)
Using SwiftyBeaver (1.2.2)
Using Toast (3.1.0)
Using YYImage (1.0.4)
Using MySDK (0.0.1)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 15 total pods installed.

但是 MySDK.zip 没有下载也没有安装在 Pods 项目中,所以 Xcode 抱怨缺少模块 MySDK(在导入 MySDK 时)。

MySDK.podspec

#
# Be sure to run `pod lib lint MySDK.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'MySDK'
  s.version          = '0.0.1'
  s.summary          = 'A short description of MySDK.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
                   MySDK framework for iOS.

                   * TODO: where docs are?
                   DESC

  s.homepage         = 'http://www.MySDK.com'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'Apache 2', :file => 'LICENSE' }
  s.author           = { 'me' => 'my-email@email.com' }

  s.ios.deployment_target = '8.0'
  s.source            = { :http => 'http://working-link.to/MySDK.framework.zip' }
  s.ios.vendored_frameworks = 'MySDK.framework'

  s.frameworks = 'UIKit'

  s.dependency 'AFNetworking', '~> 3.1.0'
  s.dependency 'Crashlytics', '~> 3.9.3'
  s.dependency 'Fabric', '~> 1.7.2'
  s.dependency 'JSONModel', '~> 1.7.0'
  s.dependency 'KVOController', '~> 1.2.0'
  s.dependency 'Masonry', '~> 1.0.2'
  s.dependency 'SAMKeychain', '~> 1.5.3'
  s.dependency 'SDWebImage', '~> 3.8.2'
  s.dependency 'SnapKit', '~> 3.0.0'
  s.dependency 'SwiftyBeaver', '~> 1.2.2'
  s.dependency 'Toast', '~> 3.1.0'
  s.dependency 'YYImage', '~> 1.0.4'

end
  • 如果我将框架添加到嵌入框架,一切都会按预期工作。

  • 尝试清理 Pods 缓存,没有成功

请帮忙!

【问题讨论】:

  • 有什么进展吗?我也有同样的问题!您是否直接将问题发布到 cocoapods?
  • @AaronBratcher,是的,发布答案

标签: ios swift xcode frameworks cocoapods


【解决方案1】:

在 Podfile 中使用 :podspec 而不是 :path 使其工作(因为在提供的教程中使用了 :path):

target 'MySDK-example' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MySDK-example
  pod 'MySDK', :podspec => '..'
end

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 2019-12-31
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多