使用Visual Studio开发跨平台的iOS应用程序
[原文发表地址]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,并在可视化界面中发送一个笑脸或苦脸。您也可以在下面留下评论。除此之外,如果你希望和我们的产品团队有一个关于这个主题的直接的交谈,
使用Visual Studio开发跨平台的iOS应用程序的更多相关文章
- Visual Studio 开发大量 JavaScript 代码项目程序崩溃的解决方案
最近公司做新项目,基于 Bootstrap.AngularJS 和 kendo 开发一套后台的管理系统,在项目中使用了大量的 JavaScript 文件,这两天 Visual Studio 2015 ...
- 新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows)
原文出处:新成员!Visual Studio Code --跨平台的开发工具(支持OSX, Linux 和 Windows) 这是我的文章备份 http://www.dotblogs.com.tw/ ...
- Visual Studio创建跨平台移动应用_02.Cordova Extension
1简介 本章节是关于Visual Studio Tools for Apache Cordova的,目前此产品只发布了预览版.Visual Studio for Apache Cordova帮助熟悉V ...
- 使用 Cordova+Visual Studio 创建跨平台移动应用(1)
1简介 本章节是关于Visual Studio Tools for Apache Cordova的,目前此产品只发布了预览版.Visual Studio for Apache Cordova帮助熟悉V ...
- Visual Studio开发首选!DevExtreme v19.1.6全新来袭
DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...
- Visual Studio 2013 Xamarin for iOS 环境搭建
原文:Visual Studio 2013 Xamarin for iOS 环境搭建 一.Mac安装Xamarin.iOS 1,我的Mac 环境:OSX 10.10.3.Xcode 6.3.2 (使用 ...
- Apworks框架实战(四):使用Visual Studio开发面向经典分层架构的应用程序:从EasyMemo案例开始
时隔一年,继续我们的Apworks框架之旅.在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架 ...
- SharePoint 2013 工作流之Visual Studio开发示例篇
SharePoint 2013引用了WF4.0 Foundation,支持使用Designer和Visio进行设计,但是功能受限,而Visual Studio可以开发功能更加丰富的工作流,下面我们简单 ...
- visual studio 开发linux程序
VisualGDB支持Linux的原理是,通过ssh连接到Linux系统上通过ssh给linux下达命令 . (类似visualgdb的有windgb ,这2个都是商业软件.) Visual GDB ...
随机推荐
- linux 安装unrar
Centos 6 32位下安装 wget http://pkgs.repoforge.org/unrar/unrar-4.2.3-1.el6.rf.i686.rpmrpm -ivh unrar-4.2 ...
- oracle 查询表名、字段名、添加注释
--查询所有表名 SELECT T.TABLE_NAME FROM USER_TABLES T; --查询所有字段名 SELECT T.COLUMN_NAME FROM USER_COL_COMMEN ...
- scala学习手记22 - 参数化类型的可变性
java 的代码中多少有些不是很严谨的内容,比如下面的这段代码: public class Trouble { public static void main(String[] args) { Int ...
- 单网卡安装neutron
devstack中机器只有一个物理网卡,如何设置neutron中的external网络? 方式是: 创建一个linux bridge和veth,把eth0和veth1加入到brige,用veth的另一 ...
- vmware增加共享文件夹
增加共享文件夹 VMWare提供共享文件夹功能.前提是在虚拟机中安装VMware tools 1. 安装VMware tools 会自动在虚拟机中的/media/VMware Tools/中有个压缩包 ...
- Educational Codeforces Round 23F
http://codeforces.com/contest/817/problem/F 无限长的数组,刚开始每一位是0,三种操作,1,把(l,r)之间不是1的变成1,2,把(l,r)之间不是0的变成0 ...
- grep 查询包含内容的文件
加入到 ~/.bashrc 或者 ~/.bash_profile bash export GREPF_FILES=/mnt/d/Developer:/mnt/e/Developer function ...
- C# 语言版本
(摘自:维基百科)https://en.wikipedia.org/wiki/C_Sharp_(programming_language) Versions Version Language spec ...
- Vue: webpack js basic structure
vue webpack所用基础包: nom install vue vue-loader webpack webpack-cli webpack-dev-server vue-template-com ...
- 打造属于自己的安卓menu
首先,我们来看看这张图吧 看下面的menu菜单,是原装的菜单,好丑陋哦,类似于小编这么爱美的人来说,纯粹就是天大的打击,接受不起.于是,小编就发奋图强,努力,努力,再努力,终于,将菜单改的漂亮了一点, ...