uni-app本地安卓打包

 

 

 

1、下载sdk——Android-SDK@3.1.13.80836_20210517

    https://nativesupport.dcloud.net.cn/AppDocs/download/android

 

2、复制sdk包中的demo工程HBuilder-HelloUniApp到任意目录,使用android studio打开HBuilder-HelloUniApp

 

3、将Android-SDK@3.1.13.80836_20210517\SDK\libs中lib.5plus.base-release.aar、android-gif-drawable-release@1.2.17.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar拷贝到demo工程的app/libs目录下

4、Hbuilder,发行-原生App-本地打包-生成本地打包APP资源。将生成的目录\unpackage\resources\__UNI__ECBD83A复制到android studio的demo工程的src\main\assets\apps下。

 

生成本地打包APP资源。Hbuilder本地打包生成的包如下:

将Hbuilder生成的包放到HBuilder-HelloUniApp项目中

 

 

 

5、在uniapp官网 https://dev.dcloud.net.cn/pages/app/list 获取appID下的项目的appKey

5.1创建应用

 

 

 

 

 

 

 

 

 

 

其中SHA1填写获取的证书的签名。包名与src\main\AndroidManifest.xml的package值、build.gradle的applicationId值一致

5、src\main\assets\data\dcloud_control.xml中的appid配置为生成资源的目录名(例如__UNI__ECBD83A)

6、signingConfigs配置证书  https://ask.dcloud.net.cn/article/35777

假设jre安装目录为“C:\Program Files\Java\jre1.8.0_201”

d:  // 切换工作目录到D:路径
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin" // 将jre命令添加到临时环境变量中
生成签名证书
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 
  • testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
  • test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
What is your first and last name?  
  [Unknown]:  //输入名字和姓氏,输入完成回车  
What is the name of your organizational unit?  
  [Unknown]:  //输入组织单位名称,输入完成回车  
What is the name of your organization?  
  [Unknown]:  //输入组织名称,输入完成回车  
What is the name of your City or Locality?  
  [Unknown]:  //输入城市或区域名称,输入完成回车  
What is the name of your State or Province?  
  [Unknown]:  //输入省/市/自治区名称,输入完成回车  
What is the two-letter country code for this unit?  
  [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //确认上面输入的内容是否正确,输入y,回车  

Enter key password for <testalias>  
        (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以

 以上命令运行完成后就会生成证书,路径为“D:\test.keystore”

7、修改build.gradle

 修改版本号、applicationId 

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "io.dcloud.HelloH5"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        ndk {
            abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
        }
        manifestPlaceholders = [
                "apk.applicationId"     : "com.android.HelloH5",
                "GETUI_APPID"           : "unipush的appid",
                "plus.unipush.appid"    : "unipush的appid",
                "plus.unipush.appkey"   : "unipuish的appkey",
                "plus.unipush.appsecret": "unipush的secrety"
        ]
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    signingConfigs {
        config {
            keyAlias 'key0'
            keyPassword '123456'
            storeFile file('test.jks')
            storePassword '123456'
            v1SigningEnabled true
            v2SigningEnabled true
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    //使用uniapp时,需复制下面代码
    /*代码开始*/
    aaptOptions {
        additionalParameters '--auto-add-overlay'
        //noCompress 'foo', 'bar'
        ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
    }
    /*代码结束*/

}
repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation fileTree(include: ['*.aar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    /*uniapp所需库-----------------------开始*/
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'com.facebook.fresco:fresco:2.5.0'
    implementation "com.facebook.fresco:animated-gif:2.5.0"
    /*uniapp所需库-----------------------结束*/
    // 基座需要,必须添加
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.alibaba:fastjson:1.1.46.android'
}

  

 8、Android打包

 

添加步骤6生成的证书test.keystore

 

 打包完的apk在\app\release路径下

posted @ 2022-06-13 18:50  前端小沫  阅读(3037)  评论(0编辑  收藏  举报