AppCenter with Flutter(iOS和Android)

lf3rwulv  于 2023-05-23  发布在  Flutter
关注(0)|答案(1)|浏览(196)

现在我们正在开发2个flutter项目,都在Android和iOS上运行。没有问题(是的)我的问题是,我找不到一种方法来实现AppCenter到我的项目。官方网站上的指南实际上是非常直接的,但它不起作用,给出了空安全错误:无法以健全的空安全运行,因为以下依赖项不支持空安全:package:appcenter package:appcenter_analytics package:appcenter_crashes
我用--no-sound-null-safety参数四处走动,但这对IOS没有帮助。甚至不能“运行”项目。关于它的问题
其次,我尝试了this plugin,但无论我如何进行,我无法设法使它既适用于iOS和Android。最后一个错误是 “不支持的Android插件版本:7.0.0."(说明告诉我要遵循GitHub中插件示例项目中的设置)所以,我在这里走到了死胡同。.
谁能给我一个正确的方法来遵循AppCenter?
你可能会问为什么要使用AppCenter?因为firebase只用于“测试”发行版,我真的需要使用AppCenter的公共发布服务。

hc2pp10m

hc2pp10m1#

在痛苦中度过几个小时后,我找到了解决办法。所以,下面是方法:
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.2.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">

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

相关问题