Bug螺旋
經常在各種開發工具和發布系統間切換的朋友估計會深有體會,平時工作一切正常的系統,就因為一個非常規操作,或者一個版本更新,導致連鎖崩壞,平時不會出現的問題接二連三的出現。
最近就遇到了這樣一個bug螺旋,橫跨多天,耗費了好幾個小時才最終解決。
然而一切的起因,是新iPhoneX的發布...
我們的一個小遊戲被要求做iPhoneX適配。
iPhoneX那個齊劉海,大背頭,如果說不是Apple搞出來噁心開發者的,我都不信。
但是發行商的要求還是應該尊重一下,畢竟我們也希望能繼續拿推薦。
問題是提前適配是拿不到實體機的,只能用Xcode9提供的模擬器調試。
下面這個悲劇的bug螺旋就要開始了。
因為要用iPhoneX模擬器,所以需要在unity輸出的時候,要切換成simulator版本。
但是我們集成了發行商的sdk,這個坑爹sdk要我們自己寫unity封裝不說,還沒有x86版本,不能在模擬器里運行。
發行商說他們後面會更新修復這個問題,但是希望我們能先處理一下,因為預計的更新時間有點來不及了。(當然,直到最後發行商sdk更新了,仍然沒x86版本,所以...)
為了趕時間,只能開個分支把發行商的sdk刪掉,然後再輸出simulator版本。
輸出之後,發現Xcode 9.0的模擬器有一個致命bug,simulator會用軟體模擬來跑所有的shader,硬體加速被迷之關掉了,導致遊戲被卡在1 fps的速度...
一幀一幀跑肯定沒法debug,所以又更新了Xcode 9.1beta2
總算是可以正常運行了,但是unity自動給多餘屏幕空間添加了黑邊,並不能充分利用iPhoneX的屏幕。
搜了一下,原來是unity 5.6.2p4這個版本還不支持新iPhoneX。需要等新的Unity更新。
等了一個禮拜,更新了 5.6.4p1,重新在模擬器里運行,發現居然還是有黑邊。
又仔細看了一遍Unity關於iPhoneX適配的一個論壇帖子,發現在發布的時候有一個splash screen的選項,不能設置成none,如果是none的話,就不會充分佔用屏幕。
修改之後,再跑simulator,總算是去掉了黑邊...
UI適配之後,用Xcode 9.1beta2打包上傳。
在發布的時候itunes connect後台說不能用beta版本的Xcode打包...
只能用Xcode 9再次打包。
這過程中,還因為unity還不能自動輸出iOS 11新要求的那個1024x1024的appstore圖標,導致忘記手工拖進去,反覆打包了好幾遍。
論軟體工程的脆弱性...
推薦閱讀:
※極樂技術周報(第三十六期)
※從閱讀代碼上考慮,if里的">"、"<"用哪個更容易看懂?
※攀岩和編程有什麼共通點嗎?
※大力出奇蹟——Python暴力猜解Web應用