Flutter打包發(fā)布

一樟凄、iOS打包和發(fā)布

1.1. 填寫應(yīng)用信息

1.1.1. 基本信息

-應(yīng)用的AppID
-應(yīng)用的名稱
-應(yīng)用的Icon
-應(yīng)用的Launcher

1.1.2. 版本信息

Flutter的版本信息在哪里填寫呢?在pubspec.yaml中

version: 1.0.0+1

第一次見到這個會很疑惑梁丘,后面的+1是什么意思呢?

在Android中旺韭,應(yīng)用的版本分為versionCode & versionName

  • versionCode:內(nèi)部管理的版本號
  • versionName:用戶顯示的版本號

在iOS中氛谜,應(yīng)用的版本分為 version & build

  • version:用戶顯示的版本
  • build:內(nèi)部管理的版本

Flutter中我們?nèi)绾喂芾磉@兩個版本號呢?

  • 2.0.0:用戶顯示的版本
  • 1:內(nèi)部管理的版本

1.1.3. 用戶權(quán)限配置

在iOS中某些權(quán)限区端,需要用戶允許值漫,為了添加這些權(quán)限需要配置info.plist文件:

配置@2x.png

1.2. Apple開發(fā)者賬號

1.2.1. 申請開發(fā)者賬號

蘋果發(fā)布應(yīng)用程序,必須申請一個Apple開發(fā)者賬號:

  • https://developer.apple.com/

  • 1.填寫AppleID(沒有的話先申請AppleID)

  • 2.加入開發(fā)者計劃

  • 個人和公司:$99/年

  • 企業(yè)賬號:$299/年

1.2.2. 配置相關(guān)證書

發(fā)布iOS應(yīng)用程序需要配置相關(guān)的AppID和證書:

  • https://developer.apple.com/account/

  • 登錄開發(fā)者的賬號:

  • 下載和安裝證書织盼,電腦才具備發(fā)布程序的能力

  • 1.創(chuàng)建AppID(和自己的應(yīng)用程序的AppID是一直的)

  • 2.配置發(fā)布者證書(iOS Distribution)

證書@2x.png

1.2.3. 創(chuàng)建發(fā)布App

我們需要在App Store創(chuàng)建一個新的應(yīng)用程序:

創(chuàng)建@2x.png

1.3. 打包發(fā)布應(yīng)用

1.3.1. Xcode登錄AppleID

在Xcode中登錄自己的AppleID

appid@2x.png

2.3.2. 打包和發(fā)布應(yīng)用

應(yīng)用簽名信息:

[圖片上傳中...(選擇真機設(shè)備@2x.png-1bd7da-1586749188143-0)]

打包應(yīng)用程序:

1.設(shè)備選擇真機(這里必須選擇真機)

選擇真機設(shè)備@2x.png

2.Product -> Archive -> Distribute App

image
發(fā)布界面@2x.png

注意:如果之前的應(yīng)用程序是運行在模擬器上的,那么Archive時會報錯

  • 需要刪除ios/Flutter目錄下之前生成的App.framework
  • 因為這個framework默認是給模擬器生成的沥邻,我們發(fā)布的程序要跑在真機設(shè)備上

1.4. Application loader

目前很多應(yīng)用程序的發(fā)布喜歡借助于Application loader危虱,所有的流程都可以在這個工具中完成

  • 具體的使用過程可以查找相關(guān)的資料,用法比較簡單
    ————————————————————————————————————————————————————————————————————————

二. Android打包和發(fā)布

2.1. 填寫應(yīng)用配置

2.1.1. 基本信息

在之前講解應(yīng)用程序的配置信息時唐全,我們已經(jīng)介紹過埃跷,這里不再過多介紹

  • 應(yīng)用的AppID
  • 應(yīng)用的名稱
  • 應(yīng)用的Icon
  • 應(yīng)用的Launcher

2.1.2. 版本信息

與iOS一致

2.1.3. 用戶權(quán)限配置

在Android中某些用戶權(quán)限需要在AndroidManifest.xml進行配置:

  • 比如默認情況下應(yīng)用程序是不能發(fā)送網(wǎng)絡(luò)請求的,如果之后App中有用到網(wǎng)絡(luò)請求,那么需要在AndroidManifest.xml中進行如下配置(默認debug模式下有配置網(wǎng)絡(luò)請求)
  • 比如我們需要訪問用戶的位置捌蚊,那么需要在AndroidManifest.xml中進行如下配置
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.catefavor">    <uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/></manifest>

2.2. 應(yīng)用程序簽名

Android系統(tǒng)在安裝APK的時候集畅,首先會檢驗APK的簽名,如果發(fā)現(xiàn)簽名文件不存在或者校驗簽名失敗缅糟,則會拒絕安裝挺智,所以應(yīng)用程序在發(fā)布之前一定要進行簽名。

2.2.1. 創(chuàng)建一個秘鑰庫

在 macOS 或者 Linux 系統(tǒng)上窗宦,執(zhí)行下面的命令:

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

在 Windows 系統(tǒng)上赦颇,執(zhí)行下面的命令:

keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
創(chuàng)建過程@2x.png

2.2.2. 在app中引用秘鑰庫

創(chuàng)建一個名為 /android/key.properties 的文件,它包含了密鑰庫位置的定義:

storePassword=<上一步驟中的密碼>keyPassword=<上一步驟中的密碼>keyAlias=keystoreFile=<密鑰庫的位置赴涵,e.g. /Users/<用戶名>/key.jks>

注意:這個文件一般不要提交到代碼倉庫

  • 修改.gitignore文件
# Android ignore/android/key.properties

2.2.3. 在gradle中配置簽名

通過編輯 /android/app/build.gradle 文件來為我們的 app 配置簽名:

1.在 android 代碼塊之前添加:

android {  ...}

替換為秘鑰庫的信息

  • key.properties 文件加載到 keystoreProperties 對象中媒怯。
def keystoreProperties = new Properties()def keystorePropertiesFile = rootProject.file('key.properties')if (keystorePropertiesFile.exists()) {  keystoreProperties.load(new FileInputStream(keystorePropertiesFile))}android {...}

2.在 buildTypes 代碼塊之前添加:

   buildTypes {       release {           // TODO: Add your own signing config for the release build.           // Signing with the debug keys for now,           // so `flutter run --release` works.           signingConfig signingConfigs.debug       }   }

替換為下面的代碼:

  • build.gradle 文件中配置 signingConfigs 部分
   signingConfigs {       release {           keyAlias keystoreProperties['keyAlias']           keyPassword keystoreProperties['keyPassword']           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null           storePassword keystoreProperties['storePassword']       }   }   buildTypes {       release {           signingConfig signingConfigs.release       }   }

現(xiàn)在我們發(fā)布的app就會被自動簽名了

1.3. 打包應(yīng)用程序

目前Android支持打包兩種應(yīng)用程序:APK、AAB

APK文件:

  • Android application package

  • 目前幾乎所有的應(yīng)用市場都支持上傳APK文件

  • 用戶直接安裝的就是APK文件

# 運行 flutter build apk (flutter build 默認帶有 --release 參數(shù))flutter build apk

AAB文件:(推薦)

  • Android App Bundle
  • Google推出的一種新的上傳格式髓窜,某些應(yīng)用市場不支持的
  • 會根據(jù)用戶打包的aab文件扇苞,動態(tài)生成用戶設(shè)備需要的APK文件
# 運行 flutter build appbundle。 (運行 flutter build 默認構(gòu)建一個發(fā)布版本寄纵。)flutter build appbundle

2.4. 發(fā)布應(yīng)用程序

Android應(yīng)用程序可以發(fā)布到很多的平臺鳖敷,包括國內(nèi)的平臺和國外的Google Play

國內(nèi)的應(yīng)用市場非常多,包括360程拭、百度定踱、小米等等

  • 可以根據(jù)不同的應(yīng)用市場相關(guān)的規(guī)則,上傳對應(yīng)的APK或者AAB文件恃鞋,填寫相關(guān)的信息審核即可

國外的應(yīng)用市場通常只有一個Google Play

  • 1.需要申請一個Google Play 開發(fā)者賬號

  • 需要支付25美元注冊費用的信用卡崖媚,信用卡需要支持Visa, Master Amex, Discover, JCB。

  • https://play.google.com/apps/publish/signup/

  • 2.進入到管理中心恤浪,創(chuàng)建應(yīng)用發(fā)布即可

  • 進入了Google Play Console管理中心

GooglePlay@2x.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畅哑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子资锰,更是在濱河造成了極大的恐慌敢课,老刑警劉巖阶祭,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绷杜,死亡現(xiàn)場離奇詭異,居然都是意外死亡濒募,警方通過查閱死者的電腦和手機鞭盟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑰剃,“玉大人齿诉,你說我怎么就攤上這事。” “怎么了粤剧?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵歇竟,是天一觀的道長。 經(jīng)常有香客問我抵恋,道長焕议,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任弧关,我火速辦了婚禮盅安,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘世囊。我一直安慰自己别瞭,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布株憾。 她就那樣靜靜地躺著蝙寨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嗤瞎。 梳的紋絲不亂的頭發(fā)上籽慢,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音猫胁,去河邊找鬼箱亿。 笑死,一個胖子當著我的面吹牛弃秆,可吹牛的內(nèi)容都是我干的届惋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼菠赚,長吁一口氣:“原來是場噩夢啊……” “哼脑豹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衡查,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瘩欺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拌牲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俱饿,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年塌忽,在試婚紗的時候發(fā)現(xiàn)自己被綠了拍埠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡土居,死狀恐怖枣购,靈堂內(nèi)的尸體忽然破棺而出嬉探,到底是詐尸還是另有隱情,我是刑警寧澤棉圈,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布涩堤,位于F島的核電站,受9級特大地震影響分瘾,放射性物質(zhì)發(fā)生泄漏定躏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一芹敌、第九天 我趴在偏房一處隱蔽的房頂上張望痊远。 院中可真熱鬧,春花似錦氏捞、人聲如沸碧聪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逞姿。三九已至,卻和暖如春捆等,著一層夾襖步出監(jiān)牢的瞬間滞造,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工栋烤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谒养,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓明郭,卻偏偏與公主長得像买窟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子薯定,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容