自定义CocoaPod框架与其他Cocoapods

时间:2018-01-20 21:47:21

标签: ios swift frameworks cocoapods xcode9.2

有很多关于它的事情,但我仍然无法弄明白。

所以我在这做什么: 我已经创建了一个Cocoapod测试框架,其中包含从一些教程中借用的代码。 Repo

Podfile

platform :ios, '9.0'

target 'CocoaPodTestFramework' do

use_frameworks!

pod 'Alamofire'
pod 'SwiftyJSON'
end

在框架中我需要一个http调用,所以我在我的框架工作区中使用了Alamofire和SwitfyJSON pod。在成功建立buidling过程后,我得到了三个框架文件:

  1. CocoaPodTestFramework.framework
  2. Alamofire.framework
  3. SwiftyJSON.framework
  4. 现在当我想使用它时,我想创建一些测试应用来测试我的框架。

    1. Swift:应用程序没有使用cocoapod(普通的Xcode Project而不是工作空间),我只需链接所有3个框架就可以了。
    2. 对于Objective-C App,我做了同样的工作。
    3. 现在在另一个使用Cocoapods的Swift应用程序中,我在我的Podfile中添加了以下内容
    4. 示例应用的Podfile

      platform :ios, '9.0'
      target 'Cocoapod Test App' do
      use_frameworks!
      pod 'CocoaPodTestFramework', :path => '/Users/ABCD/Documents/Projects/TEST/CocoaPodTestFramework'
      end
      

      现在问题来了,每当我尝试构建我得到的应用程序时 Referenced框架和应用程序中的no such module 'Alamofire'表示no such module 'CocoaPodTestFramework'

      从那时起一直在阅读各种帖子/论坛/问题,但无法弄清楚如何解决这个问题,尝试在应用程序Podfile中添加pod 'Alamofire'pod 'SwiftyJSON',但仍然会收到相同的错误。 并且还尝试在框架的.podspec(s.frameworks)文件中添加“Alamofire”和“SwiftyJSON”,但这会产生错误。

      所以我想知道是否有解决方法,或者根本不可能?

      在某个地方阅读使用框架项目作为示例应用程序的子模块,这会解决问题吗?如果是,那么如果我不想分享我的意思而不提交代码只是共享,那么其他人如何使用此pod .framework文件(基本上它应该像一个SDK,我不能共享但需要使用其他pod的源:P,即使我想跳过github部分搜索方式也是如此)

      任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

OK ... 在这里我如何弄清楚它可能会帮助像我这样的人...

<强> Podfile

s.dependency "Alamofire"
s.dependency "SwiftyJSON"

以上两行已经解决了这个问题,我还是不想关闭这个帖子,直到我开发了实际的SDK来检查这是否真的有效。 :)

答案 1 :(得分:0)

之前我遇到过这个问题,我创建了一个动态框架,使用pod来完成它作为聊天模块的过程,在将它拖到项目之后,它无法看到子框架并给出你描述的同样的错误,最后我发现嵌套框架不允许在IOS中只有MACOS,看起来框架代码必须是没有子框架才能工作的纯代码,在Apple论坛写了一篇帖子,他们就像这样回复

enter image description here