呼叫起飞时,Urban Airship坠毁

时间:2013-09-19 14:12:34

标签: ios objective-c ios7 urbanairship.com nsjsonserialization

使用Xcode 5.0升级到UrbanAirship 3.0.0,调用此代码时收到错误:

[UAirship takeOff:config];

错误是

+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc
2013-09-19 15:02:31.981 [178:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc'

AirshipConfig.plist中将“inProduction”键设置为“YES”时似乎没有出现,这有意义,因为调用takeOff:填充UAirShip的实例。 这似乎是由于NSJSONSerialization+UAAdditions类别。

对此有任何帮助吗? 感谢

5 个答案:

答案 0 :(得分:16)

要解决此问题,必须在项目构建设置中的“其他链接器标志”中包含“-ObjC”标志。

UAirship库3.x现在使用Objective-C类别,因此必须设置此标志以避免运行时异常。

有关此问题的详细信息,请访问:

https://developer.apple.com/library/mac/qa/qa1490/_index.html

更新了文档:

http://docs.urbanairship.com/build/ios.html#build-settings http://docs.urbanairship.com/topic_guides/ios_migration.html#linker-flags

答案 1 :(得分:0)

来源似乎没有发生:https://github.com/urbanairship/ios-library

答案 2 :(得分:0)

您必须包含两个库:

  • libUAirship-3.0.0.a
  • libUAirship-iOS5-3.0.0.a

您必须为各自的iOS

使用任一库

答案 3 :(得分:0)

在查看不同的解决方案之后,事实证明这解决了这个问题:

•将来自https://github.com/urbanairship/ios-library的资源直接下载到您的App文件夹中(不要在其网站上提供.zip)

•拖动&删除项目中的Airship文件夹(不要使用AirshipLib文件夹)

不要关联libUAirship-3.0.0.alibUAirship-iOS5-3.0.0.a

中的任何一个

•繁荣。它正在发挥作用。

希望它能帮助那些寻求解决这个问题的其他人。

答案 4 :(得分:0)

只是要添加,我的问题是我向-ObjC添加了project标记,并且应该将其添加到target设置中。

另外,如果没有编译,还有另一个选项

-Wl,-force_load,<PathToYourLib>/libUAirship-4.0.0.a    

也应该添加到目标。填写您的lib的真实路径,而不是<PathToYourLib>