代码之家  ›  专栏  ›  技术社区  ›  Jason LAPIERRE

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

  •  8
  • Jason LAPIERRE  · 技术社区  · 11 年前

    使用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 ,这与调用takeOff一样有意义:填充UAirShip的实例。 这似乎是由于类别 NSJSONSerialization+UAAdditions .

    这件事有什么帮助吗? 谢谢

    5 回复  |  直到 11 年前
        1
  •  16
  •   ralepinski    11 年前

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

    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

        2
  •  0
  •   OscarVGG    11 年前
        3
  •  0
  •   Akki    11 年前

    您必须同时包含以下两个库:

    • libU首版-3.0.0.a
    • libUAirship-iOS5-3.0.0.a

    您必须为各自的iOS使用其中一个库

        4
  •  0
  •   Jason LAPIERRE    11 年前

    在研究了不同的解决方案后,发现这解决了问题:

    从下载源 https://github.com/urbanairship/ios-library 直接进入你的应用程序文件夹(不要使用他们网站上提供的.zip)

    拖动&将Airship文件夹放入您的项目中(不要使用AirshipLib文件夹)

    不要 链接任何 libUAirship-3.0.0.a libUAirship-iOS5-3.0.0.a

    繁荣它在起作用。

    希望它能帮助其他人解决这个问题。

        5
  •  0
  •   Lena Bru    10 年前

    只是补充一下,我的问题是 -ObjC 标志到 project ,并且应该将其添加到 target 设置。

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

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

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