*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the k


問題描述:

  ionic項目,windows下正常,打包android可正常運行;

  因為需要打包到iPhone (ios 11.0.1)上測試,將代碼拿到Mac OS環境下(重新npm install、platform add ios等)測試的時候,

  build ios正常、ionic serve正常,但是打包運行到iPhone上的時候,出現應用crash閃退的問題。

  打開XCode連接設備,調試發現具體的錯誤信息如下:

   

  工程本身編譯是沒有問題的,可以編譯成功:

 

問題排查:

  開始懷疑是項目代碼的問題,或者使用了不支持ios的插件,但是逐一排查后問題並沒有消除;

  后來懷疑是ionic工程本身的原因,於是重新創建ionic工程,在不添加plugins之前,一切OK;

  但是在添加完我需要的Background Mode和Local Notifications之后,問題就出現了。

  所以,問題可以定位到Background Mode或者是Local Notifications身上了。

  中間排查過程不贅述,直接介紹如何解決。

 

解決辦法:

  問題是由於Background Mode插件在ios下的一個bug所致:

  在IOS升級到11版本之后,KeyName由_requiresUserActionForMediaPlayback變更成requiresUserActionForMediaPlayback。

  修改辦法如下:

  

  按圖所示修改插件代碼,並保存。

  注意保存的時候,因為文件權限的問題,需要使用iTerm修改一下文件夾權限,如圖:

 

  重新編譯,安裝到手機,問題解決,應用可以正常運行:

 

  並且可以正常測試消息推送:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM