在Swift项目

时间:2017-06-21 15:22:33

标签: objective-c swift cocoapods

我将一个Objective C pod安装到我的swift 3项目中。我在Podfile中包含“use_frameworks”,因此我不需要在我的桥接头中添加任何内容。

问题是当我包含一个(第三方)生成的ObjectiveC文件尝试#import来自pod的标题时 - 它失败并且找不到“'[xxxxx] .h'文件”

ObjectiveC #import" GTLRObject.h"语句原因"未找到GTLRObject.h文件"错误。

我的Podfile:

target 'myHelloWorld' do
 # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
 use_frameworks!
 pod 'GoogleAPIClientForREST'
end

桥接标题。我需要为生成的ObjectiveC类包含头文件,以便我可以在我的swift代码中使用它:

#import "GTLREcho.h"

GTLREcho.h:

// NOTE: This file was generated by the ServiceGenerator.

// ----------------------------------------------------------------------------
// API:
//   echo/v1
// Description:
//   This is an API

#import "GTLREchoObjects.h"
#import "GTLREchoQuery.h"
#import "GTLREchoService.h"

错误发生在GTLREchoObjects.h中。 #import" GTLRObject.h" = "' GTLRObject.h'文件未找到"

#if GTLR_BUILT_AS_FRAMEWORK
   #import "GTLR/GTLRObject.h"
#else
   #import "GTLRObject.h"
#endif

如果我尝试从swift文件中引用GTLRObject,我就不会收到任何错误,例如

import Foundation
import GoogleAPIClientForREST

class ControllerHello: NSObject {

func sayHello(strTest: String){
    let gtlObject = GTLRObject
    }
}

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:4)

因为这个答案可能对其他人有用。

使用GoogleAPIClientForREST时:

打开TARGETS> App> Build Settings

对于User Header Search Paths添加Pods并选择recursive

enter image description here