Xcode 9—進階的 iOS Simulator
前言
iOS Simulator 是 iOS 開發過程中不可或缺的一部分,我平時工作中也有很大一部分時間在使用 iOS Simulator, 相比於 Android ,iOS Simulator 具有啟動時間快,運行效率高等顯著的特點。 因此,用好 iOS Simulator 對於提高我們的開發效率是有很大幫助的. Xcode 9 中,有一大堆新特新等你來撩!!
正文
1、 在 Xcode 的全屏模式下使用 Simulator
如果你用的是 13 寸的電腦,那麼 Xcode 的全屏模式你應該早已習慣,其實即使是配有顯示器,我還是習慣在 Xcode 的全屏模式下開發。很可惜的是不能在 Xcode 的全屏模式下使用 Simulator, 自 Xcode 9b3 以後,這個問題便不存在了:
GIF
這個功能並不是對所有人默認開放的,如果不幸你的 Xcode 沒有默認開啟這個功能也不要灰心,我們可以通過打開 Apple Internal menu 來啟用這個功能,通過 Apple Internal menu 你能挖掘出 Simulator 的更多新特性。那麼問題來了,怎麼開啟 Apple Internal menu 呢?首先,在更目錄里創建 AppleInternal 文件夾,然後重啟 Simulator:
cd ~/
sudo mkdir /AppleInternal
重啟 Simulator 後就可以看到 internal 選項
再次重申,你需要下載 Xcode 9b3 或更新的版本才行
2、同時打開多個模擬器
還記以前我們在不同尺寸的手機上去適配嗎?通常情況下,我們通過 Storyboard 可以直觀的看到 View 在不同尺寸設備上的形態,然而純 Code 碼出的界面就得多次啟動不同的模擬器來進行可視化調試了。作為開發者,你肯定也想過,要是能同時啟動多個模擬器多好,那麼很高興的告訴你,在 Xcode 9 中這已不再是問題了。
GIF
3、拖動放大或縮小 Simulator
在 Xcode 9 之前, 我們需要通過 command + 1、2、3、4 來對 Simulator 的大小進行調整,Xcode 9 以後就不用這麼麻煩,我們可以通過拖拽來控制模擬器的大小了。如果您有多個模擬器打開,這是非常有用的一些細節,它可以幫助你有效地組織工作空間。
GIF
4、Simulator 屏幕捕捉
在 Apple 官方的 「What』s new」 Xcode 9 文檔中,蘋果聲稱現在可以錄製模擬器屏幕的視頻。 其實這並不新鮮,即使在舊版本中我們也可以通過 simctl 實現這樣的功能。 您可以從界面啟用視頻錄製(除了iOS 11中的內置屏幕錄製)。
GIF
執行 command 的命令,就可以得到我們想要錄製的視頻了。
xcrun simctl io booted recordVideo --type=mp4
booted —— 即是 simctl 當前選中的模擬器,如果當前有多個模擬器,那麼選中的活動的 Simulator 為準。
5、Finder 和 Simulator 共享文件
現在,Simulator 具有 Finder 擴展,我們可以直接從 Finder 窗口共享文件給 Simulator 。
GIF
當然,如果你使用的是舊版本的 Xcode ,我們也可以使用 simctl 命令來進行類似操作:
xcrun simctl addmedia booted
這個功能太棒了,畢竟,我更喜歡通過拖拽來實現 Simulator 和 Finder 的文件共享。
6、 通過 Simulator 打開 URLs
通過 simctl 也可以實現 Simulator 打開 URLs, 所以你也可以在舊的模擬器上打開自定義的 URL。
執行下面的 shell 命令
xcrun simctl openurl booted
7、快速打開 app 的文件系統
通過 simctl 你只需要簡單的執行下面一句命令,你就能獲取 app 的文件系統,但是,你得知道 bundle identifier:
xcrun simctl get_app_container booted
或者您可以通過 open 命令在 Finder 中快速打開目標文件夾:
open `xcrun simctl get_app_container booted ` -a Finder
8、通過 Command 打開 Simulator 中的 APP
有了 simctl ,你可以通過 Command 啟動 Simulator 中的 app, 或者做一些環境變數的控制,這在自動化測試中是非常重要的。
GIF
你只要使用一下命令即可實現:
xcrun simctl launch --console booted
9、 通過 Bundle ID 獲取 app 的 info 信息
有時候,我們想獲得 app 的 更多的信息,可以通過 simctl appinfo 獲得以下格式的信息:
{
ApplicationType = User;
Bundle = ;
BundleContainer = ;
CFBundleDisplayName = TestiOSApp;
CFBundleExecutable = TestiOSApp;
CFBundleIdentifier = "com.ahmed.app.TestiOSApp";
CFBundleName = TestiOSApp;
CFBundleVersion = 1;
DataContainer = ;
GroupContainers = {
};
Path = ;
SBAppTags = (
);
}
執行以下命令你就能獲取以上格式的信息:
xcrun simctl appinfo booted
最後……
iOS Simulator 功能強大,是我們開發中必備的神器,當你掌握了它的相關細節以及使用技巧可以極大的提高你的開發效率。當然,作為一個有追求的 iOS 工程師,你更應該去挖掘它那些鮮為人知的功能,然後記得要告訴我喲!
參考
水平有限,如有疏漏,望指正
遺人玫瑰,手有餘香
TAG:Cocoa開發者社區 |