Tag Archives: Mobile

[iOS] Thread SIGABRT 的雷

這兩天想說把 iOS 的 App 拿起來用新版本的 XCode 跑一次,更新過的 XCode 不知道有沒有改進一些 UI 操作上的小問題,所以就把 Project 開起來。

開起來之後歷經一番奮鬥,原本的舊 Project 當然是問題多多啦,先是 cocoapods 那邊更新就花上不少時間,接著再解掉一些 Swift 5 特有的問題與 Warning,最終讓我 Build 出一個可以跑在模擬器上的版本。

很開心的按下 Run 的三角形,等著 App 在模擬器上跑出來,終於,見到大大的模擬器上順利的把 App Run 起來,操作了一下,阿咧,直接就當掉了。

畫面上是停在 SIGABRT ,看看前後,好像也沒啥問題,一開始真的是找不到方向。

後來找了幾篇文章,有提到說可以把 Console 打開來看一下,有一些 Exception 會把錯誤訊息輸出到 Console 上,果不其然,直接就發現問題是出在 Google Admob SDK 上,新版本的必須要多一個設定,不然 App 開起來沒多久就會自己掛掉,沒辦法再 Run。

官方的說明在此:https://developers.google.com/ad-manager/mobile-ads-sdk/ios/quick-start#update_your_infoplist

實在是原本的那個 SIGABRT 過於籠統,看不出來問題在哪。找好久,結果依照人家官方文件指示,乖乖的把 info.plist 裡面該放上的欄位數值設定上去之後,賓果!就可以順利跑起來沒有問題了。

關鍵是這個:

<key>GADIsAdManagerApp</key>
<true/>

在 info.plist 加上這個 property 就可以讓 Google Admob SDK 順利運作。

過程有點慘烈,所以留篇文章記錄一下,如果有遇到類似狀況的朋友,請直接參考上面的那個連結,看看你的 info.plist 是不是少了那個欄位,加上去之後就可以了。

這故事告訴我們,沒事還是要把 XCode 開起來更新 Project 的相關版本,太久沒動要踩的地雷就會變多。