1

我在项目中使用Xcode 3.2.1,其中Base SDK 是 iPhone Device 3.0iPhone OS Deployment Target 是 iPhone OS 2.0,换句话说,一个向后兼容的应用程序。

问题是MapKit 框架。它被添加为弱链接库,但该应用程序只是不链接“设备 - 2.2.1”目标。我的想法已经用完了......除了将库标记为“弱”链接之外,我还能做什么?它以前可以正常工作,但现在不行了。

这是命令行的一部分,对我来说看起来很好:

-framework Foundation -framework UIKit -framework CoreGraphics
 -weak_framework CoreLocation -weak_framework MapKit

错误提示:

ld: framework not found MapKit
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.0 failed with exit code 1
4

3 回答 3

1

要在 2.2.1 上运行您的应用程序,您无需在该菜单中选择 2.2.1,只需将“Active SDK”设置为 3.0 或更高版本即可。

于 2009-12-16T17:47:17.177 回答
1

试试 Apple 的MailComposer示例项目,它使用 MessageUI 框架做类似的事情。您可能需要做的是将 Base SDK 设置为 2.2.1 而不是 2.0。

于 2009-12-17T05:20:39.027 回答
1

只是为了澄清问题和解决方案:

问题:我想创建一个向后兼容的应用程序,它可以在 iPhone OS 2.x 和 3.x 设备上运行。如果可用,它将使用 3.x 特定功能,例如 MapKit。

解决方案:“Base SDK as iPhone Device 3.0”“iPhone OS Deployment Target as iPhone OS 2.0”设置为。连接您的 iPhone OS 2.x 设备(我的是 iPod Touch,我拒绝升级到最新可用的 iPod 软件版本)并在左上角选择目标作为“设备 - 3.0” - 即使您连接的设备不兼容 3.0完全没有!!!

相当混乱,一开始看起来完全不合逻辑,但这就是它的工作方式!

于 2009-12-17T07:23:10.760 回答