Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用
本文將告訴大家如何從零開始在 iOS 上部署 Walterlv.CloudKeyboard 應用。這個 Walterlv.CloudKeyboard 應用是一個云輸入法應用,在 GitHub 完全開源,采用 Xamarin 開發,用途是讓手機接收電腦端的打字輸入的輸入法。因為我沒有在 iOS 上找到任何一款稍微能用的輸入法,因此只能拜托太子幫我開發一款應用了。太子很給力,幫我開發完成了,但現在的問題就是我如何在我的手機上部署。本文將記錄我的部署步驟
太子說:才不是從零開始,第一步就可以放棄,因為第一步是需要去買一臺 mac 設備。然后第二步申請開發者,受限于網絡,又能讓一波開發者放棄了
這部分內容會被蘋果不斷改改改,因此在閱讀本文的時候,請注意你的右下角時間。我寫本文的時候是在 2020.11.03 如果你的當前時間距離我寫的時間太遠了,那么還請小心
假定現在有一臺 mac 設備,嗯,我是沒有的,于是我就去偷了太子的設備,畢竟他幫我開發了 Walterlv.CloudKeyboard 應用,免費開發應用送設備,聽起來邏輯是對的
然后假定現在有一個開發者賬號,此時才是真的開始步驟
先通過蘋果的應用商店,花費3天的時候下載和安裝完成 XCode 開發工具…… 是不是3天,取決于網速
打開 XCode 點擊新建應用
在新建應用界面選擇好 Team 和輸入隨意應用名,這個應用名不關鍵。接著選擇 UIKit App Delegate 用于支持 iOS 13 版本,如下圖
隨意選擇一個文件夾保存項目
新建完成之后,大概可以看到的界面如下
進入項目的選項頁面,雙擊或右擊項目點選項都可以進入此頁面
先放開 XCode 應用,再花三天時間安裝上 VisualStudio 以及 Xamarin 功能,從?https://github.com/walterlv/Walterlv.CloudKeyboard?下載好代碼然后打開
以下界面是在 VisualStudio 上,咱需要在 VisualStudio 上修改捆綁包標識符,修改方法就是雙擊 Info.plist 文件
以上關鍵的就是捆綁包標識符的內容
這里的捆綁包標識符的命名規則是?com.開發者團隊名或組織名.隨意的應用?格式,而我的開發者團隊名實際是?lindexi-gd?而不是?lindexi_gd?或?lindexi?哈,這部分需要在申請開發者賬號的時候記錄哦
這一步的難度最大的地方在于了解自己的開發者團隊名或組織名是什么
在 Walterlv.CloudKeyboard 項目上包含了兩個項目,一個是 iOS 鍵盤應用,另一個是鍵盤擴展。這兩個項目都需要做相同的更改,剛才修改好了 Walterlv.CloudKeyboard.iOS 項目。現在需要修改 Walterlv.CloudKeyboard.iOS.Extension 項目
雙擊 Walterlv.CloudKeyboard.iOS.Extension 項目的 Info.plist 文件,可以看到如下界面
編輯捆綁包標識符,內容就是在原先的 Walterlv.CloudKeyboard.iOS 項目的捆綁包標識符基礎上的后面加上?.Keyboard如下圖
修改完成之后,記得點保存
下一步再回到 XCode 里面,點擊簽名選項卡,在 Bundle Identifier 輸入框里面輸入剛才在 Walterlv.CloudKeyboard.iOS.Extension 項目的 Info.plist 文件寫的捆綁包標識符,點擊 Tab 鍵失焦,用于生成開發者簽名
生成之后大概可以看到如下界面
接著需要在 XCode 先部署一下,在 XCode 部署的作用就是生成一個占坑的應用,用于解鎖信任證書
部署之前需要點擊選擇自己的 iOS 應用,當前就需要讓自己的 iOS 應用和 mac 相連了
可以看到我的手機的版本比較低,而我也不想升級,因為一升級了,我的一堆應用就用不了。而剛才為了讓應用在我手機能部署,也就選擇了 UIKit App Delegate 框架
但此時依然部署將會失敗,原因是在?.xcodeproj?文件里面記錄的版本號會更高,使用 VisualStudio Code 打開.xcodeproj?文件,替換掉版本
點擊部署按鈕,可以看到 XCode 執行安裝
但是在安裝完成之后,會提示啟動失敗
在 XCode 上提示 Could not launch “foo” Security 的原因就是發者沒有被信任
回到手機上,可以看到 XCode 安裝的應用
點擊打開這個應用將會失敗,因為無法驗證 App 需要信任開發者
添加信任的步驟如下
打開設置,進入通用
進入設備管理界面
可以在設備管理界面里面看到自己的證書,點擊自己的證書
點擊驗證
等待一下網絡,可以看到應用狀態是已驗證
此時再次打開 foo 應用,可以看到應用打開
以上的這一步關鍵就是為了在通用的設備管理里面同意加入自己的證書,這個在 XCode 安裝的應用也就被稱為占坑的應用
下一步就是嘗試在 VisualStudio 開始部署自己的鍵盤應用,因為我的 mac 設備其實是太子的設備,只是被我偷過來而已,賬號啥的信息還沒切過來,在 VisualStudio 部署的時候將會提示 iOS code signing key ‘iPhone Developer walterxx@iCloud.com(F53jxxxxxx) not found in keychain.’ 如下圖
解決方法就是右擊項目,點擊選項,修改捆綁包簽名
進入捆綁包里面,修改預配配置文件
選擇自己的預配配置文件和簽名標識,注意不要選自動
選擇之后的效果大概如下
上面這一步詳細請看?Xamarin iOS 切換開發者賬號之后的簽名標識和預配配置文件更新方法
也就是說在發現這一步沒有任何可以選擇的時候,問題的原因就是沒有在 XCode 的簽名里面進行生成,需要確定在 XCode 里面生成,如下圖
在 Bundle Identifier 輸入之后,按下 Tab 鍵失焦,此時將會提示創建,如下圖
此時再次在 VisualStudio 進行部署,如果提示因為存在同名的簽名的應用,原因就是開始的時候在 XCode 創建的占坑應用用了當前在 VisualStudio 部署使用的捆綁包簽名
BundleIDConflictWithOtherIdentifier: App with identifier com.lindexi-gd.CloudKeyboard.Keyboard is already installed, so we can't install App Extension with that same identifier. error MT1006: Could not install the application '/Users/lvyi/Documents/Codes/walterlv/Walterlv.CloudKeyboard/CloudKeyboard.iOS/bin/iPhone/Debug/device-builds/iphone10.3-13.1.2/Walterlv.CloudKeyboard.app' on the device 'lindexi': AMDeviceSecureInstallApplicationBundle returned: 0xe80000cc (kAMDBundleIDConflictWithOtherIdentifierError).此時不能回到手機上刪除剛才的占坑應用,因為這是一個占坑應用。如果被刪除了,那么將會讓剛才在設備管理的簽名失效
因此解決方法就是再次回到 XCode 創建另一個應用,修改 Bundle Identifier 重新部署
重新部署之后,可以在手機上看到兩個應用
刪除掉一開始部署的占坑應用
重新回到 VisualStudio 點擊構建部署,此時在手機上可以看到 Xamarin 的圖標和部署上的應用
在 VisualStudio 啟動調試的時候,可以看到 Xamarin 的界面
這是一個鍵盤應用,需要經過如下配置才能使用上
進入設置,進入通用,進入鍵盤
點擊鍵盤
點擊添加鍵盤
選擇 CloudKeyBoard 點擊之后可以看到如下界面
點擊進入云鍵盤 Cloud 點擊允許完全訪問
此時就可以使用上 Walterlv 的云鍵盤了,這個項目在 GitHub 完全開源
開源地址請看?https://github.com/walterlv/Walterlv.CloudKeyboard
這就是整個部署的過程,步驟還不到 50 步,相信你被蘋果坑幾次就會部署了
總結
以上是生活随笔為你收集整理的Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server in Docker
- 下一篇: Win10 Terminal + WSL