Xamarin.iOS開發初體驗


Xamarin是一個跨平台開發框架,這一框架的特點是支持用C#開發IOS、Android、Windows Phone和Mac應用,這套框架底層是用Mono實現的。

Mono是一款基於.NET框架的開源工程,包含C#語言編譯器、CLR運行時和一組類庫,能運行於Windows、Linux、Unix、Mac OS和Solaris。

 

對於.NET程序員來說,Xamarin是走向安卓、iOS、Mac跨平台開發的神器,不僅能用熟悉的C#來開發,還能使用Visual Studio作為IDE。本文內容是Xamarin.iOS版本的開發初體驗。

 

一.安裝開發環境

對於用Xamarin來開發iOS應用來說,准備工作分兩步:(1)在Windows下安裝Xamarin.iOS SDK以及VS,(2)在Mac下安裝Xamarin.iOS.Build Host以及XCode。因為Xamarin iOS for Visual Studio允許IOS應用在Windows下編寫,但只能在遠程Mac主機或iOS設備上進行部署和調試。

1.Windows

在Windows系統下,首先確保Xamarin官網下載Xamarin完整的安裝向導,安裝向導會提供IOS以及Android套件的安裝,可自行選擇。

我在使用安裝向導安裝Xamarin時,一直卡在這里:

在獲取Android和iOS可選套件的過程一直鏈接失敗,一開始以為是系統版本問題(我是Win8.1 64位),跟一些高手交流之后發現是這些資源被牆掉了。。。翻牆自行解決。我還跟客服聯系得到回復如下:

There are a couple possible causes of the issue, but it looks like a manual uninstall/reinstall would get everything working properly.
1) Press the Windows button + r to open the Run window.
2) Type appwiz.cpl to open the Add & Remove programs window.
3) Find Xamarin & Xamarin Studio (Optional) and uninstall them.
4) Once they're uninstalled, or if you're unable to find them; please follow the installation steps below.

Please download and install the packages shown below in the order listed:

1. JDK 1.6: http://download.xamarin.com/Installer/MonoForAndroid/jdk-6u39-windows-i586.exe
2. Android SDK: http://dl.google.com/android/installer_r22-windows.exe
3. GTK#: http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.25.msi
4. Xamarin Studio: http://download.xamarin.com/studio/Windows/XamarinStudio-5.0.0.878-0.msi
5. Xamarin for Windows (includes Xamarin.iOS for Visual Studio and Xamarin.Android): http://download.xamarin.com/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_Setup-3.0.54.0.msi

I hope this helps!
-Kent Green
Developer Support

忽略Android SDK/JDK和Xamarin Studio,GTK#是對跨平台圖形用戶界面庫GTK+的封裝,Windows用戶可以忽略,它會隨着Mono一起安裝,在非Windows平台上GTK#類似於Windows窗體和WPF。所以只需要單獨安裝一個Xamarin for Windows就可以了。最新版本的Xamarin for Windows支持VS2012和VS2013,下載地址請戳這里

安裝完成之后打開VS2013,新建項目窗口可以看到多了iOS和Android目錄,表明安裝成功:

 

 

2.Mac

Xamarin.iOS支持Mac OS 10.7及以上版本。

首先到iOS Dev Center下載Xcode 5

 

接下來可以選擇安裝完整的Xamarin,或者只安裝Xamarin.iOS Build Host

 

二.配置部署調試環境

由於Windows下沒有iOS模擬器,因此需要鏈接一台聯網的遠程Mac主機。除了上一節安裝了Xcode和Xamarin.iOS外,還需要對網絡進行配置。

在Mac里,在網絡偏好設置里,將當前網絡的代理啟用並相應設置好,同時在系統偏好設置->安全性與隱私 中將防火牆關閉。

 

打開Xamarin.iOS Build Host:

點擊配對自動生成一串PIN碼,在Windows下的VS設置中使用:

 

回到Windows,打開VS2013,首先會自動讓我們進行賬號登錄,所使用的賬號即你在Xamarin官網下載時需要創建的賬號,我這里使用的都是試用版License,有能力就付費使用正式版吧;當然免費版也可以用,只不過在發布程序的時候有大小限制。

在菜單Tools->Options->Xamarin->iOS Settings選項卡,點擊Find Mac Build Host:

 

輸入在Mac下生成的PIN碼,完成配對,這樣Windows便和Mac主機建立遠程連接,可以在Windows下遠程調試iOS程序了。

 

三.創建一個iOS應用

打開VS2013,新建一個項目,選擇iOS->iPhone->Blank App模板,命名為HelloOpenXLive,可以看到工程結構如下:

可以看到引用節點中的monotouch,即為Xamarin.iOS SDK,用.NET實現了iOS的基礎功能。

Main.cs為程序的入口,啟動一個繼承自UIApplicationDelegate的名為AppDelegate,在AppDelegate中完成程序的啟動和初始化工作。

AppDelegate.cs中,在FinishedLaunching方法里,我們可以通過窗體的RootViewController添加我們想要的畫面(View),這個結構有點類似於MVC模式。我們右鍵項目->添加項,添加一個iPhone View Controller,命名為HelloUIViewController:

打開HelloUIViewController.cs,

public override void ViewDidLoad()
{
    View = new UniversalView();

    base.ViewDidLoad();
}

首先添加了一個通用的視圖,即背景視圖,可以任意修改默認背景顏色,在UniversalView類的Initialize方法中

void Initialize()
{
    BackgroundColor = UIColor.White;
}

目前為止畫面還是一片空白,我們回到HelloUIViewController類的ViewDidLoad方法,添加一個Label,顯示一段文字:

public UILabel CustomLabel;

public override void ViewDidLoad()
{
    View = new UniversalView();

    base.ViewDidLoad();

    // Perform any additional setup after loading the view
    CustomLabel = new UILabel(new RectangleF(0, 100, 300, 30)) { Text = "Hello, OpenXLive!", TextAlignment = UITextAlignment.Center, }; View.Add(CustomLabel);
}

在工具欄中,設置好調試選項,選擇DEBUG、iPhoneSimulator,以及指定一種模擬器類型(如iPhone Retina(4-inch) iOS 7.1),按F5開始調試

在Mac主機下,可以看到一個iOS模擬器被啟動並初始化,我們的程序被部署在模擬器之后啟動,接下來就可以進行斷點調試了:

 
千萬不要吐槽為什么沒有iPhone的外殼,這是因為所使用的Mac主機比較老,沒有Retina屏幕,分辨率跟不上,所以水果殼沒顯示出來;如果分辨率夠了自動就顯示出來了。

 

下一篇我將介紹如何通過Xamarin移植一個.NET的第三方庫到iOS上(iOS通過Xamarin調用OpenXLive)

 

總結

本文介紹了基於Mono的Xamarin框架,支持使用C#開發iOS、android、Windows Phone和Mac應用;介紹了Xamarin.iOS的安裝和配置方法;介紹了如何使用Xamarin.iOS SDK在Windows下進行開發,並且在Mac遠程主機上進行調試的過程。


免責聲明!

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



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