18

我有一个干净的 swift 项目,使用了一些 cocoapods:Parse、AFNetworking 和 RESideMenu。我需要使用STZPopupView pod,所以我用最新版本更新了 cocoapods:

gem install cocoapods

然后我为我的项目重新启动它:

pod install

因为这个错误:

[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it.

我更新了我的 podfile,添加了“use_frameworks!”

我的 podfile 现在是:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
use_frameworks!

source 'https://github.com/CocoaPods/Specs.git'

target 'isam' do
pod 'RESideMenu', '~> 4.0.7'
pod 'AFNetworking', '~> 2.5'
pod 'Parse', '~> 1.6'
pod 'STZPopupView', '~> 1.0'
end

target 'isamTests' do

end

因为,我在构建时有 2 个错误:

  • 未找到“RESideMenu.h”文件
  • 无法导入桥接头“..../isam/Swift-Bridging-Header.h”

我没有更改项目中的任何其他内容。

我的 Swift-Bridging-Header.h 没有改变:

#ifndef isam_Swift_Bridging_Header_h
#define isam_Swift_Bridging_Header_h

#import <Parse/Parse.h>
#import <RESideMenu.h>

#endif

在我的构建设置中,我有:

构建设置

我认为这是因为“use_frameworks!” 在我的 podfile 中,但我不知道如何使用我的所有 pod 来正确构建我的应用程序。

编辑 :

确切的错误是:

/path_of_my_project/Swift-Bridging-Header.h:12:9: error: 'RESideMenu.h' file not found
#import <RESideMenu.h>
        ^
<unknown>:0: error: failed to import bridging header '/path_of_my_project/Swift-Bridging-Header.h'
4

3 回答 3

16

我实际上遇到了同样的问题。你可以试试这个: http: //www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html

使用 use_frameworks 时!在 CocoaPods 中,所有的 pod 都将用作框架,而不仅仅是 swift pod。所以你不需要一个桥接头。只需将您的 pod 导入您需要的所有 swift 文件中。在您的示例中,您必须编写: import RESideMenu

于 2015-07-15T07:32:50.703 回答
2

尝试从 Objective-C 桥接头中删除 isam/ 并且只有 Swift-Bridging-Header.h

从个人经验来看,CocoaPods 在结合 swift 和 Objective C 框架时仍然存在一些问题。您可以使用几乎等同于 AFNetworking 的 Alamofire 进行 swift。

希望这可以帮助。

编辑:当您可以直接使用 swift 库时,为什么还要在 swift 中使用 Objectice-C Parse。

于 2015-07-07T20:57:36.573 回答
1

我遇到过同样的问题。例如,我将所有导入从#import "RESideMenu.h"更改#import <RESideMenu/RESideMenu.h>为。

于 2016-02-12T16:37:08.747 回答