ios 城市飞艇在呼叫起飞时坠毁

sd2nnvve  于 12个月前  发布在  iOS
关注(0)|答案(6)|浏览(122)

使用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
有人能帮忙吗?谢谢

nbysray5

nbysray51#

若要解决此问题,您必须在项目构建设置中的“其他链接器标志”中包含“-ObjC”标志。
UAirship library 3.x现在使用了C2C-C类别,因此必须设置此标志以避免运行时异常。
关于这个问题的详细信息可以在这里找到:
https://developer.apple.com/library/mac/qa/qa1490/_index.html
更新文档:
http://docs.urbanairship.com/build/ios.html#build-settingshttp://docs.urbanairship.com/topic_guides/ios_migration.html#linker-flags

1u4esq0p

1u4esq0p3#

您必须包含两个库:

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

您必须使用各自的iOS库中的任何一个

ygya80vv

ygya80vv4#

在查看不同的解决方案后,事实证明这解决了问题:
·从https://github.com/urbanairship/ios-library直接下载源代码到您的应用程序文件夹(不要使用其网站上提供的.zip)
·拖放项目中的Airship文件夹(不要使用AirshipLib文件夹)
·不要链接任何libUAirship-3.0.0.alibUAirship-iOS5-3.0.0.a
·嘣,成功了。
希望它能帮助其他一些人在那里寻找解决这个问题的年龄。

djmepvbi

djmepvbi5#

只是为了补充,我的问题是,我添加了-ObjC标志到project,它应该添加到target设置。
此外,如果这不能编译,还有另一个选择

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

也应该添加到目标中。填充指向库的真实的路径,而不是<PathToYourLib>

bejyjqdl

bejyjqdl6#

如果您使用cocoapodsXcode 15,请在您的Podfile中添加/更新此内容,

platform :ios, '12.0'

相关问题