AppCenter Release Manager

pub package Build Status Coverage Status MIT license

Download appcenter updates straight from your iOS or Android app.

Use the predefined UI with the AppcenterReleaseManagerLatestReleases widget

Api Token should have read access only

  AppcenterReleaseManagerLatestReleases(
    apiToken: 'your-api-token',
    ownerName: 'your-owner-name',
    appName: 'your-app-name',
  ),

Use the manager to create your custom ui. Should be used as a repository/service

Api Token should have read access only

AppCenterReleaseManager(
  apiToken: 'your-api-token',
)

Install by url or release details:

Api Token should have read access only

final details = await AppCenterReleaseManager(apiToken: '').getLatestReleaseDetails('owner_name','app_name');
AppCenterReleaseManager(apiToken: '').installRelease(details);                                                      

Or by url Api Token should have read access only

final details = await AppCenterReleaseManager(apiToken: '').getLatestReleaseDetails('owner_name','app_name');
AppCenterReleaseManager(apiToken: '').installReleaseByUrl(details.installUrl, appName: 'your-app-name', appVersion: 'your-version'); //appName & appVersion will be used in the notification on android. On iOS this is never used                                                      

Other available methods for the AppCenterReleaseManager:

Api Token should have read access only

AppCenterReleaseManager(apiToken: '').getUserDetails(); //global api token only

AppCenterReleaseManager(apiToken: '').getAllOrganizations(); //global api token only

AppCenterReleaseManager(apiToken: '').getAllApps(); //global api token only

AppCenterReleaseManager(apiToken: '').getAllApps(ownerName: 'owner_name'); //global api token only

AppCenterReleaseManager(apiToken: '').getReleases('owner_name','app_name'); //global/app api token only

AppCenterReleaseManager(apiToken: '').getReleaseDetails('owner_name','app_name', 'id'); //global/app api token only

AppCenterReleaseManager(apiToken: '').getLatestReleaseDetails('owner_name','app_name'); //global/app api token only

Android Production:

This package automaticly adds an extra permission to install apps from Android 8 & above.

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

For most cases you don't want this permission in Production. To remove this. Add the following lines to the AndroidManifest.xml for the flavour/buildtype where you don't want this permission

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your-package-name">

    <uses-permission
        android:name="android.permission.REQUEST_INSTALL_PACKAGES"
        tools:node="remove" />

</manifest>

In most cases you will place this in

/android/app/src/release/AndroidManifest.xml

But if you are using a flavour like prod, alpha, beta it will probably only be added here:

/android/app/src/prod/AndroidManifest.xml

This will make sure that the permission is only removed in prod so you can still install updates in beta & alpha