我想在我的应用中添加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)
我已经添加了StoreKit
,SystemConfiguration
和RevMob
框架。
我正在使用Xcode4.3和ios4.2
Plz帮助我。
提前谢谢。
答案 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
,如图像
答案 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)
---要修复---
答案 7 :(得分:0)
我遇到了类似的问题,经过长时间的搜索和检查样本RevMob代码,我找到了这个解决方案,可能会帮助其他人:
在项目目标下,选择部署下的构建设置,选中 iOS部署目标,将值更改为' iOS 9.0 '或更高。
我希望这有帮助。