呼叫起飞时,Urban Airship坠毁
使用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”时似乎没有出现这种AirshipConfig.plist
,这有意义,因为调用takeOff:填充UAirShip的实例。 这似乎是由于NSJSONSerialization+UAAdditions
类别。
对此有何帮助? 谢谢
要解决此问题,必须在项目构建设置中的“其他链接器标志”中包含“-ObjC”标志。
UAirship库3.x现在使用Objective-C类别,因此必须设置此标志以避免运行时exception。
有关该问题的详细信息,请访问:
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
不与源发生联系: https : //github.com/urbanairship/ios-library
您必须包含两个库:
- libUAirship-3.0.0.a
- libUAirship-iOS5-3.0.0.a
您必须为相应的iOS使用任一库
在查看了不同的解决方案之后,事实certificate这解决了这个问题:
•将来自https://github.com/urbanairship/ios-library的资源直接下载到您的App文件夹中(不要在其网站上提供.zip)
•将Airship文件夹拖放到项目中(不要使用AirshipLib文件夹)
• 不要链接任何libUAirship-3.0.0.a
或libUAirship-iOS5-3.0.0.a
•繁荣。 它的工作原理。
希望它能帮助其他一些人寻求解决这个问题多年。
只是添加,我的问题是我在project
添加了-ObjC
标志,它应该添加到target
设置中。
此外,如果不编译,还有另一种选择
-Wl,-force_load,/libUAirship-4.0.0.a
也应该添加到目标。 填写lib的实际路径而不是
。