1. 程式人生 > >Ubantu Jenkins打包五 快速打渠道包

Ubantu Jenkins打包五 快速打渠道包

1. 渠道包生成原理

渠道包和普通包的區別:

渠道包與普通包相比,渠道相關的資訊不同,程式碼部分相同。開發和編碼的時候,渠道資訊儘可能的不要採用

硬編碼,最好的方法是將渠道配置資訊寫入AndroidManifest的meta-data,程式中通過讀取AndroidManifest的meta-data

中的資訊獲取渠道對應的渠道資訊。

這種情況下,渠道包和普通包只有AndroidManifest有差別,通過重新生成AndroidManifest,和原來的程式碼和資源重新打包

就可以生成新的渠道包。

2. 快速打渠道包原理

1)生成APK包;

2)反解析APK;

$ apktool d [apk包]

如果失敗,請採用

$ apktool d [apk包] -r

3)生成渠道包的AndroidManifest,替換反解析的AndroidManifest

替換生成渠道用的AndroidManifest

4)重新打包生成未簽名的新APK;

apktool b [解壓後的資料夾] -o [輸出的新APK名]

5)對新APK進行簽名

jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa -verbose -keystore [keystore檔案] -storepass [用於金鑰庫完整性的口令] -signedjar [輸出的簽名apk] [未簽名的apk] 

 [keyAlias]

6)對新簽名包進行優化(例如對齊處理)

2. 安裝APKTOOL

1)下載APKTOOL wrapper script (右鍵, 連結儲存為 apktool)

2) 下載 apktool-2 (下載地址)

下載完的apktool包重新命名為 apktool.jar
移動兩個檔案 (apktool.jar & apktool) 到 /usr/local/bin (需要root許可權)
為兩個檔案新增可執行(chmod +x)
現在就可以使用 apktool 命令了

通過apktool檢視安裝結果

相關推薦

Ubantu Jenkins打包 快速渠道

1. 渠道包生成原理 渠道包和普通包的區別: 渠道包與普通包相比,渠道相關的資訊不同,程式碼部分相同。開發和編碼的時候,渠道資訊儘可能的不要採用 硬編碼,最好的方法是將渠道配置資訊寫入AndroidManifest的meta-data,程式中通過讀取AndroidM

教你快速高效接入SDK——打包工具的實現(反編譯資源動態整合渠道)

1、打包工具的輸入,就是需要打包的apk包,也叫母包。遊戲裡面引入sdk抽象層的jar包,呼叫抽象層的介面。完成接入,然後打成apk。 2、打包工具會首先用apktool -d 對母包進行反編譯。反編譯到該渠道對應的臨時工作目錄中 3、重新命名包名。我們知道在AndroidManifet.xml中的pack

不用再渠道了,用它就可以快速統計多個渠道

使用Shareinstall的免打包渠道統計技術,可以實現只上傳一個APK安裝包,以直接向各個渠道分配渠道連結(二維碼)的方式實現多渠道統計,完全不用再麻煩技術的同事幫忙打包,直接由渠道業務管理的同事操作生成渠道連結即可。 稍微介紹一下,Shareinstall其實是一個APP的推廣輔助

Android自動化打包之如何快速生成渠道

如果渠道不是很多的情況下,我們一般使用gradle進行渠道打包。 但是有種情況就是一旦渠道有上百個的時候,gradle的打包速度將會變得很慢,今天看了一篇文章,來自美團技術團隊的分享,地址如下: https://tech.meituan.com/mt-apk-packagi

Unity一鍵渠道

忙了好一陣接入安卓sdk,也算積累了一些經驗,在這裡總結一下,如有不足,歡迎大大指出; 專案接了大大小小十多個sdk,我的想法是在android studio打好aar包,和資原始檔還有AndroidManifest.xml儲存成一個壓縮包,用的時候解壓縮到專案的Plugins/Androi

app上線前加固&&渠道

1.下載騰訊雲樂固 2.配置資訊 值得注意的是:樂固中配置的Android Name必須與AndroidManifest.xml中填寫的一致,且必須為英文 3.匯入應用,自動打包 4.渠道引數(參考) tianjihr;baidu;jiuyao;anzhuo;sanliulin

Ubantu Jenkins打包部署二:專案配置

打包過程發生錯誤。不能建立資料夾。 錯誤資訊如下。 14:40:18.864 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project :app - Registering mo

Linux下對已有專案快速RPM(只需編輯XML檔案)

期間公司在做Migration的工作,經常遇到這樣的場景:需要對現有的二進位制第三方庫和標頭檔案打包成RPM包,以便臨時測試用或者第三方庫管理。但是,修改SPEC檔案並編寫Makefile是個鬱悶的事

Android 渠道出來之後安裝失敗

問題: 發現打出來的渠道包在7.0的系統上無法安裝,在安裝頁面提示無效或者安裝失敗之類的 原因: 為了提高Android系統的安全性,Google從Android 7.0開始增加一種新的增強簽名模式,從Android Gradle Plugin 2.2開始,構建系統在打

iOS使用指令碼批量渠道

最近我們接到了新的需求,需要打出類似xx001-xx100共100個這樣的ipa渠道包,不需要簽名。(這批ipa包後續會用企業證書籤名,不會影響AppStore的) 這些包所有的功能、內容都是一樣的,區別在於不同的包在統計、連線我們伺服器時會提供一個不同的字串

iphone-批量渠道shell指令碼

#!/bin/bash #code by xiaodao 2012-06-05 sourceipaname="test.ipa" appname="test.app" targetName="test" version="1_2_0" zipTime=`date +%m

ant 批量渠道,第三方項目作為library打包出錯的問題

渠道 data- har 資源 per alt 提示 utf 項目 ant批量打包不解釋了。詳情請看前面其它的blog! 這裏說一下 開發中,非常可能遇到引用第三方的項目作為library情況。這樣的情況下該怎麽打包呢? 第一:改動build.x

使用FPM打包工具rpm

fpm 打包一:安裝ruby環境和gem命令: fpm 是 ruby寫的,因此系統環境需要ruby且版本必須大於1.8.5 # yum -y install ruby rubygems ruby-devel查看當前ruby源 # gem source -l 添加國內源 # gem sources

maven打包時出現不了的問題

artifact com false pre tput ase con manifest direct <build> <plugins> <plugin> <groupId>org.apache

本地打包公用的區別

1、本地打包 2、可以公用的打包方式 1.    開啟idea開發工具,在File下找到Project Structure...(注意:低版本的idea在Nevigate目錄下找) 2.   在開啟的頁

美團新一代渠道打包神器walle

背景: Android 7.0 中新增了 APK Signature Scheme v2 簽名方式 如果Android Studio升級到 v2.2+,構建APK時預設使用的簽名方式就是APK Signature Scheme v2 目前比較流行的2套 多渠道打包

產品打包工具的製作,ant 編譯原始碼,jartag,war,備份release版本等

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

jenkins在哪裡

檢視控制檯輸出最後面一行是jar包的位置 [JENKINS] Archiving /var/lib/jenkins/jobs/moven-test/workspace/target/projectA-1.0-SNAPSHOT.jar to com.tiantian.mavenTest/projectA/1.

深入解析用rpmbuild rpm時引起的打包前後文件大小變化的問題

源出處 緣起 你能看到的只是表面很少的一部分——冰山理論。 在程式設計排查問題時,我們經常遇到的情形就是,看似一個很小的點,深究起來卻發現其背後隱藏著更深層次的技術邏輯。昨天的上線經歷讓我深有體會。 昨日上線,一切如舊。雲淡風輕,茶香四溢。 焚香,沐浴,更衣,食素三日之後總該一切

jenkins打包android的apk實踐經驗

首先要安裝jenkins,網上有很多教程,這裡不再囉嗦了,其次當然要安裝gradle外掛,新建一個自由風格的job,新增svn地址後配置專案中的gradle檔案 svn地址後面可以加上@HEAD,因為在使用jenkins時我遇到無法更新到最新svn程式碼的情況,比方說開發提交完程式碼我立馬就點選