2018年1月11日 星期四

Unity Build Android & iOS遇到的四個Bug


最近遇到幾個Unity Build Failed的問題,
來分享一下我遇到的問題和解法。



狀況一:Build Android apk時會失敗

彈出視窗顯示
"Failed to recompile android resource files"

Console Log則顯示
Failed to compile resources with the following parameters: -bootclasspath
(後面接的是Android SDK路徑)

Unity版本:2017.1.2f1
Unity IAP插件版本:最新。
SDK:我原本以為是SDK太新,試著移除API 27,退回到API 25,但狀況並沒有改變。
NDK:試著更新到最新,沒什麼改變。

最後終於找到關鍵:JDK,
從JDK 9 退回到 JDK 8,問題就解決了。
(我是選擇安裝JDK 8u152)



狀況二:將iOS專案Build為Xcode專案時會失敗

Console Log顯示
"Failed running /Applications/Unity/Unity.app/Contents/il2cpp/build/UnityLinker.exe --api=NET_2_0_Subset"

解決辦法:Services > Unity IAP >  Reimport




狀況三:Xcode專案匯出ipa檔時會失敗


從Log中可以看出,問題可能在於UnityAdsUnityWrapper,
最後找到原因:新版本的Unity Ads已經不需要從Asset Store安裝插件包了,
只要從Services > Unity Ads開啟即可。

舊的Ads插件包就必須刪除,否則在Xcode中會有重複的文件而出錯。
請將Assets/UnityAds資料夾,
及Assets/Plugins/下的iOS、Android資料夾都刪除即可。
(如果裡面有其他非Unity Ads的檔案,請自行注意是否要留)

Unity 2017.1.2f1:仍必須從Unity Asset Store下載安裝Unity Ads

Unity 2017.3.0f3:不需下載安裝,而且舊的插件包必須刪除。
但是會有另一個嚴重問題!如下。



狀況四:Unity的iOS App Crash

我的測試裝置:iPhone 6

這真是非常恐怖的S級Bug,還好測試時有檢查到。

文中發生狀況的版本包括2017.3.0f3、2017.3.0f2、2017.1.2p4,
而我將Unity退回到2017.1.2f1版是沒問題的
(仍需從Asset Store安裝Unity Ads Package),
所以就這樣解決了。





沒有留言:

張貼留言