在iOS应用中添加revmob广告时构建错误

时间:2012-10-04 11:50:43

标签: ios xcode 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帮助我。                                                   提前谢谢。

8 个答案:

答案 0 :(得分:39)

您需要添加StoreKit框架

编辑:我现在看到你的意思,旧版本存在问题,我正在添加指向已编辑框架的链接以解决该问题:Edited Revmob Framework

答案 1 :(得分:9)

您必须链接StoreKit.framework

答案 2 :(得分:2)

看起来您现在拥有的广告sdk不包含对模拟器使用的支持。

- RevMobAds中的[RevMobStoreController openStoreWithITunesItemId:](RevMobStoreController.o) ld: 未找到架构i386的符号

如果你得到任何提及"没有找到建筑"意味着revmob不包括在模拟器上运行的类。你有2个选择。找一个丢失的图书馆" .a文件"或者仅编译用于在设备上进行测试。

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

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

答案 3 :(得分:0)

当您在xcode中手动删除文件时,文件不会复制到Bundle。所以“SKStoreProductViewController.m”是未在包中复制的文件,因此发生了错误。解决错误。将文件仅.m文件拖到Copy Bundle Resource,如图像enter image description here

所示

答案 4 :(得分:0)

他们发布了一个新的SDK版本(4.6.0),可以在旧的Xcode版本上完美运行!

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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. 将StoreKit.framwork添加到 - > BuildPhases
  2. ---欠>链接库与库
  3. 如果您有多个目标,则可能需要添加 StoreKit.framwork到两个目标。

答案 7 :(得分:0)

我遇到了类似的问题,经过长时间的搜索和检查样本RevMob代码,我找到了这个解决方案,可能会帮助其他人:

在项目目标下,选择部署下的构建设置,选中 iOS部署目标,将值更改为' iOS 9.0 '或更高。

我希望这有帮助。