Linux伺服器線上打包遇到的問題
- 線上打包的流程
- 遇到奇怪的BUG(Linux apktool 包體變大)
1. 線上打包的流程
首先我們需要根據線上打包自動關聯落地頁,同時落地頁也是動态生成可選的。
文章目錄
-
-
- 1.1 UML 圖:
- 2. 遇到奇怪的BUG
-
- 2.1 環境問題:首次運作會報錯 `GLIBC_2.14' not found 。
- 2.2 包體增加變大的問題
序列圖:
User Server 腳本 CID--------------------CNAME 隊列處理 URL--------------------CURL User Server 腳本
流程圖:
Created with Raphaël 2.2.0 開始 打包、落地頁 确認 結束 yes no
2.1 環境問題:首次運作會報錯 `GLIBC_2.14’ not found 。
注意:雖然伺服器是Linux,但是底層GLIC是未安全的,針對這個問題是需要單獨安裝這個C/C++的庫,不然會出現打包時報錯 `GLIBC_2.14’ not found。
/lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libz.so.1)
檢視系統glibc支援的版本,一般是版本過低或者沒有安裝:
[root@djy bin]# rpm -qa|grep glibc
glibc-common-2.12-1.149.el6.x86_64
glibc-headers-2.12-1.149.el6.x86_64
glibc-2.12-1.149.el6.x86_64
glibc-devel-2.12-1.149.el6.x86_64
安裝:
//注意:configure時需要修改環境變量LD_LIBRARY_PATH,目前build目錄不能在LD_LIBRARY_PATH中。
[root@djyopt]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
[root@djy opt]# tar -xf glibc-2.14.tar.gz
[root@djy opt]# cd glibc-2.14
[root@djy glibc-2.14]# mkdir build
[root@djy glibc-2.14]# cd build
[root@djy build]# ../configure --prefix=/home/dyc/install/glibc
[root@djy build]# make -j4
[root@djy build]# make install
修改環境變量,增加glibc/lib目錄:
export LD_LIBRARY_PATH=.:$QTDIR/lib:$PIEV4_SDK_LIB:/home/djy/install/glibc/lib
某個遊戲的包線上上處理時,遊戲包體會從40M變成80M。打包流程的腳本是肯定沒問題的,測試都通過了,那麼就隻有幾種情況。
- 環境問題:Linux伺服器C/C++底層庫的問題
- 遊戲母包的問題
- jar包引起的腳本問題
那做了以下幾點嘗試:
- 伺服器線上打包,Win系統也跟着打包,對比。
- 另外一台伺服器可以,對比伺服器環境。
- 伺服器反編譯和WIN系統反編譯大小對比。
- 腳本問題
- 依賴的jar問題
解決方案: 經過幾個小時,發現了是 jar的 2.1.3 問題,替換最新的 2.3.2 即可。
