flutter打包


ios

簡單命令

flutter clean

rm -rf ios/Flutter/App.framework

先在項目目錄下運行

flutter build ios --release

再到xcode下進行打包

如果不進行build命令,則在xcode下會報錯:

flutter Could not find an option named "track-widget-creation". 

具體打包方法:
https://github.com/bingoogolapple/bingoogolapple.github.io/issues/46



作者:Zszen
鏈接:https://www.jianshu.com/p/93a261ebdf67
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
 
 

Flutter-Build An Android Release Apk

INeil
0.2922018.03.09 07:10:16字數 418閱讀 15,813

上一篇已經說過了,使用Android Studio 中Build>Generate Signed Apk總是報錯,無法打包release版的apk!
幸好,flutter提供了其他方式
下面是完整的打包過程,官方參考;如果要打包iOS參考
檢查AndroidManifest.xml中的applicationuses-permissionapplicationIdversionCodeversionNameminSdkVersiontargetSdkVersion、替換圖標等等就不贅述了!開發過Android的都知道

  • 准備

要打release 包,首先你得有個簽名文件,沒有的話cmd 執行keytool:

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
-genkey      在用戶主目錄中創建一個key.jks文件
-v           顯示密鑰庫中的證書詳細信息
-alias       產生別名
-keyalg      指定密鑰的算法  
-keystore    指定密鑰庫的名稱(產生的各類信息將不在.jks文件中 -validity 指定創建的證書有效期多少天 -keysize 指定密鑰長度 

然后根據提示輸入密鑰庫的口令、姓氏、省份、組織等等信息

    • 也可以通過AndroidStudio創建簽名文件
      1.Build>Generate Signed Apk
      2.點擊Create New...
      3.在下面的窗口中填寫信息
       
      create key.JPG
  • 配置key.properties

<app dir>/android/目錄下,創建一個key.properties文件
PS:<app dir>代表工程的根目錄,下同
需要填寫的內容

storePassword=<password from previous step> keyPassword=<password from previous step> keyAlias=key storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks> 
storePassword    keystore 密碼
keyPassword      key密碼
keyAlias         key別名
storeFile        .jks文件路徑
  • 配置Gradle

gradle文件路徑<app dir>/android/app/build.gradle

    • 找到android {,在這一行上面配置key.properties信息
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 
    • 繼續向下,找到buildTypes {,在上面配置signingConfigs:
signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

buildTypes更改為:

buildTypes {
        release {
           signingConfig signingConfigs.release
        }
    }
  • 開始打包了
    cd<app dir>,執行flutter指令
    flutter build apk //默認打包release包或者 flutter build --release
    打包的過程很快就完成了,會提示release包的路徑,adb命令即可安裝
    當然也可以直接在<app dir>先執行flutter install安裝到電腦連接的手機上!

總體過程並不是很難,主要就是生成key文件,配置Gradle;我個人還是傾向於希望Android Studio修復Bug,可以通過點擊Build>Generate Signed Apk來生成!

 

 

 

 

 

Flutter Android 簽名打包

 

 

查看APP包的簽名

為了檢查flutter打包的簽名信息,

  1. 找到應用的apk文件,修改后綴改成zip包;

  2. 在壓縮文件中找到META-INF目錄下找到 CERT.RSA文件;

  3. shift+鼠標右鍵打開cmd命令行;

  4. 輸入命令:keytool -printcert -file CERT.RSA

    參考:如何查看App安裝包的簽名

Flutter 配置Android 簽名

創建 keystore

如果您有現有keystore,請跳至下一步

Terminal運行以下命令來創建一個:

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

-validity 10000代表有效期天數

如果上述命令報錯“系統找不到指定的路徑”,請指明路徑
例如:
keytool -genkey -v -keystore D:/mykey.jks -keyalg RSA -keysize 2048 -validity 1
0000

D:/mykey.jks為生成的keystore路徑文件
執行該命令,如圖:

在這里插入圖片描述

引用應用程序中的keystore

在Flutter中的andoid項目中,

創建一個路徑為android下的key.properties的文件,其中包含對密鑰庫的引用:

#密鑰庫口令
storePassword=<password from previous step>
#密鑰口令
keyPassword=<password from previous step>
#別名
keyAlias=key
#keystore的路徑
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

 

 

note: <>符號去掉,keyAlias直接寫你設置的別名,比如上面創建的keystore的alias 為key

gradle中配置簽名

在/app/build.gradle中

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
   ....
   
     signingConfigs{
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }

    }
    buildTypes {
        release {
          
     // Signing with the debug keys for now, so `flutter run --release`works.
//          signingConfig signingConfigs.debug
            signingConfig signingConfigs.release
            //混淆
            minifyEnabled true
            useProguard true
            //Zipalign優化
            zipAlignEnabled true
            // 移除無用的resource文件
            shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            ndk {
                 //設置只支持armeabi-v7a 平台,與簽名無關,可以自己配置
                abiFilters "armeabi-v7a"
            }
        }
    }

}

 

 

構建一個發布版apk(打包)

上述步驟完成以后

Terminal中運行:

flutter build apk

 

(flutter build 默認會包含 --release選項)

打包好的發布APK位於<app dir>/build/app/outputs/apk/app-release.apk

在設備上安裝發行版APK

按照以下步驟在已連接的Android設備上安裝上一步中構建的APK

使用命令行:

  1. 用USB您的Android設備連接到您的電腦

  2. cd<app dir> .

  3. 運行 flutter install .

    詳細參考:發布Android版APP

參考:

Flutter打包

Android如何用命令行生成keystore

包](https://www.jianshu.com/p/888ac3b7df01)

Android如何用命令行生成keystore


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM