Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[原文发表地址]Developing cross-platform iOS application using Visual Studio
[原文发表时间]2015/6/4
C ++是一种流行的高级编程语言,可运行在iOS,Android或Windows等所有的移动设备上。有许多因素推动了在这些移动的平台使用C ++,从代码重用到运行时的性能。许多平台定义的应用程序可在这些平台运行如Office,Skype, Dropbox已架构他们的移动解决方案,在某种程度上促进或利用C ++作 为 他们绝大多数的的代码库。这不仅为他们提供了代码重用的优势并且降低了开发成本,而且作为C ++代码直接在硬件上运行, 它具有高速流,快速响应和高性能的体验,这也是他们的最终用户所期望的。然而,在所有这些设备平台上使用C ++这个设想不是那么的乐观, 因为在今天,用户为了实现这一目标需要使用多个IDE,各种工具链和构建系统令人担忧。从VS2015 RC开始,开发人员可以使用Visual Studio作为单一的C ++ IDE满足他们所有的跨平台的需求。这个博客专门地谈论了新推出的 使用Visual Studio开发iOS应用程序的体验。让我们开始吧 。
Getting Started入门
我们当前的iOS开发体验要求在Mac计算机上,这主要是因为法律而非技术的原因。因此,在我们开始之前,不仅需要下载微软的资源(项目和构建二进制文件,模板),而且在Mac上的部件需要安装,你可以跟着这里的向导去设置。
在开发人员使用Visual Studio 做iOS开发之前, 第一步是配对Mac机与运行Visual Studio的实体机。配对可以通过在工具 - >选项菜单中的远程代理进行配置。确保VCRemote agent是在Mac上运行的,然后输入详细信息,如主机名和端口字段等所有的设置。成功配对的最后一件事是设置远程根文件夹,它指向与您机器配对的Mac的VCRemote的位置。配对通过点击“配对”按钮启动,一旦配对我们 就可以用Visual Studio开发我们的第一个iOS应用程序。


The cross-platform 'iOS' templates跨平台 “ 的iOS' 模板
打开新建工程向导,我们提供的iOS跨平台的模板在Visual C ++\Cross-platform下面。我们允许建立完整的端到端的iOS应用程序与C ++静态和共享库。各种可用的模板如下图所示。在这篇博客中,我们将演示如何使用面向iOS和 Android平台的 OpenGLES应用程序。

下图展示了跨平台的OpenGLES应用程序。OpenGLESApp库文件夹包含了Android native-activity项目和iOS的静态库项目。OpenGLESApp.Shared工程包含用于构建Android的动态共享库和iOS的静态库的共享的OpenGL代码。这些库会在OpenGLESApp.Android.packaging项目和OpenGLESApp.iOS.Application项目中被调用去生成Android端到端.apk文件和iOS的.ipa文件。


设置和编辑我的iOS代码
现在,让我们带来OpenGLESApp.shared项目组件的一部分的Cube.c跨平台源文件。作为我们即时体验的一部分,我们提供了的iOS特殊的智能感知,重构和许多的代码定位功能,如代码查看,转到定义。其中的一些功能描述如下图

现在,如果你选择了OpenGLESApp.iOS.StaticLibrary工程环境,你会看到“Cube.c”源代码饰有波浪线,所以让我们先解决这个问题。该波浪线的出现是由于在Windows机器上VS智能感知无法获取OpenGLES头文件。我们目前不集成OpenGLES1头文件在VS直接使用。为了解决这个问题可以从这里下载可公开的ES1头文件,并复制它们到你的VS文件夹里。一旦这个路径被列入“包含目录”就完全设置好了。
以我们目前的经验,一般来说如果开发者想要增加额外不属于VS项目一部分的include头文件,需要确保这些头文件都可以在Mac机上通过Xcode获取,这将会使生成成功,另外这些头文件还需要在Windows机器上可通过VS智能感知去操作。当前我们的VS体验还不能帮助对第三方库的同步,但它确实有助于您创建一个Mac文件夹和Windows文件夹之间的映射。这个映射可以在属性页中定义。下图演示了包含目录和映射目录如何设置来让OpenGLES样本工作。

生成和调试我的iOS应用程序
生成你的iOS应用程序很容易,一旦你确信VCRemote正在运行,在OpenGLESApp.iOS.Application工程上右键单击选择生成,将启动生成iOS 应用程序。 生成iOS的应用程序本质上是一个两步流程。OpenGLESApp.iOS.StaticLibrary工程被转换为一个Xcode工程并和XCode工程 一起被包含在 OpenGLESApp.iOS.Application工程中,他们通过网络复制,然后使用Xcode工具链在MAC上进行生成,这个过程是无缝的,错误消息/警告和其他生成的诊断信息都会在VS输出窗口显示,这与Windows和Android的生成体验是类似的。
一旦生成完成,该应用程序就可以在iOS设备或iOS模拟器上启动。作为我们产品的一部分,我们同样延续了强大的调试体验去调试iOS应用程序。我们支持在模拟器和iOS设备上调试。在Visual Studio 2015 RC的体验中包括(但不限于)F5,输出窗口,断点,单步/跳过/跳出,运行到光标处,调用堆栈,数据和变量窗口,模块窗口,地址级调试(拆卸,内存,寄存器窗口),线程窗口,并行堆栈和并行监视窗口。下面的快照描述Visual Studio停在C++ iOS 应用程序断点处。

有关iOS调试的更多详细信息,你可以参考这个博客。
总结
此博客提供给您的信息应该让您了解了Visual Studio 团队为实现iOS开发体验所做的工作。我们的iOS肯定还没有达到目标需求,而这个功能启用分享了我们目前的想法。在接下来的几个版本中,我们将努力改善iOS的开发体验,但现在我们很乐意让大家尝试并提供反馈意见。
分享反馈很容易!在UserVoice提交功能建议,在 Connect网站提交您找到的bug,并在可视化界面中发送一个笑脸或苦脸。您也可以在下面留下评论。除此之外,如果你希望和我们的产品团队有一个关于这个主题的直接的交谈,
Comments
- Anonymous
July 24, 2015
既然有了MAC 还要VS做什么,XCode就可以呀。Windows下如何同时开发windows phone 和 iphone?