使用Cocoapods示例应用程序构建框架的问题

时间:2019-06-23 12:35:21

标签: ios cocoapods

我正在构建一个iOS框架,并使用Cocoapods进行分发。该框架可以构建,但是为了查看实际运行情况,我需要在示例应用程序中运行代码。我已经在框架工作区中放置了这个示例应用程序。

除在框架中进行更改,然后在示例应用程序中运行这些更改外,所有其他操作都很好。要查看我的更改,我要做的是

  1. 切换到框架目标
  2. 构建框架
  3. 切换到示例应用目标
  4. 运行示例应用

如您所见,很多步骤很快就会变得很乏味。

我的设置遇到的另一个问题是,如果我在框架中创建了一个新文件,则需要先执行pod install,然后才能在示例应用程序中看到该文件。

我在设置步骤中缺少什么吗? Podfile中可能需要extra吗?如果不不断切换目标,这种设置是否有可能实现?

Podspec

Pod::Spec.new do |s|
  ...

  s.platform      = :ios, '9.0'
  s.swift_version = '5.0'

  s.source_files = 'SomeFramework/SomeFramework/**/*.{strings,swift}'
  s.resources    = 'SomeFramework/SomeFramework/**/*.{xcassets}'

  s.test_spec 'Tests' do |ts|
    ts.source_files = 'SomeFramework/SomeFrameworkTests/*.swift'
  end

  s.app_spec 'SampleApp' do |as|
    root = 'SomeFrameworkSampleApp/SomeFrameworkSampleApp'

    as.source_files = root+'/**/*.swift'
    as.resources    = root+'/**/*.{storyboard,xcassets}'
  end
end

Podfile

use_frameworks!
inhibit_all_warnings!

platform :ios, '9.0'
workspace 'SomeFramework'

target 'SomeFramework' do
  project 'SomeFramework/SomeFramework'
  target 'SomeFrameworkTests'
end

target 'SomeFrameworkSampleApp' do
  project 'SomeFrameworkSampleApp/SomeFrameworkSampleApp'
end

1 个答案:

答案 0 :(得分:0)

CocoaPods似乎无法正确处理Podfile与Podspec的组合,换句话说,在分发框架的同时导入其他框架。

我的解决方案是将git submodules用于依赖项框架,将CocoaPods用于分发我的框架。

此解决方案还有一些其他设置步骤,但可以使开发经验保持预期。