使用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項目中被調用去生成Andr​​oid端到端.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,並在可視化界面中發送一個笑臉或苦臉。您也可以在下面留下評論。除此之外,如果你希望和我們的產品團隊有一個關於這個主題的直接的交談,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM