封装H5ToApp方法_奔赴_前端开发者

  方法一:

    新建个 Android studio 项目,用 webview 指定访问你的页面

        方法二:

               使用工具 cordova  附上地址:http://cordova.axuer.com/docs/zh-cn/latest/guide/platforms/android/index.html

        方法三:

    ionic 结合 cordova 

        方法四:

    ApiCloud

       https://www.jianshu.com/p/c45148134082

       方法五:

  可参考 文档(https://reactnative.cn/docs/signed-apk-android/)

    1.生成私有秘钥

             ①根目录下打开终端,执行命令:

                      keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

                    ②根据提示输入口令: 同时记住 密钥库口令 

                    ③生成密钥库文件    根目录下生成一个 my-release-key.keystore 的文件,直接拿到android/app

               2.设置 gradle 变量:
      
①在android/gradle.properties中加入代码:

          MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******

       其中******换成 密钥库口令

                3.添加签名配置:

      ①在android/app/build.gradle添加代码:

            android {

                      … 

                 defaultConfig {

                        …. 

                    } 

                 signingConfigs {

                 release {

                      storeFile file(MYAPP_RELEASE_STORE_FILE)

                      storePassword MYAPP_RELEASE_STORE_PASSWORD

                      keyAlias MYAPP_RELEASE_KEY_ALIAS

                      keyPassword MYAPP_RELEASE_KEY_PASSWORD

                  }

              }

            splits {

                  ….   

             }   

             buildTypes {        

                release {

                    signingConfig signingConfigs.release

                    …        

                }    

            }  

            …..            

        }

       4.生成发行 APK 包    

      ①终端cd到android目录下  

          gradlew clean (不clean也能打包,但是安装后容易造成APP闪退的问题)

          gradlew assembleRelease

      需要注意的是每次打包之前最好删除android和android/app文件下的build包,清除之前的缓存。

      ②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk。

 

                  问题解决一:

      现象:ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.

                    解决办法:在app的build.gradle里的android{}中添加如下代码

        

android {
    compileSdkVersion 23
    buildToolsVersion ´25.0.0´

    defaultConfig {
        applicationId "com.luzhiyao.sgongdoocar"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 5
        versionName "1.1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(´proguard-android.txt´), ´proguard-rules.pro´
        }
    }

    //添加此处代码即可
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

再次打包 结果如下:

      问题二:npm WARN checkPermissions Missing write access to D:\react-native-workspace\react-native\react-nativ

                     解决办法:(待验证

        删除掉 C:\Users\dd\AppData\Roaming\npm-cache\

            C:\Users\dd\AppData\Roaming\npm\  两个文件夹  重新执行 npm install -g

      关闭自动唤起的 Metro Server ,在项目根目录手动运行:react-native start --root 项项目绝对路径/rn_temp react-native start –root 项项目绝对路径/rn_temp

 

 

                      keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

                      keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

                    ②根据提示输入口令: 同时记住 密钥库口令 

                    ②根据提示输入口令: 同时记住 密钥库口令                     ②根据提示输入口令: 同时记住 密钥库口令 

                    ③生成密钥库文件    根目录下生成一个 my-release-key.keystore 的文件,直接拿到android/app

                    ③生成密钥库文件    根目录下生成一个 my-release-key.keystore 的文件,直接拿到android/app                    ③生成密钥库文件    根目录下生成一个 my-release-key.keystore 的文件,直接拿到android/app

               2.设置 gradle 变量:
      
①在android/gradle.properties中加入代码:

               2.设置 gradle 变量:
      
               2.设置 gradle 变量:
      

          MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******

       其中******换成 密钥库口令

          MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******

       其中******换成 密钥库口令

          MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

       MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_STORE_PASSWORD=******          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******          MYAPP_RELEASE_KEY_PASSWORD=******

       其中******换成 密钥库口令

密钥库口令

                3.添加签名配置:

                3.添加签名配置:                3.添加签名配置:

      ①在android/app/build.gradle添加代码:

            

            android {

                      … 

                 defaultConfig {

                        …. 

                    } 

                 signingConfigs {

                 release {

                      storeFile file(MYAPP_RELEASE_STORE_FILE)

                      storePassword MYAPP_RELEASE_STORE_PASSWORD

                      keyAlias MYAPP_RELEASE_KEY_ALIAS

                      keyPassword MYAPP_RELEASE_KEY_PASSWORD

                  }

              }

            splits {

                  ….   

             }   

             buildTypes {        

                release {

                    signingConfig signingConfigs.release

                    …        

                }    

            }  

            …..            

        }

            android {

                      … 

                 defaultConfig {

                        …. 

                    } 

                 signingConfigs {

signingConfigs {
signingConfigs {

                 release {

                 release {                 release {

                      storeFile file(MYAPP_RELEASE_STORE_FILE)

                      storeFile file(MYAPP_RELEASE_STORE_FILE)                      storeFile file(MYAPP_RELEASE_STORE_FILE)

                      storePassword MYAPP_RELEASE_STORE_PASSWORD

                      storePassword MYAPP_RELEASE_STORE_PASSWORD                      storePassword MYAPP_RELEASE_STORE_PASSWORD

                      keyAlias MYAPP_RELEASE_KEY_ALIAS

                      keyAlias MYAPP_RELEASE_KEY_ALIAS                      keyAlias MYAPP_RELEASE_KEY_ALIAS

                      keyPassword MYAPP_RELEASE_KEY_PASSWORD

                      keyPassword MYAPP_RELEASE_KEY_PASSWORD                      keyPassword MYAPP_RELEASE_KEY_PASSWORD

                  }

                  }                  }

              }

              }              }

            splits {

                  ….   

             }   

             buildTypes {        

                release {

                    signingConfig signingConfigs.release

 signingConfig signingConfigs.release signingConfig signingConfigs.release

                    …        

                }    

            }  

            …..            

        }

       4.生成发行 APK 包    

       4.生成发行 APK 包           4.生成发行 APK 包    

      ①终端cd到android目录下  

      ①终端cd到android目录下        ①终端cd到android目录下  

          gradlew clean (不clean也能打包,但是安装后容易造成APP闪退的问题)

                    gradlew clean

          gradlew assembleRelease

          gradlew assembleRelease

      需要注意的是每次打包之前最好删除android和android/app文件下的build包,清除之前的缓存。

      

      ②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk。

 

                  问题解决一:

      现象:ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.

                    解决办法:在app的build.gradle里的android{}中添加如下代码

        

android {
    compileSdkVersion 23
    buildToolsVersion ´25.0.0´

    defaultConfig {
        applicationId "com.luzhiyao.sgongdoocar"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 5
        versionName "1.1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(´proguard-android.txt´), ´proguard-rules.pro´
        }
    }

    //添加此处代码即可
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

再次打包 结果如下:

      问题二:npm WARN checkPermissions Missing write access to D:\react-native-workspace\react-native\react-nativ

                     解决办法:(待验证

        删除掉 C:\Users\dd\AppData\Roaming\npm-cache\

            C:\Users\dd\AppData\Roaming\npm\  两个文件夹  重新执行 npm install -g

      关闭自动唤起的 Metro Server ,在项目根目录手动运行:react-native start --root 项项目绝对路径/rn_temp react-native start –root 项项目绝对路径/rn_temp

 

 

      ②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk。

 

                  问题解决一:

      现象:ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.

ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.

                    解决办法:在app的build.gradle里的android{}中添加如下代码

                    解决办法:在app的build.gradle里的android{}中添加如下代码 解决办法:在app的build.gradle里的android{}中添加如下代码

        

                

android {
    compileSdkVersion 23
    buildToolsVersion ´25.0.0´

    defaultConfig {
        applicationId "com.luzhiyao.sgongdoocar"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 5
        versionName "1.1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(´proguard-android.txt´), ´proguard-rules.pro´
        }
    }

    //添加此处代码即可
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}
android {
    compileSdkVersion 23
    buildToolsVersion ´25.0.0´

    defaultConfig {
        applicationId "com.luzhiyao.sgongdoocar"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 5
        versionName "1.1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(´proguard-android.txt´), ´proguard-rules.pro´
        }
    }

    //添加此处代码即可
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

android {
compileSdkVersion
23
buildToolsVersion ´
25.00´

defaultConfig {
applicationId com.luzhiyao.sgongdoocar
minSdkVersion
14
targetSdkVersion
23
versionCode
5
versionName
1.1.0
}
buildTypes {
release {
minifyEnabled
false
proguardFiles getDefaultProguardFile(´proguard
rules.pro´
}
}

//添加此处代码即可 lintOptions {
checkReleaseBuilds
false
abortOnError
false
}
}

再次打包 结果如下:

      问题二:npm WARN checkPermissions Missing write access to D:\react-native-workspace\react-native\react-nativ

                     解决办法:(待验证

待验证

        删除掉 C:\Users\dd\AppData\Roaming\npm-cache\

            C:\Users\dd\AppData\Roaming\npm\  两个文件夹  重新执行 npm install -g

      关闭自动唤起的 Metro Server ,在项目根目录手动运行:react-native start --root 项项目绝对路径/rn_temp react-native start –root 项项目绝对路径/rn_temp

react-native start --root 项项目绝对路径/rn_temp 

 

 

» 本文来自:前端开发者 » 《封装H5ToApp方法_奔赴_前端开发者》
» 本文链接地址:https://www.rokub.com/73572.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!