提升 iOS 開發效率! Xcode 9 內置模擬器的9個技巧
iOS模擬器是在開發任意iOS應用程序過程中不可或缺、無法被忽視的一個部分。值得一提的是,Xcode 9的新模擬器帶來了很多有用的功能,能夠提升你的開發效率。對比歷代模擬器的更新,這次有了很重大的改變。
所以讓我們開始這篇教程的重點吧,本文會列出我在新iOS模擬器中發現的新功能(一些技巧也可以在舊的模擬器中使用)。
1. 在全屏模式下使用Xcode模擬器
當你使用13寸的 Mac 時,Xcode 的全屏模式是唯一救星,以前不能在全屏模式下使用Xcode模擬器,但現在開始可以使用了。從Xcode 9 beta 3開始,這個功能將會是系統預設的,所以你無需做任何事情來啟用它。
更新:可能某些人預設情況下是關閉此功能的,不用擔心,可以隨時通過 Apple Internal 選單啟用此功能。如果想在新的模擬器中探索更多的秘密功能,可以啟用Apple 隱藏的內部選項。
所以,你需要在根目錄中創建一個名為「AppleInternal」的空文件夾,請執行下面的命令並重新啟動模擬器:
sudo mkdir /AppleInternaln
新的選項中項目應該會顯示出來 ??
注意:我是從Xcode 9 beta 3 的模擬器上測試這個步驟,如果你還沒有下載,請在此安裝最新的Xcode。
2. 一次打開多個模擬器
還記得在不同的模擬器上測試應用程序的挫敗感嗎?在此之前,你一次只能打開一個模擬器,雖然有許多「hacks」教你如何在舊版本的Xcode中打開多個iOS模擬器。但是在Xcode 9當中,這個功能是直接可以使用的。
3. 縮放模擬器就像調整視窗大小一樣簡單
在Xcode 9之前,我們只有透過」Scale options」才能調整模擬器的大小,現在Apple終於開放調整模擬器窗口的大小。如果一次有多個模擬器打開,這個小細節的調整這是非常有用,可以幫助你有效地組織工作空間。
4. 記錄模擬器的視頻
在Xcode 9官方的」What』s new」文檔中,蘋果聲稱現在可以錄製模擬器屏幕視頻,即使在舊版本中,只要使用simctl也可以做到,在界面上找不到地方可以啟用視頻錄製(除了iOS 11中的內置屏幕錄製)。要獲取視頻檔案,請執行以下代碼:
xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>n
booted – 表示simctl
選擇當前啟動的模擬器,如果你有多個已啟動的模擬器,simctl
將選擇當前正在操作的那一個模擬器。
5. 使用 Finder 共享文件到模擬器
現在,模擬器有了 Finder 擴展功能,你可以直接從 Finder 窗口共享文件。你也可以執行以下simctl
命令,使用圖像/視頻文件進行類似操作:
xcrun simctl addmedia booted <PATH TO MEDIA FILE>n
很高興有這樣的操作方法,但是對我而言,將文件拖放至模擬器窗口似乎快很多。
6. 模擬器上打開URL
這個也能使用simctl
,所以你也可以在舊版本的模擬器上打開自定義的URL schemes。拖拽以你指定的任何URL執行以下命令:
xcrun simctl openurl booted <URL>n
關於Apple所有URL schemes
的列表,請查看文檔.
7. 快速找到應用程序的文件夾
再來介紹一個simctl
的命令,你可以使用單個命令在文件系統上獲取應用程序的資料夾,只需要知道應用程序的bundle identifier
並執行以下命令:
xcrun simctl get_app_container booted <APPS BUNDLE ID>n
或者你可以使用open命令在 Finder 中更快打開目標文件夾:
open `xcrun simctl get_app_container booted <APPS BUNDLE ID>` -a Findern
8. 使用命令行參數(Command Line Args)在模擬器中啟動應用程序
使用simctl
,你也可以從終端機上啟動應用程序,並在其中傳遞一些命令列參數(甚至可以設置一些環境變數)。如果你想在應用程序中插入一些除錯行為,這將非常有用。執行下列命令可以讓你完成這項任務:
xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>n
你可以從CommandLine.arguments獲取這些命令行參數(這裡是文件的鏈接)。
9. 透過Bundle ID獲取完整的應用程序消息
有時找出應用程序的檔案或暫存數據位於文件系統上的位置很有用,如果你需要比simctl
get_app_container
更全面的資訊,simctl
還有一個很好用的小工具,名為appinfo
,它會以下列格式顯示相關資訊:
{n ApplicationType = User;n Bundle = <PATH TO APP FILE>;n BundleContainer = <PATH TO FOLDER WITH APP FILE>;n CFBundleDisplayName = TestiOSApp;n CFBundleExecutable = TestiOSApp;n CFBundleIdentifier = "com.ahmed.app.TestiOSApp";n CFBundleName = TestiOSApp;n CFBundleVersion = 1;n DataContainer = <PATH TO YOUR DATA>;n GroupContainers = {n };n Path = <PATH TO APP FILE>;n SBAppTags = (n );n}n
執行下面的命令並觀察輸出結果:
xcrun simctl appinfo booted <BUNDLE ID>n
後記
iOS模擬器是一個非常強大的工具,只要知道所有的細節和技巧,它可以讓你的開發過程加快許多,身為一個好的工程師,熟悉你的開發工具是必然的。在Flawless
中,iOS模擬器對我們來說非常重要,這個產品是一個iOS模擬器插件,允許工程師在模擬器內部檢查任何設計,對於新Xcode 9和Simulator版本的推出,我無以言表,已經等不及公開版本推出!我們可以實現更多有用的功能來保持iOS應用程序的視覺層次感。另外,如果我在本文中錯過了一些重要的內容,歡迎讀者可以在評論中分享想法,相信將可以讓本文增添更多的實用開發技巧 。
YouTube 視頻由於被牆,沒做搬運,如有需要可自行去原文查看。
原文:https://medium.com/flawless-app-stories/simulator-on-steroids-c12774ca6b
譯者:貓D
推薦閱讀:
※談談 MVX 中的 Model
※是「榴槤」而不是「榴槤」
※iOSApp間常用的五種通信方式
※有哪些第三方工具可分析得到 iOS App 的運營數據?