Xamarin-在没有应用商店的情况下更新应用程序

Xamarin-在没有应用商店的情况下更新应用程序,xamarin,xamarin.ios,xamarin.android,xamarin.forms,Xamarin,Xamarin.ios,Xamarin.android,Xamarin.forms,Xamarin不支持在不发布到app store的情况下更新应用程序,是否存在技术限制?Javascript跨平台移动开发框架(如React Native或Cordova)可以做到这一点。这是因为所有代码都在js文件中,可以从ARM二进制文件的外侧下载。Xamarin的代码是二进制的。此外,如果你的代码在应用商店中,你应该通过应用商店进行更新。这不是Xamarin的限制(因为你也不能用原生obj-c应用程序来实现),而是js应用程序的“专业” 另外,如果您使用企业部署而不是应用商店,您可以随时更

Xamarin不支持在不发布到app store的情况下更新应用程序,是否存在技术限制?Javascript跨平台移动开发框架(如React Native或Cordova)可以做到这一点。

这是因为所有代码都在js文件中,可以从ARM二进制文件的外侧下载。Xamarin的代码是二进制的。此外,如果你的代码在应用商店中,你应该通过应用商店进行更新。这不是Xamarin的限制(因为你也不能用原生obj-c应用程序来实现),而是js应用程序的“专业”


另外,如果您使用企业部署而不是应用商店,您可以随时更新(因为您完全控制部署机制)。

这是因为所有代码都在js文件中,可以从ARM二进制文件的外侧下载。Xamarin的代码是二进制的。此外,如果你的代码在应用商店中,你应该通过应用商店进行更新。这不是Xamarin的限制(因为你也不能用原生obj-c应用程序来实现),而是js应用程序的“专业”


顺便说一句,如果你使用企业部署而不是应用商店,你可以随时更新(因为你完全控制部署机制)。

从某种意义上说,你是在拿苹果和桔子做比较。说到本机开发,Xamarin是一个允许您通过包装器进行本机开发的框架:

因此,您将执行相同的工作流程,就像您正在推动对本机Android/iOS应用程序的更新一样(分别使用Java/Obj-C编程)

而另一方面,在React/Cordova等框架中,它们有机制通过从服务器端服务拉入
注入
内容。这一点在第三方cordova项目中得到了非常清楚的解释,该项目就是这样做的:


但是,如果您制作了一个与服务器端服务没有连接的
本地
Cordova应用程序,并且需要对其进行更新,你很可能必须按照同样的程序上传新的
.ipa
/
.apk
和新的资产/code/etc,因为它将是一个打包的独立应用程序。

从某种意义上说,你是在比较苹果和桔子。说到本机开发,Xamarin是一个允许您通过包装器进行本机开发的框架:

因此,您将执行相同的工作流程,就像您正在推动对本机Android/iOS应用程序的更新一样(分别使用Java/Obj-C编程)

而另一方面,在React/Cordova等框架中,它们有机制通过从服务器端服务拉入
注入
内容。这一点在第三方cordova项目中得到了非常清楚的解释,该项目就是这样做的:


但是,如果您制作了一个与服务器端服务没有连接的
本地
Cordova应用程序,并且需要对其进行更新,你很可能必须按照同样的程序上传新的
.ipa
/
.apk
和新的资产/code/etc,因为它将是一个打包的独立应用程序。

Xamarin生成一个“本机”应用程序,与基于Swift/Obj的iOS应用程序或基于Java的Android应用程序相同。在混合应用程序中,您可以选择更新应用程序的内容,即html/javascript/media/。。。资源。您可以对任何“本机”应用程序(包括Xamarin)执行完全相同的操作,如果您编写一个混合应用程序并提供一种机制来下载和缓存嵌入式浏览器的更新资源,则React native也会生成一个本机应用程序,它不是混合应用程序。恰好使用JS而不是C。
React Native
是一个使用
JavaScriptCore
执行
JavaScript
的本机shell。您的程序逻辑运行在与javascript实例化的“本机”UI组件(和框架)通信的javascript线程上。虽然有人将Xamarin的Mono虚拟机和Android的Art/Dalvik虚拟机架构进行直接比较,但最终结果更倾向于混合风格的应用程序,而不是完全本地的应用程序(iOS Swift/ObjC或Android C/C++NDK)
Xamarin.iOS
编译为LLVM位码,但有一个嵌入式.NET/CIL虚拟机,因此更少的“本机”,但更多的“本机”,然后是本机反应….
Xamarin.Android
是一只奇怪的鸟,因为它有两个虚拟机,.NET/CIL虚拟机和一个到Android Java虚拟机的完整桥。
Xamarin.Android
生成的最终应用程序是一个Android NDK(基于C的)应用程序,它包括基于monovm和CIL的程序集(AOT'd与否)。因此,它更类似于天然反应。。。React Native提供了一个完整的指南,介绍了如何使用JavaScript来实现60 fps的速度,线程是如何工作的,等等。。。最终它不是“原生”的,但我也不会将
Xamarin.Android
最终结果称为原生,如果他们在未来重新启用AOT/LLVM,它将更加原生。Xamarin生产一个“原生”应用程序,与基于Swift/Obj的iOS应用程序或基于Java的Android应用程序相同。在混合应用程序中,您可以选择更新应用程序的内容,即html/javascript/media/。。。资源。您可以对任何“本机”应用程序(包括Xamarin)执行完全相同的操作,如果您编写一个混合应用程序并提供一种机制来下载和缓存嵌入式浏览器的更新资源,则React native也会生成一个本机应用程序,它不是混合应用程序。恰好使用JS而不是C。
React Native
是一个使用
JavaScriptCore
执行
JavaScript
的本机shell。您的程序逻辑运行在与javascript实例化的“本机”UI组件(和框架)通信的javascript线程上。虽然有人将Xamarin的Mono虚拟机和Android的Art/Dalvik虚拟机架构进行直接比较,但最终结果更倾向于混合风格的应用程序,而不是完全本地的应用程序(iOS Swift/ObjC或Android C/C++NDK)
Xamarin.iOS
compile