当我使用CocoaPods时,没有这样的模块
所以这是我的程序。 我在项目目录中创build一个新的Podfile
,然后添加了以下内容
platform :ios, '9.0' use_frameworks! target 'CPod' do pod 'AFNetworking', '~> 2.5' pod 'ORStackView', '~> 2.0' pod 'SwiftyJSON', '~> 2.1' end
我开始pod install
,一切顺利,打开xcworkspace
。 然后我去看ViewController.swift
,如果我尝试导入一个窗格,我得到No such module 'SwiftyJSON'
,如果我要import SwiftyJSON
。 有任何想法吗?
编辑:SwiftyJSON是一个基于Swift的模块,而不是Obj-C
尝试将Pods
框架添加到您的构buildscheme并构build框架。 build好之后,编译/运行你的项目。
脚步:
- scheme菜单>pipe理scheme>检查
Pods
>closures( 图片1 , 图片2 ) - 从scheme菜单中select
Pods
。 - build立
Pods
。 - 从相同的菜单中select您的项目,然后构build/运行它。
按Command + Option + Shift + K ,然后运行你的应用程序,你会看到一个魔法。
或从菜单 – >产品,按键盘上的选项,你会看到清洁生成文件夹。
看起来很有趣,Xcode如何处理这些事情,但同样的事情发生在我身上,当我使用一个使用Pod的Swift库,并经过太多的斗争后,我最终与清洁生成文件夹。
安装podfile后,必须重新打开项目.xcworkspace文件(而不是.xcodeproj)。
- 用CocoaPods克隆回购
- 打开YourWorkspace / YourApplication.xcworkspace
- select你要运行的应用程序在该项目的embedded式二进制文件中添加SwiftyJSON.framework命中运行
快乐编码:)
您也可以尝试使用以下方法重新安装Pod:
pod deintegrate
接着
pod install
这为我解决了这个问题
不知道这是否会对其他人有帮助。 但是,在我的情况下,它最终成为一个愚蠢的错误,不从.podspec文件引用依赖关系。
我们有一个具有多个内部库的应用程序,这些库也相互依赖 – 我们在Podfiles中占据了…但不在podspec中。
所以,即使我们的Podfiles有:
应用程序/ Podfile
# Development Pods pod 'ConsumingLibrary ', :path => '../ios-consuming-lib' pod 'DependentLibrary1', :path => '../ios-library-one' pod 'CommonCoreLibrary', :path => '../ios-common-core-lib'
ConsumingLibrary / Podfile
# Development Pods pod 'DependentLibrary1', :path => '../ios-library-one' pod 'CommonCoreLibrary', :path => '../ios-common-core-lib'
需要在.podspec中调用它:
ConsumingLibrary / ConsumingLibrary.podspec
# TODO # Add here any resources to be exported. s.dependency 'DependentLibrary1', '~> 0.1.0-RC'
DependentLibrary1 / DependentLibrary1.podspec
# TODO # Add here any resources to be exported. s.dependency 'CommonCoreLibrary', '~> 0.1.0-RC'
我想我浪费了大约2个小时,试图找出为什么我可以build立ConsumingLibrary&运行testing,但是一旦我build立了应用程序,这消耗了所有三个库 – 我不断得到:
没有这样的模块“DependentLibrary1”
有时在swift项目中使用obj-c pod时(即使在use_frameworks!
中使用use_frameworks!
)也是.podfile
。
如果你确定已经安装了pod ,并且你仍然没有这样的模块 ,试试这个:
- 转到Xcode中的Pods项目
- 荚
- 右键单击受影响的窗格
- 在查找器中显示
应该有一个包含.framework后缀的包文件。 在其中创build一个文件夹模块 。 在这个文件夹中用代码创build一个名为module.modulemap的文件:
framework module MODULE_NAME_HERE { umbrella header "MODULE_NAME_HERE.h" export * module * { export * } link framework LINKED_FRAMEWORKS_AND_LIBRARIES_THE_POD_NEEDS_HERE link framework "AdSupport" link "c++" link "z" }
重build ,你应该没问题。
在框架module.modulemap文件中添加链接“c ++”为我工作
请更新您的pod文件
platform :ios, '9.0' use_frameworks! target 'CPod' do pod 'AFNetworking', '~> 2.5' pod 'ORStackView', '~> 2.0' pod 'SwiftyJSON', '~> 2.1' end
至
platform :ios, '9.0' use_frameworks! target 'CPod' do pod 'AFNetworking', '~> 2.5' pod 'ORStackView', '~> 2.0' pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' end
因为你使用SwiftyJSON 2.1版本和当前版本是SwiftyJSON 2.3.2。
我目前使用相同的工作正常,我的podfile是
# Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'Sample' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! pod 'Alamofire', '~> 3.4' pod 'SVProgressHUD' pod 'SDWebImage', '~>3.7' pod 'FontAwesome.swift' pod "PagingMenuController" pod 'Moodstocks-iOS-SDK', '~> 4.1.5' pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' target 'SampleTests' do inherit! :search_paths # Pods for testing end target 'SampleUITests' do inherit! :search_paths # Pods for testing end end
为了在Objective-C中使用Swift,你应该导入一个Xcode在编译时自动生成的头文件(NameOfModule + Swift.h)。 在这种情况下,您应该尝试在您的头文件中导入SwifityJSON,如下所示:
#import "SwiftyJSON-Swift.h"