在iOS应用中添加revmob广告时出现错误

我想添加RevMob添加在我的应用程序,但有一些错误

Undefined symbols for architecture i386: "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: objc-class-ref in RevMobAds(RevMobStoreController.o) "_SKStoreProductParameterITunesItemIdentifier", referenced from: -[RevMobStoreController openStoreWithITunesItemId:] in RevMobAds(RevMobStoreController.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我已经添加了StoreKitSystemConfigurationRevMob框架。 我正在使用Xcode4.3和ios4.2 Plz帮助我。 提前致谢。

您需要添加StoreKit框架

编辑:我现在看到你的意思,有一个旧版本的问题,我添加一个编辑的框架,以解决这个问题的链接: 编辑Revmob框​​架

您必须链接到StoreKit.framework

它看起来像你现在的广告SDK不包括使用模拟器的支持。

RevMobAds(RevMobStoreController.o)中的[RevMobStoreController openStoreWithITunesItemId:] ld: 符号(s)not found for architecture i386

如果你得到任何提到“没有findbuild筑”意味着revmob没有包括在模拟器上运行的类。 你有2个select。 寻找一个缺less的库“.a文件”或只编译在设备上进行testing。

我遇到了一个新的ios6,其中revmob不支持新的iphone 5 armv7s架构的问题。

仔细检查您的revmob安装或尝试编译到您的手机,而不是模拟器

当您在xcode中手动删除文件时,文件不会被复制到Bundle中。 所以“SKStoreProductViewController.m”是没有被复制到文件夹中的文件,所以发生错误。 解决错误。 将文件仅.m文件拖到Copy Bundle Resource ,如图所示 在这里输入图像说明

如果您从项目中移除文件并重新创build文件,也会发生此错误。 有时Xcode不会自动将其重新包含在“编译源代码”框中(当您单击目标时)。 选中该框,查看是否包含所有源文件,如果没有,则将其拖入并重build。

他们发布了一个新的SDK版本(4.6.0),完全适用于旧的Xcode版本!

Appirater也会发生这种情况。 我得到这个消息:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: objc-class-ref in Appirater.o "_SKStoreProductParameterITunesItemIdentifier", referenced from: +[Appirater rateApp] in Appirater.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

– -修理 – –

  1. 在 – > BuildPhases中添加StoreKit.framwork
  2. —下 – >与库链接库
  3. 如果您有多个目标,则可能需要将StoreKit.framwork添加到两个目标。

我面临类似的问题,经过漫长的search和检查样本RevMob代码,我发现这个解决scheme,可能会帮助别人:

在项目目标下,select“ 生成设置” ,在“ 部署 下,选中“ iOS部署目标” ,将值更改为“ iOS 9.0 ”或更高。

我希望这个帮助。