2014-11-24 42 views
3

我的应用程序可以正常使用Cordova iOS 3.6.3。但是,如果iOS 3.7.0出现错误,应用程序无法启动。这是我在日志中看到在模拟器中唯一信息:Cordova iOS 3.7.0问题 - [__NSCFString JSONObject]:无法识别的选择器

2014-11-23 23:55:21.149 App[68461:5278465] -[__NSCFString JSONObject]: unrecognized selector sent to instance 0x122db42b0 
2014-11-23 23:55:21.151 App 68461:5278465] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> -[__NSCFString JSONObject]: unrecognized selector sent to instance 0x122db42b0 
2014-11-23 23:55:21.176 App[68461:5278465] -[__NSCFString JSONObject]: unrecognized selector sent to instance 0x122db4278 
2014-11-23 23:55:21.176 App 68461:5278465] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> -[__NSCFString JSONObject]: unrecognized selector sent to instance 0x122db4278 

感谢,

+0

该项目是否有正确的cordova.js(3.7.0)文件?你是如何从3.6.3更新到3.7的? – 2014-11-25 17:42:46

+0

它的确有正确的cordova.js。在我的情况下,这个问题与需要Facebook SDK的parse.com插件有关。我能够在以前的版本中删除-ObjC。现在要做的是打破3.7.0中可能需要的其他库。我已经添加了Facebook SDK来解决这个问题。 – archman 2014-12-02 23:01:34

回答

21

这是一个问题,如果你删除-ObjC链接器开关。 libCordova.a库在NSString上指定了一些类别,如果删除了-ObjC,它将不会被加载。

一个解决办法是从链接中删除框架和libCordova.a这添加到其它链接器标记构建设置:

-force_load $(BUILT_PRODUCTS_DIR)/libCordova.a

这将导致libCordova所有符号(包括类别)。在关闭-ObjC的同时加载一个。

+0

它像一个魅力:) – micmia 2015-05-27 20:08:33

相关问题