在RestKit(iOS)中使用force_load链接器标志

时间:2012-06-28 23:25:54

标签: ios xcode facebook amazon-web-services restkit

我正在使用Facebook iOS SDK,AWS iOS SDK和RestKit。为了让Facebook和AWS玩得很好(有重复的符号),我不得不将其他链接器标志更改为-force_load facebook-ios-sdk/lib/facebook-ios-sdk/libfacebook_ios_sdk.a。现在,当我运行我的应用程序时,我收到了与RestKit相关的错误:

  

2012-06-28 15:55:15.336 MyApp [1640:707] - [__ NSCFString isIPAddress]:无法识别的选择器发送到实例0x35f440

     

2012-06-28 15:55:15.338 MyApp [1640:707] * 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFString isIPAddress]:发送到无法识别的选择器实例0x35f440'

我无法使用-ObjCall-load链接器标记,因为这会阻止我使用Facebook和AWS构建。

有谁知道我应该如何设置我的链接器标志,以便我可以一起使用所有3(FB,AWS,RestKit)?谢谢!

3 个答案:

答案 0 :(得分:14)

Chyeahh!我想到了。标志应设置为

-force_load facebook-ios-sdk/lib/facebook-ios-sdk/libfacebook_ios_sdk.a -force_load $(BUILT_PRODUCTS_DIR)/libRestKit.a

答案 1 :(得分:5)

使用适用于iOS的新Facebook SDK 3.0,链接器标志与之前的回答略有不同。我不得不说:

-force_load /path/to/FacebookSDK/FacebookSDK.framework/FacebookSDK -force_load $(BUILT_PRODUCTS_DIR)/libRestKit.a

答案 2 :(得分:0)

我过去一直在努力解决这个问题。可可豆荚似乎在这里简化了一些事情。我的路径看起来像这样,我可以成功构建:

-ObjC -l"Pods-AFNetworking" -l"Pods-AWSiOSSDKv2" -l"Pods-FMDB" -l"Pods-GZIP" -l"Pods-ISO8601DateFormatterValueTransformer" -l"Pods-Mantle" -l"Pods-RKValueTransformers" -l"Pods-Reachability" -l"Pods-RestKit" -l"Pods-SOCKit" -l"Pods-STTwitter" -l"Pods-SWRevealViewController" -l"Pods-TMCache" -l"Pods-TransitionKit" -l"Pods-UICKeyChainStore" -l"Pods-XMLDictionary" -l"sqlite3" -l"z" -framework "Accounts" -framework "CFNetwork" -framework "CoreData" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "Twitter" -framework "UIKit" -weak_framework "Social" -weak_framework "UIKit"

请注意,为了消除重复的符号,我必须删除引用Bolt的链接引用...

-l"Pods-Bolts"

被拿走了。我想因为Facebook已经以某种方式包含它......