Linux伺服器線上打包遇到的問題 轉載請標明出處: "https://dujinyang.blog.csdn.net/article/details/80110942" 本文出自:【奧特曼超人的博客】 線上打包的流程 遇到奇怪的BUG(Linux apktool 包體變大) 1. 線上打包的流程 ...
Linux伺服器線上打包遇到的問題
轉載請標明出處:
https://dujinyang.blog.csdn.net/article/details/80110942 本文出自:【奧特曼超人的博客】
- 線上打包的流程
- 遇到奇怪的BUG(Linux apktool 包體變大)
1. 線上打包的流程
首先我們需要根據線上打包自動關聯落地頁,同時落地頁也是動態生成可選的。
@[toc]
1.1 UML 圖:
序列圖:
sequenceDiagram User->>Server: CID--------------------CNAME Note right of 腳本: 隊列處理 Server-->>User: URL--------------------CURL流程圖:
flowchat st=>start: 開始 e=>end: 結束 op=>operation: 打包、落地頁 cond=>condition: 確認 st->op->cond cond(yes)->e cond(no)->op2. 遇到奇怪的BUG
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
2.2 包體增加變大的問題
某個游戲的包線上上處理時,游戲包體會從40M變成80M。打包流程的腳本是肯定沒問題的,測試都通過了,那麼就只有幾種情況。
- 環境問題:Linux伺服器C/C++底層庫的問題
- 游戲母包的問題
- jar包引起的腳本問題
那做了以下幾點嘗試:
- 伺服器線上打包,Win系統也跟著打包,對比。
- 另外一臺伺服器可以,對比伺服器環境。
- 伺服器反編譯和WIN系統反編譯大小對比。
- 腳本問題
- 依賴的jar問題
解決方案: 經過幾個小時,發現了是 jar的 2.1.3 問題,替換最新的 2.3.2 即可。
如果想加固的同學可以看這篇:《Android apk如何加固防止被破解(防止逆向編譯)》
|| 版權聲明:本文為博主杜錦陽原創文章,轉載請註明出處。