带有 Flutter 的 AppCenter(IOS 和 Android)

Posted

技术标签:

【中文标题】带有 Flutter 的 AppCenter(IOS 和 Android)【英文标题】:AppCenter with Flutter (IOS and Android) 【发布时间】:2021-12-27 23:00:53 【问题描述】:

目前我们正在开发 2 个 Flutter 项目,都在 androidios 上运行。那里没有问题(耶) 我遇到的问题是,我找不到将 AppCenter 实施到我的项目中的方法。 官方网站上的指南实际上非常简单,但它不起作用,给出了 null-safety 错误: 无法以可靠的 null 安全性运行,因为以下依赖项不支持 null 安全性: 包:应用中心 包:appcenter_analytics 包:appcenter_crashes

我带着 --no-sound-null-safety arg 到处走走,但这对 IOS 没有帮助。甚至不能“运行”该项目。 My Question About It

其次,我尝试了this plugin,但无论我如何进行,我都无法使其同时适用于 IOS 和 Android。我遇到的最后一个错误是 “Unsupported Android Plugin version: 7.0.0.”(指令告诉我遵循 GitHub 中插件示例项目中的设置) 所以,我在这里陷入了死胡同..

谁能建议我遵循 AppCenter 的正确方法?

您可能会问为什么选择 AppCenter?因为 firebase 只用于“测试”分发,我确实需要使用 AppCenter 的公共发布服务。

【问题讨论】:

使用标签前请阅读标签描述符。 【参考方案1】:

在痛苦中度过了几个小时后,我找到了解决方案。 那么,方法如下:

android\app\src\main\java\com\arkitek\flutter\arkitek_app_internal\MainActivity.java

    package com.arkitek.flutter.arkitek_app_internal;
    import io.flutter.embedding.android.FlutterActivity;
    import com.microsoft.appcenter.AppCenter;
    import com.microsoft.appcenter.analytics.Analytics;
    import com.microsoft.appcenter.crashes.Crashes;
    import com.microsoft.appcenter.distribute.Distribute;
    import android.os.Bundle;
    
    
    public class MainActivity extends FlutterActivity 
    
    @Override
    
    protected void onCreate(Bundle savedInstanceState) 
    
    AppCenter.start(getApplication(), "OUR SECRET KEY", Distribute.class);
    
    AppCenter.setEnabled(true);
    
    super.onCreate(savedInstanceState); 

并且在 AndroidManifest.xml 文件中:

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

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

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

app/build.grade:

dependencies 

    def appCenterSdkVersion = '4.1.0'

    implementation "com.microsoft.appcenter:appcenter-analytics:$appCenterSdkVersion"

    implementation "com.microsoft.appcenter:appcenter-crashes:$appCenterSdkVersion"

    implementation "com.microsoft.appcenter:appcenter-distribute:$appCenterSdkVersion"


还有,

要让 AppCenter 知道您正在发布更新,您应该在 3 个文件中更新您的 versionCode:

android\app\build.gradle

..
Android 

defaultConfig 
applicationId "com.arkitek.flutter.arkitek_app_internal"
minSdkVersion 21
targetSdkVersion 30
versionCode 9
versionName "1.0.19"

pubspec.yaml ->

version: 1.0.19+1 

和 android\app\src\main\AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="9"
android:versionName="1.0.19"
package="com.arkitek.flutter.arkitek_app_internal">

就是这样。这就是我解决问题的方法。

【讨论】:

以上是关于带有 Flutter 的 AppCenter(IOS 和 Android)的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 在 Android Studio 和 AppCenter 中都找不到 Flutter 构建的 APK

使用风味使用 MS AppCenter 构建 Flutter android APK 的问题

测试未在 AppCenter 上执行 - 每次都失败。 - 在本地执行良好

带有圆角的 Flutter WebView

带有滚动条的 Flutter Listview

在 `../node_modules/appcenter/ios/appcenter.podspec` 中找不到 `appcenter` 的 podspec