16

我想在我的应用程序中添加 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)

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

4

8 回答 8

39

您需要添加 StoreKit 框架

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

于 2012-10-25T15:11:39.740 回答
10

您必须链接到 StoreKit.framework

于 2012-10-18T20:38:17.650 回答
2

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

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

如果您收到任何提及“未找到架构”的内容,则意味着 revmob 不包含在模拟器上运行的类。你有2个选择。查找缺少的库“.a 文件”或仅编译用于在设备上进行测试。

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

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

于 2012-10-09T17:53:27.353 回答
0

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

于 2012-10-04T11:56:04.297 回答
0

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

于 2012-10-09T17:39:11.810 回答
0

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

于 2012-10-11T07:38:42.140 回答
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. 在 --> BuildPhases 中添加 StoreKit.framwork
  2. ---Under-> Link Libraries with Libraries
  3. 如果您有多个目标,您可能需要将 StoreKit.framwork 添加到两个目标。
于 2014-06-22T14:09:06.947 回答
0

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

在 project target 下,选择Build Settings,在Deployment下,选中iOS Deployment Target,将值更改为 ' iOS 9.0 ' 或更高版本。

我希望这会有所帮助。

于 2017-10-15T21:31:53.733 回答