一些华为移动设备没有 Google Play 商店,而是有华为 AppGallery。由于 Flutter 是用于跨平台开发(iOS 和 Android),因此可能需要通过华为 AppGallery 提出 Flutter 开发的应用程序。
没有Google Play Store的华为设备仍然使用Android,上传到Huawei AppGallery的应用程序必须有apk扩展程序(就像在Google Play Store中一样)。这些预感至少可以在华为 AppGallery 上提出一些 Google Play Store 应用程序。但是,我没有找到任何证据或确认。这种兼容性也没有任何明确的边界。例如,由于技术或法律原因,某些服务可能无法在华为应用市场上运行或不被接受。这个边界的一部分是使用 Flutter 来开发应用程序。
那么,我的问题是,Flutter 开发的应用程序是否可以与华为应用程序库兼容,如果可以,在什么条件下?
首次应用发布后编辑 2020 04 13
我的第一个 Flutter 应用刚刚发布在华为应用市场。这回答了问题的第一部分。尽管如此,由于这个应用程序非常简约,这并没有回答最重要的部分,即:在什么情况下 Flutter 应用程序可以在华为应用程序市场上发布?
在为 iOS 或 Android 或两者构建 Flutter 应用程序时,您可能希望也为 KaiOS 构建它。Flutter 允许生成 Web 应用程序。KaiOS 在其应用商店中接受网络应用。
所以,我想知道它是否现实以及如何在 KaiOS 应用商店中接受 Flutter 应用程序。
我使用 Debian Linux 计算机作为我的主要开发计算机,用于使用 Android Studio 开发适用于 Android 的 Flutter 应用程序。当我想在 iOS 上测试应用程序时,我需要从我的 Apple macOS 计算机上的源代码控制系统 (GitLab) 中提取 Flutter 应用程序源代码,然后使用 Android Studio 从那里构建、部署和运行。
我想做的是避免流程中的源代码控制拉取步骤,并从 Linux 计算机上的 Android Studio 启动 iOS 构建、部署和在 Apple 计算机上运行。
我将 Android Studio 中的构建、部署和执行步骤视为命令。我相信这些命令可以通过 Gradle 配置文件进行配置。如果是这样,应该可以配置 Android Studio 和 Gradle,以便我在 Linux 上的 Android Studio 使用远程 Apple 计算机通过 Xcode 服务器或通过安装在 Mac 上的 SSH 服务器进行构建、部署和运行。
目前,当我flutter build ios在我的 Linux 机器上尝试 a时,我收到了这个预期的错误消息:
Building for iOS is only supported on the Mac.
Run Code Online (Sandbox Code Playgroud)
有没有人有办法让这个遥控器?
在Signature Version 4上的AWS示例之后,我尝试使用带有Google apps脚本的Google Sheets重现该示例。我在示例中遇到了kregion签名的问题。尽管我可以使用在线签名工具确认AWS示例有效,但是我永远无法使用任何Google应用程序脚本来复制示例输出。由于HMAC SHA256签名在示例的早期部分(kdate)可以正常工作,因此问题似乎出在存储或使用数据的方式上。
以下是适用于kDate的内容:来自另一个stackoverflow条目的部分,用于将字节数组转换为十六进制字符串,并借助computeHmacSha256Signature的Google Apps脚本文档:
var input="20120215";
var key="AWS4"+"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY";//Do not worry, this is an example key, not my actual key
var signature=Utilities.computeHmacSha256Signature(input,key);
signature=signature.map(function(chr){return (chr+256).toString(16).slice(-2)}).join('');//convert byte array to hex string
Logger.log(signature);//valid 969fbb94feb542b71ede6f87fe4d5fa29c789342b0f407474670f0c2489e0a0d
Run Code Online (Sandbox Code Playgroud)
这是kRegion的同一件事:
var input="us-east-1";
var key="969fbb94feb542b71ede6f87fe4d5fa29c789342b0f407474670f0c2489e0a0d";
var signature=Utilities.computeHmacSha256Signature(input,key);
signature=signature.map(function(chr){return (chr+256).toString(16).slice(-2)}).join('');
Logger.log(signature);//non-valid a59e30f9d899c47b3dd68ea1c0ab3bb529e03a8f4ed2f54cb64af547330a22a0
Run Code Online (Sandbox Code Playgroud)
我不惊讶它不会产生有效的示例kRegion输出,69daa0209cd9c5ff5c8ced464a696fd4252e981430b10e3d3fd8e2f197d7a70c因为密钥存储为十六进制字符串,这没有多大意义。这是试图将十六进制字符串解码为从此github条目启发而来的字节数组的同一件事:
var input="us-east-1";
var key="969fbb94feb542b71ede6f87fe4d5fa29c789342b0f407474670f0c2489e0a0d";
var a=[];
for(var i=0, len=key.length; i<len; i+=2) {
a.push(parseInt(key.substr(i,2),16));
}
key=a;
Logger.log(key);//[150.0, …Run Code Online (Sandbox Code Playgroud) sha256 digital-signature hmac amazon-web-services google-apps-script