build.android.md 4.2 KB

安装

  • npm install
  • 配置好java SKD 环境
  • 配置好Android 环境(adb命令正常)

    cap打包

    一、打包web资源到www文件内

  • ng build live-app --output-path=www //默认打包 或者 ionic build --project=live-app

  • 打包好后把所有文件放到www子目录

    二、添加 Android 平台

  • npx cap add android 添加 Android 平台

  • npx cap sync android 同步你的项目配置到Android平台(如果尚未添加)

    • 打开 Android 项目(可选): npx cap open android
  • android\gradle\wrapper\gradle-wrapper.properties 中 gradle-wrapper.properties 中修改阿里镜像文件 distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.2.1-all.zip

  • 修改build.gradle文件

      android {
        ***
        signingConfigs {
            //签名信息
            release {
                keyAlias System.getenv('KEY_ALIAS') ?: 'heychat'
                keyPassword System.getenv('KEY_PASSWORD') ?: '12345678'
                storeFile file(System.getenv('KEYSTORE_PATH') ?: '../heychat.keystore')
                storePassword System.getenv('STORE_PASSWORD') ?: '12345678'
            }
        }
        android.applicationVariants.all(variant ->{
          variant.outputs.all{
            outputFileName = "heychat.apk"
          }
        })
        buildTypes {
            release {
                ***
                signingConfig signingConfigs.release
            }
        }
    }
    
  • gradle.properties文件新增(可选)

    # android/gradle.properties
    org.gradle.caching=true
    org.gradle.parallel=true
    org.gradle.daemon=true
    org.gradle.configureondemand=true
    
  • 新建network_security_config.xml文件设置网络权限 将resources\android\xml\network_security_config.xml复制到android\app\src\main\res\xml\根目录

  • android\app\src\main\AndroidManifest.xml文件新增

    application 新增 android:networkSecurityConfig="@xml/network_security_config"
    <!--可选权限-->
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <!-- 对于 Android 12.0 及以上且集成 v4.1.0 以下 SDK 的设备,还需要添加以下权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
    <!-- 对于 Android 12.0 及以上设备,还需要添加以下权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
    

    三、生成密钥签名

    • keytool -genkey -v -keystore heychat.keystore -alias heychat -keyalg RSA -keysize 2048 -validity 10000 (最外根目录已生成heychat.keystore文件,直接复制到android根目录)

      四、打包 Android 平台

    • npx cap build android 构建 Android 应用

## 五、打开 Android Studio(可选)

  • npx cap open android 这将自动启动 Android Studio 并打开 android 文件夹中的项目

    cordova打包(弃用)

  • ionic cordova build android --release

参考资料

Question:

  • 签名密钥问题
    • 如果你决定创建一个新的 keystore 文件,并使用简单的密钥别名,可以运行以下命令: keytool -genkey -v -keystore heychat.keystore -alias heychat -keyalg RSA -keysize 2048 -validity 10000
    • 查看签名配置信息:keytool -list -v -keystore D:\Desktop\works\nova-live\android\heychat.keystore -storepass 12345678
  • angular cli创建的项目不支持ionic命令问题

    ionic init 生成ionic.config.json
    
  • 使用Gradle命令来构建 Debug APK:

    cd android
    ./gradlew assembleDebug