带 Flutter 的 AppCenter(IOS 和 Android)
AppCenter with Flutter (IOS and Android)
现在我们正在开发 2 个 flutter 项目,运行正在 Android 和 IOS 上工作。那里没有问题(是的)
我遇到的问题是,我找不到将 AppCenter 实施到我的项目中的方法。
官方网站上的指南实际上非常简单,但它不起作用,给出了 null-safety 错误:
不能 运行 具有良好的空安全性,因为以下依赖项不支持空安全性:
package:appcenter
package:appcenter_分析
package:appcenter_崩溃
我带着 --no-sound-null-safety arg 走来走去,但这对 IOS 没有帮助。甚至不能“运行”这个项目。
其次,我尝试了 this plugin,但无论我如何进行,我都无法让它同时适用于 IOS 和 Android。我遇到的最后一个错误是 "Unsupported Android Plugin version: 7.0.0."(说明告诉我遵循 [=] 中插件示例项目中的设置=35=])
所以,我在这里走到了死胡同..
任何人都可以建议我遵循 AppCenter 的正确方法吗?
您可能会问为什么使用 AppCenter?因为 firebase 仅用于“测试”分发,我确实需要使用 AppCenter 的 public 发布服务。
在痛苦地度过几个小时后,我找到了解决办法。
那么,方法如下:
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.等级:
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 个文件中更新您的版本代码:
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">
就是这样。我就是这样解决问题的。
现在我们正在开发 2 个 flutter 项目,运行正在 Android 和 IOS 上工作。那里没有问题(是的) 我遇到的问题是,我找不到将 AppCenter 实施到我的项目中的方法。 官方网站上的指南实际上非常简单,但它不起作用,给出了 null-safety 错误: 不能 运行 具有良好的空安全性,因为以下依赖项不支持空安全性: package:appcenter package:appcenter_分析 package:appcenter_崩溃
我带着 --no-sound-null-safety arg 走来走去,但这对 IOS 没有帮助。甚至不能“运行”这个项目。
其次,我尝试了 this plugin,但无论我如何进行,我都无法让它同时适用于 IOS 和 Android。我遇到的最后一个错误是 "Unsupported Android Plugin version: 7.0.0."(说明告诉我遵循 [=] 中插件示例项目中的设置=35=]) 所以,我在这里走到了死胡同..
任何人都可以建议我遵循 AppCenter 的正确方法吗?
您可能会问为什么使用 AppCenter?因为 firebase 仅用于“测试”分发,我确实需要使用 AppCenter 的 public 发布服务。
在痛苦地度过几个小时后,我找到了解决办法。 那么,方法如下:
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.等级:
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 个文件中更新您的版本代码:
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">
就是这样。我就是这样解决问题的。