使用 Xamarin 在 iOS 真機上部署應用進行除錯
雖然 Xamarin 可以在 Windows 作業系統上編寫和除錯,但如果開發 iOS 應用,那麼我們依然需要一臺安裝有 XCode 和 Visual Studio for Mac 的 Mac 電腦。做真機部署不是像平時使用太陽系第一 IDE Visual Studio 那樣方便。
所以本文需要介紹如何使用 Xamarin 在 iOS 真機上部署應用進行除錯,然後順便說一些注意事項。
準備一臺 Mac 電腦
如果你沒有 Mac 電腦,那我只能很不幸地告訴你:本文讀下去已經沒有什麼用了,你不會成功的……當然你也可以考慮使用 Mac OS 虛擬機器,但成功率太低,本文不會涉及。
在 Mac 電腦上安裝以下兩款必備應用:
- XCode:從蘋果應用商店安裝
- Visual Studio for Mac:在這裡下載 https://visualstudio.microsoft.com/vs/mac/
這兩款應用的體積都很大,如果你沒有很好的網路代理設定,安裝一整天都是可能的。所以還是強烈建議你有一個穩定的代理網路來下載。
本文接下來的內容都假設你已經安裝好了這兩款應用。
背景知識
你需要知道一些背景知識,不然後面真機部署的時候失敗了都不知道怎麼回事。
- 你的賬號必須是蘋果開發者賬號
- 只需要註冊 Apple Developer Portal ,不需要註冊 Apple Developer Program
- 只有 XCode 才能生成開發者的 provisioning profiles
- 只有 XCode 才能在 iOS 真機上部署全新的應用
也就是說,你必須有一些操作是在 XCode 中完成;只使用 Visual Studio for Mac 是無法完成部署任務的。
在 XCode 中準備
- 在 XCode 中新建一個空白 iOS 專案(什麼型別都可以),這個專案隨時可以丟棄。
- 選擇你新建的專案,會出現這個專案的資訊可以填,預設在 General 標籤中。
- *[重要] 修改 Bundle Identifier。
- 將這個 Bundle Identifier 修改為你希望部署的應用的 Bundle Identifier。比如你在 Xamarin 的 Info.plist 中寫的 Bundle Identifier 是
com.walterlv.CloudKeyboard
,那麼這裡也必須寫com.walterlv.CloudKeyboard
。
- 將這個 Bundle Identifier 修改為你希望部署的應用的 Bundle Identifier。比如你在 Xamarin 的 Info.plist 中寫的 Bundle Identifier 是
- *[重要] 一定要讓這個 Bundle Identifier 文字框失焦(比如按下 Tab 或在其他文字框中點一下)。
- 這個時候下面的 Signing Certificate 會出現一個載入中的動畫,大概持續不到一秒鐘,就會生成 iPhone Developer 的資訊,這個就是包含 provisioning profiles 的資訊(可以在 Provisioning Profile 旁邊的感嘆號中看到詳細資訊)
- 在 Mac 上插入你的 iPhone,解鎖 iPhone,等待左上角出現你 iPhone 的名稱和圖示。
- 點選 XCode 左上角的執行按鈕,等待這個空白的應用部署到你的手機上。
*[重要] 額外的,如果你開發的是 iOS 擴充套件,有兩個或者更多的包,那麼你需要重複步驟 3 到 6。也就是不斷地修改 Bundle Identifier,等待生成新的 Developer 資訊,然後部署這個空的應用
在 Visual Studio for Mac 中部署
- *[重要] 請回到你的 iPhone 手機,刪除剛剛部署的應用
- 如果你剛剛部署了多個空白應用,那麼都要刪除
- 回到 Visual Studio for Mac 並開啟你的 Xamarin 專案,然後開啟準備部署的應用的 Info.plist 檔案
- 檢查 Bundle Identifier,一定要確認跟前面 XCode 中填入的是同一個 Bundle Identifier
- 額外的,如果你是開發 iOS 擴充套件,有兩個或更多包,那麼每個包都需要進入 Info.plist 檔案檢查 Bundle Identifier
- 點選 Bundle Signing Options,選擇剛剛使用 XCode 生成的開發者資訊(如果你看不到,那麼就是前面 XCode 的步驟沒有執行正確)
- 在 Mac 上插入你的 iPhone,解鎖 iPhone,等待左上角出現你 iPhone 的名稱和圖示。
-
如果沒有出現,你可能需要點選一下 Debug iPhone 區域,一定要確保選中了 iPhone 而不是 iPhone Simulator
-
- 點選 Visual Studio for Mac 左上角的執行按鈕,等待你 Xamarin 的應用部署到你的手機上(可能需要數十秒到數分鐘)。
理論上經過以上步驟,你就可以在你的 iPhone 上看到你用 Xamarin 開發的應用了。但其實是無法執行的。
如果部署過程中發生了任何錯誤,請:
- 檢查你的步驟與本文是否有出入;
- 參考: 使用 Xamarin 開發 iOS 應用中需要注意的若干個問題
在 iPhone 上操作
- 開啟設定 -> 通用 -> 裝置管理
- 點開 [自己的開發者賬號],點選 [信任]
如果你是首次進行此操作(實際上閱讀本文操作的應該也就是首次了),那麼信任自己的開發者賬號可能會花比較長的時間,Visual Studio for Mac 的部署除錯可能會因為等待超時而除錯失敗。不過這不重要,你只需要在 Visual Studio for Mac 上點選停止除錯,然後再次重來就可以了。
還需要注意,如果你刪除了你部署的應用,那麼下次部署的時候在 iPhone 上的操作部分需要重新進行。
還需要注意,可能每過 6 天,本文所述的所有步驟都需要重新進行一遍。