iphone - 为 iOS4.3 和 iOS5.0 构建问题

标签 iphone objective-c ios xcode ios5

我在尝试将一些特定于 iOS5 的库合并到同时针对 iOS5 和 iOS4.3 的应用程序时遇到了问题。我已经完成了以下步骤:

  • 通过在“Link Binary with Libraries”中将其设置为可选来弱链接 Twitter 框架

  • 使用`-framework Twitter.framework' 在其他链接器标志中将其添加为 iOS5.0 SDK 的框架

  • 在类头中有条件地链接框架:

    #if defined(__IPHONE_5_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0
    #import <Twitter/Twitter.h>
    #import <Accounts/Accounts.h>
    #endif
    
  • 然后在方法本身中,我会检查用户是否设置了 Twitter:

    if ([TWTweetComposeViewController class]) {
        self.canTweet = [TWTweetComposeViewController canSendTweet];
    }
    

这在 5.0 和 4.3 模拟器上都能很好地工作。但是,我在让它在实际设备上运行或存档时遇到了问题。

当我连接了运行 5.0 的 3GS 或运行 5.0 的 4 时,两者都在方案下拉列表中出现两次。选择最上面的一个,并尝试构建或运行项目失败,并出现 Use of unidentified identifier 'TWTweetComposeViewController' 错误。

使用第二个设备条目,构建失败并出现 ld: framework not found Twitter.framework 错误。

我确定这里缺少某些东西,但我很困惑。任何人都可以建议吗?

最佳答案

如果您使用的是一周链接,那么您必须首先检查 API 的可用性,使用 NSClassFromString、respondsToSelector、instancesRespondToSelector 等。 所以,改变你的 if 条件。首先尝试使用上面指定的运行时函数获取类对象。
这是一个链接,详细说明了如何执行此操作。 link

关于iphone - 为 iOS4.3 和 iOS5.0 构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778104/

相关文章:

php - stream_socket_client() : unable to connect to ssl://gateway. sandbox.push.apple.com:2195(连接被拒绝)

objective-c - 从另一个 View Controller 修改 View Controller 的属性

ios - 如何使用目标使用相同的代码库启动多个应用程序?

iphone - UIScrollView contentOffsets 是绝对的吗?

ios - 如何像优步一样在 iOS 中以编程方式进行匿名电话调用

iphone - 具有动态内容的自定义 UITableViewCell

ios - Swift Realm 使用数组过滤 List 属性

objective-c:类内部的方法调用是否仍然使用选择器或纯调用?

objective-c - 如何添加 Youtube 视频

android - 在所有屏幕上 react native 抽屉导航器显示