为 OS 3.1.3 编译 iphone

Posted

技术标签:

【中文标题】为 OS 3.1.3 编译 iphone【英文标题】:Compiling iphone for OS 3.1.3 【发布时间】:2010-12-26 09:01:02 【问题描述】:

我目前正在使用 XCode 3.2.4 和 OS 4.2 它运行顺利,但现在我想让我的应用程序在早期版本 3.1.3 上运行,但是 这些错误不断出现。

___restore_vfp_d8_d15_regs", referenced from:
  +[FontManager sharedManager] in libcocos2d libraries.a(FontManager.o)
  -[ZAttributedString enumerateAttribute:inRange:options:usingBlock:] in libcocos2d libraries.a(ZAttributedString.o)
  +[CDAudioManager alloc] in libcocos2d libraries.a(CDAudioManager.o)
  +[CDAudioManager initAsynchronously:channelGroupDefinitions:channelGroupTotal:] in libcocos2d libraries.a(CDAudioManager.o)
  +[CDAudioManager sharedManager] in libcocos2d libraries.a(CDAudioManager.o)
  -[CDSoundEngine loadBuffersAsynchronously:] in libcocos2d libraries.a(CocosDenshion.o)
  +[SimpleAudioEngine alloc] in libcocos2d libraries.a(SimpleAudioEngine.o)
  +[SimpleAudioEngine sharedEngine] in libcocos2d libraries.a(SimpleAudioEngine.o)
  +[CCTouchDispatcher allocWithZone:] in libcocos2d libraries.a(CCTouchDispatcher.o)
  +[CCTouchDispatcher sharedDispatcher] in libcocos2d libraries.a(CCTouchDispatcher.o)

___save_vfp_d8_d15_regs", referenced from:

我将 ios 目标更改为 iOS 3.0。 它适用于模拟器,但不适用于设备(​​以上错误)。

这里有什么问题?

【问题讨论】:

【参考方案1】:

-[ZAttributedString enumerateAttribute:inRange:options:usingBlock:] in libcocos2d libraries.a(ZAttributedString.o) 显示此方法调用使用了块,iOS 3 不支持该块。块仅在 iOS 4.0 中引入。

Cocos2D 网站甚至告诉您至少应该使用 iOS SDK 4.1。如果您使用以前的版本,您可能会很幸运,如果您不使用以后介绍的任何技术,您的代码可能会工作,但不能保证您的应用程序会运行。

【讨论】:

所以如果我要将我的应用发布到商店。我必须将其指定为 iOS 4.1 及更高版本吗? 您可以尝试使用 iOS 4.0 作为部署目标。至少块会起作用。我不太确定还有哪些功能特别需要 4.1,但 4.0 和 4.1 之间的差异远远小于 3.0 和 4.0 之间的差异。试试看。如果它编译为 4.0,那么你很高兴。如果没有,请使用 4.1 并且您是安全的。

以上是关于为 OS 3.1.3 编译 iphone的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OS/X 的编译时确定编译标志?

为 Mac OS X 编译 libjingle/gtk+-2.0 的问题

使用 Xcode 4.2 为 iOS 3.1.3 编译

使用 GD 为 iPhone OS 4.1 编译 PHP [关闭]

如何为不同的 OS/Python 版本编译 Python C/C++ 扩展?

python基础 random os模块