Giter Club home page Giter Club logo

react-native-app-upgrade's Introduction

React Native App 版本升级封装库,兼容Android4以上所有版本

⚠️ 如遇到lStar编译失败问题,请将build & target version 改成 31

一、功能

Android

(1)版本检测
(2)下载更新
(3)进度提示
(4)自动安装

iOS

(1)版本检测
(2)自动跳转App Store

二、使用

  yarn add rn-app-upgrade

  // or 
  npm install rn-app-upgrade
 
  // less than 0.6
  react-native link rn-app-upgrade

iOS 打开Xcode, 将 ios_upgrade 导入到项目目录。

  import { 
    downloadApk,
    versionName,
    versionCode,
    openAPPStore,
    checkIOSUpdate,
    addDownLoadListener,
  } from 'rn-app-upgrade';
  
  //可通过RN.versionName获取apk版本号和远程版本号进行比较
  if(Android) {
    if(res.versionCode > versionCode) {
        downloadApk({
            interval: 666, // listen to upload progress event, emit every 666ms
            apkUrl: "https://xxxx.apk",
            downloadInstall: true,
            callback: {
                onProgress: (received, total, percent) => {},
                onFailure: (errorMessage, statusCode) => {},
                onComplete: () => {},
            },
        });
    }
  } else {
    const IOSUpdateInfo = await checkIOSUpdate(appid, 当前版本号);
    IOSUpdateInfo.code // -1: 未查询到该App 或 网络错误 1: 有最新版本 0: 没有新版本
    IOSUpdateInfo.msg
    IOSUpdateInfo.version
  }

react-native-app-upgrade's People

Contributors

lf7817 avatar puti94 avatar songxiaoliang avatar wangyihang875 avatar yogaan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-native-app-upgrade's Issues

Unsupported type 'paths'

react-native: "0.55.3"

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> D:\project\TouTiao\android\app\src\main\res\values\update_file_provider.xml: Error: Unsupported type 'paths'

这怎么办

updateFileProvider

你好 mainfest 里的 ${applicationId}.updateFileProvider 是不是没有放出来。sync的时候 编译不过

不能运行

下载JAVA 包后,各种找不到包,不能运行的,怎么回事?

无法使用

Android 的好像不能用,
DownloadService.java 文件中的 onHandleIntent不会执行

关于文档

文档可以写详细点吗?看完完全不知道怎么配呀。可以指明一下到底是哪个目录吗?

下载https时候,报错

你好,当我的apk的地址是放在七牛云上,下载地址是https的时候,下载失败
错误日志为:
E/DownloadService: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Wed Sep 12 19:59:59 EDT 2018 (compared to Tue Oct 30 23:24:02 EDT 2018)

报错啊

android下面好不容易配置好后,项目也能正常编译运行了,点击更新居然报错了,_reactNative.NativeModules.upgrade.upgrade找不到,帮忙看看呗,多谢

import com.cloudbusiness.R;

我看你的包里面也没有这个类?import com.cloudbusiness.R;
我这边允许时候报了这个错误?请问是什么原因?
:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
E:\development\WWW\app.4399.com\app\android\app\src\main\java\com\sy4399\h5\android_upgrade\DownloadService.java:14: ▒▒▒▒: ▒▒▒▒▒com.cloudbusiness▒▒▒▒▒▒
import com.cloudbusiness.R;
^
E:\development\WWW\app.4399.com\app\android\app\src\main\java\com\sy4399\h5\android_upgrade\DownloadService.java:114: ▒▒▒▒: ▒▒▒▒▒R▒▒▒▒▒▒
mBuilder.setContentText(this.getString(R.string.android_auto_update_download_progress, progress)).setProgress(100, progress, false);
^
E:\development\WWW\app.4399.com\app\android\app\src\main\java\com\sy4399\h5\android_upgrade\UpgradePackage.java:26: ▒▒▒▒: ▒▒▒▒▒▒▒Ḳ▒ǻ▒ʵ▒ֳ▒▒▒▒͵ķ▒▒▒
@OverRide
^
ע: ijЩ▒▒▒▒▒ļ▒ʹ▒û򸲸▒▒▒▒ѹ▒ʱ▒▒ API▒▒
ע: ▒й▒▒▒ϸ▒▒Ϣ, ▒▒ʹ▒▒ -Xlint:deprecation ▒▒▒±▒▒롣
3 ▒▒▒▒▒▒
:app:compileDebugJavaWithJavac FAILED

使用方法不是很明白

配置已经可以了,使用时
Http.get(Api.api_checkupdate, null, false, (result)=>{
if(result.ok) {
NativeModules.upgrade.upgrade(this.state.apkUrl);
}
});
Http需要import吗?

react-native-app-upgrade和react-native-image-crop-picker都用到了fileProvider,导致冲突报错

G:\project\sucaiapp_3\android\app\src\main\AndroidManifest.xml:60:13-70 Error:
Attribute provider#android.support.v4.content.FileProvider@authorities value=(c
om.dadichuangke.updateFileProvider) from AndroidManifest.xml:60:13-70
is also present at [sucaiapp:react-native-image-crop-picker:unspecified] Andr
oidManifest.xml:15:13-60 value=(com.dadichuangke.provider).
Suggestion: add 'tools:replace="android:authorities"' to eleme
nt at AndroidManifest.xml:58:9-66:20 to override.
G:\project\sucaiapp_3\android\app\src\main\AndroidManifest.xml:65:17-61 Error:
Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/up
date_file_provider) from AndroidManifest.xml:65:17-61
is also present at [sucaiapp:react-native-image-crop-picker:unspecified] Andr
oidManifest.xml:20:17-55 value=(@xml/provider_paths).
Suggestion: add 'tools:replace="android:resource"' to element a
t AndroidManifest.xml:63:13-65:64 to override.

Building 97% > :app:processDebugManifest
See http://g.co/androidstudio/manifest-merger for more information about the man
ifest merger.

:app:processDebugManifest FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugManifest'.

Manifest merger failed with multiple errors, see logs

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug
    option to get more log output.

BUILD FAILED
请问这该怎么解决,才不影响两个插件的正常使用?

群主大大 AndroidManifest.xml 报错了

rn 0.44
ugManifest 98% > :app:processDebugManifest
D:\project\taihe_member\android\app\src\main\AndroidManifest.xml:35:13-70 Error:

   Attribute provider#android.support.v4.content.FileProvider@authorities va

lue=(com.xxx.updateFileProvider) from AndroidManifest.xml:35:13-70
is also present at [taihe:react-native-image-picker:unspecified] AndroidManife
st.xml:14:13-60 value=(com.xxx.provider).
Suggestion: add 'tools:replace="android:authorities"' to elemen
t at AndroidManifest.xml:33:9-41:20 to override.
D:\project\taihe_member\android\app\src\main\AndroidManifest.xml:40:17-61 Error:

   Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@

xml/update_file_provider) from AndroidManifest.xml:40:17-61
is also present at [taihe:react-native-image-picker:unspecified] AndroidManif
est.xml:19:17-55 value=(@xml/provider_paths).
Suggestion: add 'tools:replace="android:resource"' to element a
t AndroidManifest.xml:38:13-40:64 to override.

See http://g.co/androidstudio/manifest-merger for more information about the man
ifest merger.

:app:processDebugManifest FAILED

请教如何使用

亲,我是没有看懂怎么用。
问题1:APP .APK 文件放在服务器,下载地址写在哪呢?
问题2:那个怎么根据下载地址知道下载的版本比当前版本高呢?

当使用剪裁插件react-native-syan-image-picker怎么办?

/Users//android/app/src/main/AndroidManifest.xml:44:17-74 Error:
Attribute provider#android.support.v4.content.FileProvider@authorities value=(com.zishahui.debug.updateFileProvider) from AndroidManifest.xml:44:17-74
is also present at [:react-native-syan-image-picker] AndroidManifest.xml:18:13-60 value=(com.zishahui.debug.provider).
Suggestion: add 'tools:replace="android:authorities"' to element at AndroidManifest.xml:42:9-50:20 to override.
/Users/
/android/app/src/main/AndroidManifest.xml:49:21-65 Error:
Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/update_file_provider) from AndroidManifest.xml:49:21-65
is also present at [:react-native-syan-image-picker] AndroidManifest.xml:23:17-51 value=(@xml/file_paths).
Suggestion: add 'tools:replace="android:resource"' to element at AndroidManifest.xml:47:13-49:68 to override.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugManifest'.

Manifest merger failed with multiple errors, see logs

报错找不到资源文件

/Users/zhangdengchuan/Desktop/poject/AQ-phone-project/android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:52:35-60: AAPT: No resource found that matches the given name (at 'resource' with value '@xml/update_file_provider').

/Users/zhangdengchuan/Desktop/poject/AQ-phone-project/android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:50: error: Error: Noresource found that matches the given name (at 'resource' with value '@xml/update_file_provider').

我按照提示吧 update_file_provider.xml 添加在了res 目录下但是报错

undefined is not an object?

开发环境:mac+xcode9.3
按照readme里安装,把ios_upgrade复制到项目ios目录下后,仍无法安装成功,会提示undefined is not an object,即是Nativemodules下面没有upgrade这个属性,是否还需要其它操作?
抱歉,对原生不太熟悉。

编译时报错

DownloadService.java +113

mBuilder.setContentText(this.getString(R.string.android_auto_update_download_progress, progress)).setProgress(100, progress, false);
这里的

R.string.android_auto_update_download_progress

提示 找不到 android_auto_update_download_progress。

请教关于安卓apk的地址问题

您好!多谢分享。问题如下:

如果Apk的版本信息和下载地址是类似下面访问后台获取的话:

Http.get(Api.api_checkupdate, null, false, (result)=>{
if(result.ok) {
// 下载最新Apk
NativeModules.upgrade.upgrade(this.state.apkUrl);
}
});

那么下面的配置信息(比如UPDATE_URL)似乎没用上?
class Constants {

// json {"url":"http://192.168.205.33:8080/Hello/app_v3.0.1_Other_20150116.apk","versionCode":2,"updateMessage":"版本更新信息"}

static final String APK_DOWNLOAD_URL = "url";
static final String APK_UPDATE_CONTENT = "updateMessage";
static final String APK_VERSION_CODE = "versionCode";


static final int TYPE_NOTIFICATION = 2;

static final int TYPE_DIALOG = 1;

static final String TAG = "UpdateChecker";

static final String UPDATE_URL = "https://raw.githubusercontent.com/feicien/android-auto-update/develop/extras/update.json";

}

谢谢!

版本下载的是时候没有提示

@songxiaoliang 大神, 刚刚我忘记问了一个问题,就是用您这个库的时候,怎样能够弹出通知栏的消息?
现在能够直接用了,但是进行更新的时候 好像是在后台进行了,【没有任何的提示】,我们在通知栏上面也没有看到相关的下载通知,然后下载完成之后就突然弹出一个安装的框, 感觉可以 不是很友好, 可以告诉我们怎样 在下载更新的时候将通知栏消息打开? 然后下载完成后自动关闭通知栏的消息?

兼容Android8.0

安装升级还有通知栏没有做兼容Android8.0系统的操作

建议作者更正Readme

1.所有的类的package都需要修改为自己的路径地址。
2.DownloadService类中import com...R修改为自己的app地址名称,124行的Build.VERSION_CODES.N修改为.M对象。
3.需要使用者阅读Constants类,才能明白更新请求原理。
4.MainApplication中import 项目工程包名.UpgradePackage中的项目工程包名其实不对,应该是import com...android_upgrade.UpgradePackage。
5.compileSdkVersion 26 buildToolsVersion '26' 这两个不能随便修改,会影响其他的库。应该做个说明。
6.最后建议作者应该提交一个案例(胜过N个说明),最后希望作者以后最好以图文的方式做说明。
关于自己的开发:
最终可以运行并发布到真机,But提示解析包错误,无法更新APP。决定放弃此方式。谨以此提示其他使用者和作者。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.