2014-11-24 29 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

相關問題