[英]How to build signed apk from Android Studio for Flutter
有沒有辦法在 Android Studio 中構建一個用於顫振的 apk?
我看過這個指南: https ://flutter.dev/docs/deployment/android
但是這里flutter console是用來構建apk的。
您可以使用 IDE 和命令行構建 Apk/AppBundle。
在 Android Studio 的標簽欄中,點擊Tools
然后Flutter
然后Open Android module in Android Studio
:
在新窗口中打開項目:
打開項目后,點擊Build
然后Generate Signed Bundle / APK ...
修改您的build.gradle(app)
文件並在其中包含您的關鍵信息:
android { compileSdkVersion 31 signingConfigs { release { storeFile file("<path-to-keys.jks>") storePassword "********" keyAlias "<key-alias>" keyPassword "********" } } buildTypes { release { signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
flutter build appbundle --target-platform android-arm,android-arm64,android-x64 --obfuscate --split-debug-info=/<directory>
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --obfuscate --split-debug-info=/<directory>
要使用 Android Studio 3.5.1 版為 Flutter 創建/生成簽名 APK,請執行以下步驟 -
步驟1 :
轉到您的項目,然后選擇工具 -> Flutter -> 在 Android Studio 中打開以進行編輯,如下所示
然后選擇新窗口選項,如下所示
第 2 步:
等待一段時間,直到項目同步。 在那之后
從菜單欄中轉到Build -> GenerateSigned Bundle/APK...選項,如下所示
第 3 步:
根據需要選擇Android App Bundle 或 APK選項。 (Android App Bundle 是最好的解決方案)並單擊Next按鈕。
第4步 :
選擇Create new..選項以生成新的簽名密鑰(當您首次發布應用程序時)
第 5 步:
填寫所有選項如下
筆記 -
密鑰存儲路徑-
您的密鑰存儲文件(即.jks文件)存儲的路徑(如上圖所示)。 [最佳方式選擇項目目錄中的路徑。]
密鑰庫密碼-
輸入密碼,例如123456
密鑰別名-
輸入密鑰別名(.jks 文件的名稱),例如密鑰
密鑰密碼-
輸入密鑰密碼(選擇與密鑰存儲密碼不同的密碼)例如key123456
有效期(年) - 保持原樣或根據您的要求進行更改。
證書-
填寫證書信息(並非所有字段都是必填項)
然后單擊確定,您將看到以下屏幕...
第 6 步-
第 7 步-
單擊下一步按鈕,您將看到以下屏幕...
選擇選項
構建變體 - 發布和
簽名版本分別為V1 和 V2 ,如上圖所示,然后單擊完成按鈕。
第 8 步-
等待一段時間,直到 Gradle Build Running 過程完成,如下所示...
最后你會得到Generate Signed APK : (APKs) generated successfully 。 從中單擊Locate選項以獲取您的Generate Signed APK Key的位置。 如下圖所示。
至此,您為 Flutter 項目成功生成了 Signed APK。
重要的:
請不要丟失密鑰及其所有信息,即密鑰存儲路徑、密鑰存儲密碼、密鑰別名和密鑰密碼(最好將其寫入筆記本或制作文本文件並在生成時存儲在驅動器上。)。 如果沒有這個,您將無法更新您的應用程序,因為新版本需要使用相同的密鑰進行簽名。
我希望你能得到詳細的信息。
除了使用 Android Studios UI,您還可以輕松地使用命令提示符。 這種方式對我來說更容易,因為我在使用 ui 創建簽名 apk 時遇到了很多問題。
在創建簽名的 APK 之前,您必須准備好您的項目。
1. 將 Flutter 自動化依賴項添加到您的pubspec.yaml
dependencies:
flutter:
sdk: flutter
flutter_automation: ^1.1.4
目前 ^1.1.4 是最新的依賴項,這最終會改變。
2.獲取新的依賴
在項目目錄中的命令提示符下運行flutter packages get
3.設置簽名
運行flutter pub pub run flutter_automation --android-sign
在你的命令提示符下。然后你會被要求輸入
4. 生成您簽名的 apk 或捆綁包
只需運行flutter build apk --split-per-abi
或flutter build appbundle
即可為您的應用生成簽名的 apk/bundle。
根據DanyPata對於顫振,您必須設置簽名文件,然后運行顫振構建 APK。 運行flutter命令非常重要,這樣flutter中添加的所有更改/庫也會添加到Android項目中。
轉到File
- Project Structure
並在Modules
下選擇app
。 注意:它可能不會被稱為app
- 它可能是您在創建項目時給它的任何名稱。 選擇Signing
選項卡。
您需要創建一個證書,因此單擊藍色加號並填寫空白。 完成此過程后,您將轉到Build Types
選項卡並確保您有兩個 - debug
和release
,如果您沒有release
則再次按藍色加號並創建它。
對於發布版本,您將需要選擇您之前創建的Signing Config
並將其余部分保留為默認值。
然后構建您的發布 APK 轉到頂部主欄上的Build
,然后Build Bundle(s) / APK(s)
並選擇Build APK(s)
。
密切關注Event Log
以查看其完成時間以及 APK 保存到的路徑。
更新gradle.build
文件。 確保您的項目可見性設置為類似於Project
的內容,以便您可以查看文件樹中的所有文件。
前往yourapp/src
然后打開build.gradle
。
下, android
添加:
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.theNameForCertificateYouCreated
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
重要提示:作為快速提醒和預防措施,請勿丟失它創建的密鑰。 如果沒有這個,您將無法更新您的應用程序,因為新版本需要使用相同的密鑰進行簽名。
每次運行應用程序時,它都會生成 apk。
您可以在項目文件中找到它:
yourProject\build\app\outputs\apk
在 Mac/Linux 上,使用以下命令:
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
在 Windows 上,使用以下命令:
keytool -genkey -v -keystore c:\Users\USER_NAME\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
有關后續步驟並在 Google Play 上發布,請查看:
我找到了一個永久的解決方案
只需直接從“應用程序直接”打開您現有的顫振應用程序,其中包含直接在 android studio 中的 Android Manifest 目錄等 android 文件。 這會將您的項目加載為一個 android 項目,我相信其余部分是不言自明的,您需要做什么。
添加此代碼並將其保存在您的應用程序和 android.iml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" />
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/app/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/app/src/main/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/app/src/main/assets" />
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/app/src/main/libs" />
<option name="PROGUARD_LOGS_FOLDER_RELATIVE_PATH" value="/app/src/main/proguard_logs" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/app/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/app/src/main/kotlin" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Flutter for Android" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
</component>
</module>
除了使用 Android Studios UI,您還可以輕松地使用命令提示符。
按照以下步驟使用命令行在 Flutter 中生成簽名的 apk。
第一步:生成keystone文件
在命令行運行以下命令:
在 Mac/Linux 上,
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
在 Windows 上,
keytool -genkey -v -keystore c:\Users\USER_NAME\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
第 2 步:修改您的build.gradle(app)
文件
在build.gradle(app)
文件中包含您的關鍵信息:
android { compileSdkVersion 31 signingConfigs { release { storeFile file("<path-to-keys.jks>") storePassword "********" keyAlias "<key-alias>" keyPassword "********" } } buildTypes { release { signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
第 3 步:生成 apk
使用命令行從flutter根目錄運行以下命令。
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --obfuscate --split-debug-info=/<directory>
提供一個有效的目錄路徑作為split-debug-info
構建將在build\app\outputs\flutter-apk
文件夾下生成。
更多信息: https ://docs.flutter.dev/deployment/android
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.