# 安装
  - npm install
  - 配置好java SKD 环境
  - 配置好Android 环境(adb命令正常)
# cap打包Android
  ## 一、打包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文件
  ``` bash
      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文件新增（可选）
  ``` bash
    # 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文件新增
  ``` bash
    application 新增 
    android:networkSecurityConfig="@xml/network_security_config"
    android:hardwareAccelerated="true"
    <!--可选权限-->
    <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 文件夹中的项目

# cap打包IOS
  ## 一、打包web资源到www文件内
  - ng build live-app --output-path=www //默认打包
    或者 ionic build --project=live-app
  - 打包好后把所有文件放到www子目录
  ## 二、添加 IOS 平台
  - npx cap add ios 添加 IOS 平台

  ### 三、mac设备打开xcode
    - npx cap open ios
    - cd ios/App 运行 pod install 安装依赖
  
  ### 四、修改配置文件
  - ios/App/App/Info.plist文件添加权限
    <!-- 相机权限 -->
    <key>NSCameraUsageDescription</key>
    <string>我们需要访问您的相机以进行拍照和视频直播推流。</string>
    <!-- 照片库权限（可选） -->
    <key>NSPhotoLibraryUsageDescription</key>
    <string>我们需要访问您的照片库以选择照片。</string>
    <!-- 相册保存权限（可选） -->
    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>我们需要保存照片到您的相册。</string>

# cordova打包（弃用）
  - ionic cordova build android --release


# 参考资料
  - 打包 
    - https://blog.csdn.net/weixin_46318413/article/details/126129576
    - https://blog.csdn.net/qq_18948359/article/details/139874286
    - https://www.jianshu.com/p/be517d9a0567

# 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命令问题
    ``` bash 
    ionic init 生成ionic.config.json
    ```
  - 使用Gradle命令来构建 Debug APK：
    ``` bash 
    cd android
    ./gradlew assembleDebug
    ```