uni-app本地安卓打包
<div class="cnblogs_code"> </div><p> </p>
<p> </p>
<p><strong>1、下载sdk——Android-SDK@3.1.13.80836_20210517</strong></p>
<p><strong> https://nativesupport.dcloud.net.cn/AppDocs/download/android</strong></p>
<p> </p>
<p><strong>2、复制sdk包中的demo工程HBuilder-HelloUniApp到任意目录,使用android studio打开<strong>HBuilder-HelloUniApp</strong></strong></p>
<p><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613184637167-1215061705.png"></p>
<p> </p>
<p><strong>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目录下</strong></p>
<p><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615164041605-1354676509.png"></strong></p>
<p><strong>4、Hbuilder,发行-原生App-本地打包-生成本地打包APP资源。将生成的目录\unpackage\resources\__UNI__ECBD83A复制到android studio的demo工程的src\main\assets\apps下。</strong></p>
<p> <img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613184838355-1316073234.png"></p>
<p>生成本地打包APP资源。Hbuilder本地打包生成的包如下:</p>
<p><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615164330153-1266941576.png"></p>
<p>将Hbuilder生成的包放到HBuilder-HelloUniApp项目中</p>
<p><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615164526532-2062112738.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p><strong>5、<strong>在uniapp官网 </strong></strong><strong><strong>https://dev.dcloud.net.cn/pages/app/list </strong></strong><strong><strong>获取appID下的项目的appKey</strong></strong></p>
<p><strong><strong>5.1创建应用</strong></strong></p>
<p><img src="https://img2023.cnblogs.com/blog/1115750/202304/1115750-20230426175857283-647092573.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><img src="https://img2023.cnblogs.com/blog/1115750/202304/1115750-20230426180156341-695368254.png"></p>
<p> </p>
<p><strong><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615171739757-1048704344.png"></strong></strong></p>
<p> </p>
<p> </p>
<p><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615171638972-758876476.png"></strong></p>
<p> </p>
<p> </p>
<p><strong>其中SHA1填写获取的证书的签名。包名与src\main\AndroidManifest.xml的package值、build.gradle的applicationId值一致</strong></p>
<p><strong>5、</strong>将<strong>src\main\assets\data\dcloud_control.xml中的appid配置为生成资源的目录名(例如__UNI__ECBD83A)</strong></p>
<p><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220615164744210-1471190105.png"></strong></p>
<p><strong>6、signingConfigs配置证书</strong> https://ask.dcloud.net.cn/article/35777</p>
<p>假设jre安装目录为“C:\Program Files\Java\jre1.8.0_201”</p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">d:// 切换工作目录到D:路径
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin" // 将jre命令添加到临时环境变量中</pre>
</div>
<pre class="brush:javascript;gutter:true;"><code class="hljs bash">生成签名证书</code></pre>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;"><code class="hljs bash">keytool -genkey -<span class="hljs-built_in">alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore </span></code></pre>
</div>
<ul>
<li>testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字</li>
<li>test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径</li>
<li>36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期</li>
</ul>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">Enter keystore password://输入证书文件密码,输入完成回车
Re-enter new password: //再次输入证书文件密码,输入完成回车
What is your first and last name?
://输入名字和姓氏,输入完成回车
What is the name of your organizational unit?
://输入组织单位名称,输入完成回车
What is the name of your organization?
://输入组织名称,输入完成回车
What is the name of your City or Locality?
://输入城市或区域名称,输入完成回车
What is the name of your State or Province?
://输入省/市/自治区名称,输入完成回车
What is the two-letter country code for this unit?
://输入国家/地区代号(两个字母),中国为CN,输入完成回车
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?
://确认上面输入的内容是否正确,输入y,回车
Enter key password for <testalias>
(RETURN if same as keystore password)://确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
</pre>
</div>
<p> 以上命令运行完成后就会生成证书,路径为“D:\test.keystore”</p>
<p><strong>7、修改build.gradle</strong></p>
<p> 修改版本号、applicationId </p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">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'
}
</pre>
</div>
<p> </p>
<p><strong> 8、Android打包</strong></p>
<p><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613190737923-695827871.png"></strong></p>
<p><strong><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613190849538-319981852.png"></strong></p>
<p> <img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613190900415-804802079.png"></p>
<p>添加步骤6生成的证书test.keystore</p>
<p><img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220614134246939-1531475699.png"></p>
<p> <img src="https://img2022.cnblogs.com/blog/1115750/202206/1115750-20220613190910455-1667218859.png"></p>
<p> <strong>打包完的apk在\app\release路径下</strong></p>
</div>
<div id="MySignature" role="contentinfo">
前端大牛的路上<br><br>
来源:https://www.cnblogs.com/zoushuangyu/p/16371943.html
頁:
[1]