Iphone 如何添加以下额外的链接器标志?

Iphone 如何添加以下额外的链接器标志?,iphone,objective-c,cocoa-touch,xcode,linker,Iphone,Objective C,Cocoa Touch,Xcode,Linker,编辑: 即使在链接:cl.ly/c69ca3f8a336d7e41256之后,我仍然得到相同的构建错误 双击Xcode中的目标或应用程序以打开信息窗口 切换到“构建”选项卡 将“-weak_framework UIKit-weak_library/usr/lib/libSystem.B.dylib”添加到“其他链接器标志”(在“链接”下) 不确定是什么导致生成问题。但是NSConcreteGlobalBlock和UIBackgroundTaskInvalid让我觉得你在使用后台处理的应用程序中遇

编辑:
即使在链接:cl.ly/c69ca3f8a336d7e41256之后,我仍然得到相同的构建错误
  • 双击Xcode中的目标或应用程序以打开信息窗口

  • 切换到“构建”选项卡

  • 将“-weak_framework UIKit-weak_library/usr/lib/libSystem.B.dylib”添加到“其他链接器标志”(在“链接”下)


  • 不确定是什么导致生成问题。但是NSConcreteGlobalBlock和UIBackgroundTaskInvalid让我觉得你在使用后台处理的应用程序中遇到了问题,仍然需要在3.x上运行

    就我个人而言,我从未见过这些问题,当然也从未见过弱链接UIKit或libSystem。即使是在3.x上运行良好、支持4.0功能(如块和背景音频)的应用程序中,我也不需要建议的修复


    实现这一点的一般规则是:不要在可能在3.x上执行的代码中使用块。因此,只在-(void)applicationidenterbackground:(UIApplication*)应用程序中启动背景。此委托方法在3.x协议中不存在,因此不会被调用。如果在3.x上调用的方法中使用块,将导致崩溃。

    您可能已经这样做了,但是您是否在构建设置中将iOS部署目标切换到3.2,将基本SDK切换到4.x?如果您同时设置了这两个选项并添加了链接器标志,那么我无法解释为什么会出现生成错误。

    即使在链接之后,我仍然会遇到相同的生成错误:仅供参考:不使用块也无法支持打印。所以,如果你想打印,你需要支持回到3.x,你显然有这个问题。
    To support OS 3.x, please set Base SDK to iPhone Device 4.0 and iPhone OS Deployment Target to iPhone OS 3.x. Extra linker flags may be needed if NSConcreteGlobalBlock and UIBackgroundTaskInvalid runtime error occur under 3.x.
    The linker flags are:
    -weak_framework UIKit
    -weak_library /usr/lib/libSystem.B.dylib