1、介绍
微软在Visual Studio 2017 正式发布的时候也上线了一个参考应用https://github.com/dotnet/eShopOnContainers

eShopOnContainers是基于微服务架构和Docker容器的一个简单的.Net Core的应用。目前微服务架构如火如荼,docker技术也发展迅速,微软在这时推出这个Demo,其用意可想而知,虽说这个Demo还不能完全应用到生产环境,但对于我们开发者来说,可是非常好的学习资料,无论你是稍作修改还是利用架构重新开发,学习这样一个Demo都是非常有必要的。(感谢James YinG授权摘抄)

2、架构
我们看下微软提供给我们的架构图

eShopOnContainers 如何跑起来全平台移动应用_ios

1、获取源代码


这套架构在Github上开源,地址:https://github.com/dotnet-architecture/eShopOnContainers
我们可以通过git把源代码clone下来。

 

2、运行Windows App


我们用vs2017打开eShopOnContainers-MobileApps.sln。
把eShopOnContainers.Windows项目设置为启动项,启动目标为“本地计算机”。

eShopOnContainers 如何跑起来全平台移动应用_xcode_02

Windows Phone 模拟器


很容易Windows App运行起来,微软自家的东西还是坑少。
运行Windows App我没有遇到什么坑,如何大家遇到了欢迎留言。

3、运行Android App


我们用vs2017打开eShopOnContainers-Android.sln。
把eShopOnContainers.Droid项目设置为启动项,由于Android模拟器太大没有安装,我使用了真机来运行,启动目标为“设备”。
很容易Android App也运行起来,对于开源的Android微软掌控的很好。
运行Android App我没有遇到什么坑,如何大家遇到了欢迎留言。

4、运行IOS App


坑最多的一个了,我们来把它运行起来吧。

在Mac下面我们直接来进行IOS真机调试:

准备一台安装有Xcode和vs2017 for mac 的Mac电脑,安装vs2017 for mac比较简单不过需要挂vpn才可以完成。

准备一部iPhone和一个Apple ID。

申请IOS开发者认证:https://developer.apple.com

做真机调试完全依赖Xcode,苹果各种应用申请也集成在Xcode里面了。

我们用Xcode创建一个新项目名称需要和eShopOnContainers-IOS项目名称一致。

eShopOnContainers 如何跑起来全平台移动应用_真机调试_03

Xcode项目

eShopOnContainers 如何跑起来全平台移动应用_真机调试_04

vs2017项目

Bundle Identifler :com.openedu.eShopOnContainers
对应
Info.plist里面的捆绑包标识符:com.openedu.eShopOnContainers

我们用vs2017 for mac打开eShopOnContainers-IOS.sln

设置IOS Bundle

eShopOnContainers 如何跑起来全平台移动应用_android_05

IOS Bundle


预配置文件如果是灰的说明Xcode建的那个项目的标识符不一致。

现在我们就可以在真机上运行调试了。

常见的2个错误、都是和苹果开发者认证有关系:
Error: No valid iOS code signing keys found in keychain. You need to request a codesigning certificate from https://developer.apple.com. (eShopOnContainers.iOS)

Error: No installed provisioning profiles match the installed iOS signing identities. (eShopOnContainers.iOS)

当然vs2017也提供了在Windows下面进行IOS开发和调试的功能,不过需要远程共享一台Mac。

在Mac上需要开启远程登录:

eShopOnContainers 如何跑起来全平台移动应用_ios_06

远程登录

连接Mac代理,Mac端需要安装vs2017 for mac,并且更新Xamarin.IOS到10.10版本。

eShopOnContainers 如何跑起来全平台移动应用_android_07

Mac代理

把eShopOnContainers.IOS项目设置为启动项,启动目标为“iPhone 7 Plus IOS 10.3”。

eShopOnContainers 如何跑起来全平台移动应用_ios_08

IOS 模拟器

在IOS 模拟器成功运行起来,在Windows进行真机调试没有尝试成功。

运行IOS App如何大家还遇到其它坑欢迎留言。


 

eShopOnContainers 如何跑起来全平台移动应用_android_09