XamarinForms 系列課程

特別說明

2017/05/07

Visual Studio 2017 / Xamarin 企業級行動化開發平台環境建置問題排除指引


Xamarin Toolkit 可以讓 .NET 開發者,使用 C# 程式語言,開發出跨平台,Android / iOS / UWP 的行動應用程式,您可以選擇使用 Visual Studio 2017 (在 Windows 平台下) 或者 Visual Studio 2017 for Mac (在 Mac OSX 平台下) IDE 來開發這類跨平台專案。
Xamarin Toolkit 提供您兩種方式來開發跨平台應用程式,第一個選擇是建立 Xamarin.Android / Xamarin.iOS / UWP 專案,但是,您需要分別設計各平台應用程式所需要用到的 UI,不過,這些專案可以共享商業處理邏輯程式碼;第二個選擇,則是選擇使用 Xamarin.Forms (這是一個 Xamarin UI Toolkit) ,讓所有平台應用程式都共用同一個 UI 設計,並且同樣的也可以共享商業處理邏輯。
不管您選擇哪種方式來進行跨平台專案開發,於許多對於想採用 Xamarin Toolkit / .NET C# 進行跨平台應用程式開發的朋友,絕大多數的人在進行開發環境的安裝與設定時候,都會遇到許多不同的問題與狀況,最終結果就是,您的電腦無法順利進行 Xamarin 專案開發 (陣亡了),這些問題包含了:無法建立 Xamarin 專案、專案建置會有錯誤、無法與裝置或模擬器連線進行除錯、模擬器無法開啟或者一除錯就App閃退、無法連線到Mac電腦等等。
因此,在這篇筆記中,將會告訴想要使用 Visual Studio 2017 + Xamarin 這樣的組合,進行跨平台開發的人,您該要如何這些開發工具的進行相關安裝與設定的說明,並且指出當遇到不同問題的時候,您可以參考的相關文章或解法說明。
作者為了幫助有心想要使用 Xamarin 開發跨平台作業的同好,特別製作此一文件與安裝/設定的教學影片,藉由這文件與影片,讓您可以快速、正確無誤地準備好 Xamarin 的開發環境。
在這裡,我們將會假設您需要開發的跨平台開發環境將會有 Android / iOS / UWP ,因此,您將會需要兩台電腦,一台是 PC,一台是 Mac。
您也可以參考 Xamarin 官方的需求說明 的文件。

需求說明

想要能夠使用 Xamarin 順利開發出跨平台的應用程式,第一個步驟,就是要準備好您的開發環境要使用的軟體與硬體,請您參考底下說明內容。

電腦軟硬體

您需要準備兩種電腦: Windwos 10 / Mac osX 這兩個作業系統
請注意,您的電腦記憶體與可用硬碟空間,必須要足夠;當空間不足的時候,會發生許多莫名奇怪的訊息與狀況。
Visual Studio Emulator for Android 模擬器若要能夠上網,您的開發環境,必須要有 DHCP 動態 IP 配置服務,否則,Android 模擬器,是無法上網的。
另外,當您在安裝 Visual Studio 2017 / Xcode / Visual Studio 2017 for Mac 的時候,請要在網路頻寬足夠與速度快的網路環境下安裝,會比較順利。
若有更多這方面的問題,請參考 Visual Studio Emulator for Android 的系統需求
當然,CPU也是滿重要的,較低階的 CPU,當然會造成建置與開發過程較慢的情況發生。
最後,記憶體也是十分重要的,請不要使用較少的記憶體電腦,作為您的開發電腦。

Windows 10 作業系統

您需要一台 PC / 筆電,在這台電腦上安裝 Visual Studio 2017 IDE 與 相關平台的開發用的 SDK 軟體。
  • 在 Windows 作業系統中,您需要至少 Windows 10 專業版以上的作業系統
  • 請將您安裝的作業系統,更新到最新的 Windows Update
若您的電腦本身是 Windows 10 Home 版本,請不要使用變更到專業版金鑰、升級到 Windows 10 專業版的方式來升級您的 Windows 10 Home 作業系統,因為,您那樣做的話,升級起來的作業系統,也是無法使用 Hyper-V 服務的。
正確的做法,請使用 Windows 10 專業版,重新安裝的作業系統

Mac OSX 作業系統

您需要一台 Mac,在這台電腦上安裝 Visual Studio 2017 for Mac 與 iOS開發用的 SDK 軟體,Xcode。
  • 請升級您的 Mac OSX 到 OSX 10.12 (Sierra) 或者更新的版本
  • 請在這台 Mac 電腦上安裝到最新版本的 Xcode 8.3 (Xcode 8.3 是作者現在撰寫這篇文章的時候,最新的 Xcode 版本,若有更新版本的 Xcode,就請安裝它)
  • 請在這台 Mac 電腦上安裝 Visual Studio 2017 for Mac,並且更新到最新軟體修正
為什麼我需要一台 Mac 電腦呢? 那是因為您需要開發出 iOS App,Xamarin.iOS 需要透過 Mac 電腦上面的 Visual Studio 2017 for Mac / xCode 來建立出 iOS 的發行套件以及使用 iOS Simulator。
若您沒有 Mac 電腦,而想要體驗 iOS 開發過程,您可以選擇三種雲端 Mac 主機服務;作者本身是有在使用 MacInCloud 這個雲端服務產品,您將使用 Windwos 的遠端桌面程式,連線到 MacInCloud 上的 Mac 電腦;在這台 Mac 電腦上,已經幫您安裝好了 Visual Studio 2017 for Mac / Xcode 開發工具。
作者本身有在使用 MacInCloud,您可以參考這篇文章 Xamarin.iOS 使用遠端 MacInCloud 服務,進行 iOS 應用程式除錯,自行購買適合您的 MacInCloud 服務。

安裝前準備工作

為了讓之後的安裝過程較為順利,請先調整您的作業系統環境設定

Windows 10 作業系統

請先將 Hyper-V 服務,安裝到您的作業系統
首先,您的電腦必須要能夠支援 Hyper-V 這樣的功能,您可以參考個文章與影片:Enable Hardware settings in BIOS to run Hyper V / Configure BIOS Before Installing Windows Server and Hyper-V
硬體支援了並且 BIOS 也設定好了,可以參考這篇文章,將您 Windows 10 專業以上版本的作業系統,啟動 Hyper-V 服務:在 Windows 10 上安裝 Hyper-V
若您在啟用 Hyper-V 服務的時候,沒有看到如下圖的 Hyper-V 平台 / Hyper-V 管理工具 這兩個選項,那很可能是您的電腦並沒有啟用硬體支援 Hyper-V,或者您的電腦本身就無法使用 Hyper-V (這個時候,建議您可以換一台電腦了)。
Hyper-V
若您準備的作業系統環境就是一個 Hyper-V VM,您可以使用 在巢狀虛擬化的虛擬機器中執行 Hyper-V 這項功能,讓您 Hyper-V 的 VM,還可以使用 Hyper-V VM。
現階段 Azure VM 尚未支援巢狀 Hyper-V 功能,因此,不建議您使用 Azure VM 來當作您的 Xamarin 開發環境
您若真的想要使用 VM 來練習 Xamarin 開發,您可以參考這篇文章 在巢狀虛擬化的虛擬機器中執行 Hyper-V 上面所提到有支援巢狀虛擬化VM的作業系統版本。
為什麼一定要使用 Hyper-V 服務呢?若您要選擇一個不使用 Hyper-V 的安裝環境與過程,也是可行的;在 UWP 開發環境中,您需要使用實體裝置做為開發與測試的對象、對於 Android 環境下,您可以選擇其他 Android 模擬器(不使用 Hyper-V或者原生 SDK所附上的),或者使用實體裝置做為開發與測試對象。
若您是要參加作者所開的 Xamarin.Forms 教育訓練課程,請您務必要準備一台有支援 Hyper-V 的電腦硬體,並且要先安裝好 Hyper-V 服務。
由於您電腦的 CPU 同一個時間,只能夠支援一個虛擬化技術,虛擬化技術主要有三種:
  • Hyper-V
    供 Visual Studio Emulator for Android 和 Windows 10 Mobile 模擬器使用
  • Virtual Box
    供適用於 Android 和 Genymotion 的 Xamarin Player 使用)
  • Intel HAXM
    供 Android SDK 模擬器使用
若您要選擇最適合您的虛擬化技術,請確認您的使用的模擬器可以正常運作與透過 Visual Studio 來進行開發與除錯;若您尚未接觸與用過上述的技術,建議您可以先使用 Hyper-V 虛擬化技術。

Mac 電腦與 OSX

有些人想要只使用一台 Mac 電腦,同時安裝 Windows 10 專業版與 OSX 作業系統,這個時候,您 Mac 電腦上的 Parallel 需要啟動巢狀 Hyper-V 支援,您可以參考這篇文章:Nested Hyper-V support in Parallels Desktop virtual machines
另外,請參考 啟用遠端登入 這篇文章,啟用您的 Mac 電腦,允許遠端登入能力,最後能在 Windows 電腦上,測試是否可以從 Windows 電腦上來遠端登入到 Mac 電腦。

進行安裝開發環境

若您的電腦主機與作業系統,都已經準備妥當,接下來,就可以在 Windows 10 專業版電腦上開始安裝 Visual Studio 2017 IDE 了
問題1: 為什麼我要安裝 Visual Studio 2017,難道,不能夠使用 Visual Studio 2015 嗎?
當然可以呀,不過,在這篇文章將會以如何安裝與設定 Visual Studio 2017 ,若您想要使用 Visual Studio 2015,強烈建議您自行上網找相關安裝/設定說明文件。
問題2: 我要安裝哪個版本的 Visual Studio 2017 呢?
若您是想要使用 Xamarin開發出跨平台的應用程式,Visual Studio Enterprise 2017 / Visual Studio Professional 2017 / Visual Studio Community 2017 這三個版本都可以喔,不過,Visual Studio 2107 Enterprise 版本內提供了更多好用的 Xamarin 支援工具。
想要了解不同 Visual Studio 2107 之間的差異,可以參考這篇文章:比較不同 Visual Studio 2017 版本的差異
請先觀看完成這部安裝教學影片 [Visual Studio 2017 安裝與設定完整過程之教學影片][Xamarin 企業級行動化開發平台環境建置攻略 - Visual Studio 2017 安裝與設定]
當然,強烈建議一併參考這份文件 Xamarin 企業級行動化開發平台環境建置攻略 ( 全新 Visual Studio 2017 版 ) ,這裡有列出在進行安裝 Visual Studio 2017 過程中,您所需要選擇安裝的元件清單。
若您不去觀看這部教學影片與這份建置攻略文件,而是自己安裝 Visual Studio 2017,都使用預設安裝模式,沒有特別去選擇適合的安裝元件;若之後有遇到問題,請自行上網尋找相關解決方案。

安裝後的修正與調教

當您的 Visual Studio 2017 安裝完成之後,請務必要進行底下的各種調教工作,之後也需要建立跨平台專案,實際在各平台下來執行,確認這些開發環境可以正常運作。

Android SDK 管理員

這個部分相當的重要,若您沒有做這部分的調教,您的 Android 專案,在建立、建置、除錯的時候,將會遇到問題。
安裝完成之後,請記得首先工作,就是要進行 Android SDK Manager 工具的調教,這部分要進行的工作,可以參考上面的安裝教學影片中 14:15 處開始說明的內容;或者您可以參考上面文件中的 Android SDK 管理員 章節內容。
Android SDK 管理員需要安裝底下項目,必且升級到最新版本
  • Tools > Android SDK Tools
  • Tools > Android SDK Platform-tools
  • Tools > Android SDK Build-tools (Rev.25.0.2)
  • Extras > Android Support Repository
  • Extras > Google USB Driver
  • 您所想要的 Android (版本) (API 編號) 內的 SDK Platform 項目
詳細操作步驟與要安裝與刪除的項目的過程,請觀看影片上的內容。
請特別注意,若您在這個設定步驟沒有如實操作,在之後的應用程式建立與開發上,將會遇到一些莫名奇怪的訊息。

建立 Visual Studio Emulator for Android 模擬器

接下來,您需要安裝與設定 Visual Studio Emulator for Android 模擬器,這部分的過程,可以參考上述安裝教學影片中的 20:42 處開始說明的內容。
當您在操作Visual Studio Emulator for Android 模擬器的過程中,會遇到這些情況:無法啟動、無法除錯、找不到模擬器、無法安裝APK、Hyper-V CPU 相容性問題、與其他虛擬化服務共用等相關問題,這個時候,您可以參考這份文件:Visual Studio Emulator for Android 疑難排解
最常遇到的情況有一個,那就是當您的電腦是筆記型電腦,有可能遇到當要進行除錯的時候,所開發的應用程式已經佈署到模擬器上,可是,應用程式一顯示之後,立即閃退了,這個時候,請參考這篇文章來進行修正: Visual Studio for Android Emulator Hyper-V CPU 相容性問題
一旦您設定 Android 平台專案為起始專案,卻看不到您所需要的模擬器,這個時候,您需要檢查您的 Android 專案下的 Properties 的內容,應用程式 > 目標的最低 Android 設定為 `Android 4.4 (API 層級 19 - Kit Kat),這樣就可以看到了
若您的模擬器啟動之後,無法連上 Internet 網路,請檢查您的網路環境是否有建置 DHCP 的網路設備。
究竟要使用模擬器或者實體裝置來進行跨平台應用程式開發,所謂,青菜蘿蔔各有所好,您可以依據您的需要自行選擇。作者本身大部分時間習慣使用模擬器來進行專案開發,除非有某些應用,是模擬器不支援的情況下,那個時候,才會臨時使用實體裝置來進行開發。

Windows 10 Mobile 模擬器

由於 Windows 10 Mobile 模擬器沒有類似 Android 那樣的工具,可以由一個獨立程式來啟動,您需要透過 Visual Studio 來進行除錯,選擇適當的模擬器來執行,這樣模擬器才會跑起來。

確認開發環境可以正常運作

最後,是最重要的過程,您需要檢查您的 Visual Studio 2017 開發環境,是可以真正的進行 Xamarin 專案的建立、建置、除錯、執行等相關開發工作。這部分要進行的工作,可以參考上面的安裝教學影片中 24:15 處開始說明的內容。
請務必要能夠產生出 Xamarin.Forms 專案,之後要依序建置與執行這些平台的專案 Android / UWP / iOS 這三個類型的專案,確定您的 Visual Studio 2017 是可以進行跨平台專案開發。
若想要參加作者所開設的 Xamarin.Forms 教學課程,請務必要將您的電腦的相關安裝與設定都完成,並且已經完成確認開發環境可以正常運作工作;若有遇到任何問題,請到課程上指定的社團上來發問。

iOS 開發環境注意事項

若您要進行 iOS 專案的開發,您需要一台 Mac 電腦,這台 Mac 電腦上需要安裝 Xcode 8.3 / Visual Studio 2017 for Mac 到最新版本,這部分的資訊,在這篇文章前面已經提過了。
在安裝教學影片中 40:15 處開始說明的內容,就是在說明如何進行與 Mac 電腦連線的設定過程。
若您在進行 Windows 電腦與 Mac 電腦連線上發生了問題,可以參考這篇文章來嘗試找出問題:從Windows連線到Mac之問題除錯
若您發生了 Windows 電腦無法透過 Xamarin Mac Agent 連上 Mac 電腦,您可以嘗試將 Visual Studio 2017 中的 ReSharp 或者 OzCode 這兩個套件先停用,看看是否可以正常連線。

其他提高生產力工具

在這份影片中,[Xamarin 企業級行動化開發平台環境建置攻略 - 提升 Xamarin Forms 開發生產力][Xamarin 企業級行動化開發平台環境建置攻略 - 提升 Xamarin Forms 開發生產力] ,告訴您如何安裝 Prism Template Pack 與可以增加程式開發效能的程式碼片段。您可以參考這份影片來進行安裝與設定這兩個工具。
若您是參加作者的Xamarin.Forms 教學課程,整個課程,將會使用 MVVM 開發方式、Prism 開發框架與作者自製的程式碼片段,讓上課學員了解到整個 Xamarin.Forms 應用程式的開發過程與相關功能和特色。
當然,您也可以選擇不去安裝這兩個工具,採用 Xamarin.Forms 內建的 Code Behind 開發方法;所謂,青菜蘿蔔各有所好,您採用甚麼方式開發 Xamarin.Forms 都是一個選擇,不過,作者偏好 MVVM + Prism 開發方式並且會採用這種開發方法來進行教學。

其他說明

隨時確保最新的軟體版本

在您使用 Visual Studio 開發過程中,請務必隨時確保您的 Windows / Mac 電腦上的相關 Xamarin Toolkit 與各平台的 SDK 保持在最新版本的狀態下。
在 Visual Studio 2017 中,Xamarin Toolkit 的升級,已經整合到了 Visual Studio 2017 內,也就是說,當您升級 Visual Studio 2017 的同時,您的 Xamarin 也會一併升級了(如果此時有新版本推出的話)。

Android / iOS 要使用實機來進行開發與除錯

若您開發 Android 專案,想要使用 Android 實體裝置來進行開發與除錯,您首先需要一隻 Android 手機,接著,您需要在這支手機上,啟用開發人員模式;不過,不同品牌與型號的手機,對於要啟用開發人員模式的過程都不盡相同,因此,您可以上網查詢您的手機要如何啟用開發人員模式。接著,將您的手機接到電腦上,在手機上,點選允許除錯,此時,您就可以在 Visual Studio (當然,您需要設定 Android 專案為起始專案)的除錯裝置為這支手機,這樣,就可以在這支手機上進行開發與除錯了。
至於,想要使用 iPhone 手機來進行開發與除錯,首先,您需要建立一個 Provisioning Profile,您可以參考 Xamarin.Forms iOS發佈之Mac端的操作 這篇文章,這樣,您就可以在 iPhone 手機上進行開發除錯了。

有甚麼不錯的 Xamarin.Forms 教學文件

Xamarin 官方的Xamarin.Forms 入門網頁,是個絕佳的選擇。

沒有留言:

張貼留言