• uniapp本地打包


     

    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://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey  获取appID下的项目的appKey

    其中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路径下

  • 相关阅读:
    java中Collection 与Collections的区别
    Bridge桥接模式(设计模式11)
    动态代理模式(设计模式10)
    代理模式(静态代理)(设计模式9)
    适配器模式(工厂模式8)
    原型模式(工厂模式7)
    建造者模式(工厂模式6)
    抽象工厂模式(工厂模式5)
    工厂模式(工厂模式4)
    简单工厂模式(工厂模式3)
  • 原文地址:https://www.cnblogs.com/zoushuangyu/p/16371943.html
Copyright © 2020-2023  润新知