我在同一项目的 Xcode 6.0 中集成了 Chartboost,它工作正常,但当我将 Xcode 更新到 Xcode 6.1 时,桥接头文件无法成功编译。
我已经在我的项目中添加了 Chartboost 框架,并添加了指南中提到的这些必需的框架。
StoreKit
基础
核心图形
UIKit
我在桥接头文件中添加了这些行
导入 Chartboost/Chartboost.h
导入 Chartboost/CBNewsfeed.h
导入 CommonCrypto/CommonDigest.h
导入 AdSupport/AdSupport.h
现在,当我尝试构建我的项目时,Xcode 给我带来了很多快速编译器错误。
这是我遇到的错误...
/Users/myprojectBridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:16:42: error: function definition is not allowed here
typedef NS_ENUM(NSUInteger, CBFramework) {
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:33:42: error: function definition is not allowed here
typedef NS_ENUM(NSUInteger, CBLoadError) {
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:62:43: error: function definition is not allowed here
typedef NS_ENUM(NSUInteger, CBClickError) {
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:87:9: error: unknown type name 'NSString'
typedef NSString * const CBLocation;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:135:25: error: cannot find interface declaration for 'NSObject', superclass of 'Chartboost'
@interface Chartboost : NSObject
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:153:25: error: expected a type
+ (void)startWithAppId:(NSString*)appId
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:154:25: error: expected a type
appSignature:(NSString*)appSignature
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:169:4: error: expected a type
+ (BOOL)hasInterstitial:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:198:4: error: expected a type
+ (BOOL)hasMoreApps:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:229:23: error: expected a type
+ (void)showMoreApps:(UIViewController *)viewController
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:244:4: error: expected a type
+ (BOOL)hasRewardedVideo:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:274:25: error: expected a type
+ (void)didPassAgeGate:(BOOL)pass;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:290:4: error: expected a type
+ (BOOL)handleOpenURL:(NSURL *)url
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:290:24: error: expected a type
+ (BOOL)handleOpenURL:(NSURL *)url
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:291:24: error: expected a type
sourceApplication:(NSString *)sourceApplication;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:309:4: error: expected a type
+ (BOOL)handleOpenURL:(NSURL *)url
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:309:24: error: expected a type
+ (BOOL)handleOpenURL:(NSURL *)url
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:310:24: error: expected a type
sourceApplication:(NSString *)sourceApplication
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:322:22: error: expected a type
+ (void)setCustomId:(NSString *)customId;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:333:4: error: expected a type
+ (NSString *)getCustomId;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:344:23: error: expected a type
+ (void)setFramework:(CBFramework)framework;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:358:54: error: expected a type
+ (void)setShouldRequestInterstitialsInFirstSession:(BOOL)shouldRequest;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:370:45: error: expected a type
+ (void)setShouldPauseClickForConfirmation:(BOOL)shouldPause;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:384:49: error: expected a type
+ (void)setShouldDisplayLoadingViewForMoreApps:(BOOL)shouldDisplay;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:396:40: error: expected a type
+ (void)setShouldPrefetchVideoContent:(BOOL)shouldPrefetch;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:446:26: error: expected a type
+ (void)setAutoCacheAds:(BOOL)shouldCache;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:458:4: error: expected a type
+ (BOOL)getAutoCacheAds;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:474:31: error: cannot find protocol declaration for 'NSObject'
@protocol ChartboostDelegate
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:496:4: error: expected a type
- (BOOL)shouldRequestInterstitial:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:513:4: error: expected a type
- (BOOL)shouldDisplayInterstitial:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:551:36: error: expected a type
withError:(CBLoadError)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:565:31: error: expected a type
withError:(CBClickError)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:615:4: error: expected a type
- (BOOL)shouldDisplayMoreApps:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:686:32: error: expected a type
withError:(CBLoadError)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:705:4: error: expected a type
- (BOOL)shouldDisplayRewardedVideo:(CBLocation)location;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:743:37: error: expected a type
withError:(CBLoadError)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:818:30: error: expected a type
withError:(CBLoadError)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:867:4: error: expected a type
- (BOOL)shouldDisplayMoreApps __attribute__((deprecated("As of version 4.5, use shouldDisplayMoreApps:(CBLocation)location")));;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:22:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/Chartboost.h:937:32: error: expected a type
- (void)didFailToLoadMoreApps:(CBLoadError)error __attribute__((deprecated("As of version 4.5, use didFailToLoadMoreApps:(CBLoadError)error forLocation:(CBLocation)location")));
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:24:25: error: cannot find interface declaration for 'NSObject', superclass of 'CBNewsfeed'
@interface CBNewsfeed : NSObject
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:53:4: error: expected a type
+ (NSArray *)getMessages;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:66:26: error: expected a type
+ (CBStory *)getMessage:(NSString *)messageId;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:78:4: error: expected a type
+ (NSUInteger)messageCount;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:89:4: error: expected a type
+ (NSUInteger)unreadMessageCount;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:113:4: error: expected a type
+ (BOOL)isNewsfeedUIVisible;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:139:4: error: expected a type
+ (BOOL)isNotificationUIVisible;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:180:23: error: expected a type
+ (void)setFetchTime:(NSUInteger)fetchTime;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:203:50: error: expected a type
+ (void)setShouldPauseStoryClickForConfirmation:(BOOL)shouldPause;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:216:25: error: expected a type
+ (void)didPassAgeGate:(BOOL)pass;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:232:31: error: cannot find protocol declaration for 'NSObject'
@protocol CBNewsfeedDelegate
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:295:28: error: expected a type
- (void)didGetNewMessages:(NSArray *)messages;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:319:36: error: expected a type
- (void)didFailToRetrieveMessages:(NSError *)error;
^
/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:9: note: in file included from /Users/bewakoofmac/Desktop/myproject/Bridging-Header.h:23:
import
^
/Users/bewakoofmac/Desktop/myproject/Chartboost.framework/Headers/CBNewsfeed.h:340:4: error: expected a type
- (BOOL)shouldAutomaticallyDisplayNotificationUI:(CBStory *)message;
^
:0: error: failed to import bridging header '/Users/bewakoofmac/Desktop/myproject/Bridging-Header.h'
解释:
似乎有些 Pod 和库并不费心导入基本框架,因为它们希望您的代码已经拥有它们。这不适用于 Swift,因为导入框架的方式发生了变化。
您所需要做的就是在桥接头文件中添加所需的框架。
ANSWER:
在您的具体情况下,它正在抱怨NSObject
, NSString
等等...所以你需要添加#import <Foundation/Foundation.h>
在你的桥接头文件中。
就我而言,它抱怨UIView
所以我添加了UIKit
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)