Xcode 9 —進階的 iOS Simulator

前言

   iOS Simulator 是 iOS 開發過程當中不可或缺的一部分,我平時工做中也有很大一部分時間在使用 iOS Simulator, 相比於 Android ,iOS Simulator 具備啓動時間快,運行效率高等顯著的特色。 所以,用好 iOS Simulator 對於提升咱們的開發效率是有很大幫助的. Xcode 9 中,有一大堆新特新等你來撩!!html

正文

一、 在 Xcode 的全屏模式下使用 Simulatorios

    若是你用的是 13 寸的電腦,那麼 Xcode 的全屏模式你應該早已習慣,其實即便是配有顯示器,我仍是習慣在 Xcode 的全屏模式下開發😎。很惋惜的是不能在 Xcode 的全屏模式下使用 Simulator, 自 Xcode 9b3 之後,這個問題便不存在了:git

這個功能並非對全部人默認開放的,若是不幸你的 Xcode 沒有默認開啓這個功能也不要灰心,咱們能夠經過打開 Apple Internal menu 來啓用這個功能,經過 Apple Internal menu 你能挖掘出 Simulator 的更多新特性。那麼問題來了,怎麼開啓 Apple Internal menu 呢?首先,在更目錄裏建立 AppleInternal 文件夾,而後重啓 Simulator:github

internal-menu.png
internal-menu.png

cd ~/
sudo mkdir /AppleInternal複製代碼

重啓 Simulator 後就能夠看到 internal 選項 ☝️
再次重申,你須要下載 Xcode 9b3 或更新的版本才行shell

二、同時打開多個模擬器app

還記之前咱們在不一樣尺寸的手機上去適配嗎?一般狀況下,咱們經過 Storyboard 能夠直觀的看到 View 在不一樣尺寸設備上的形態,然而純 Code 碼出的界面就得屢次啓動不一樣的模擬器來進行可視化調試了。做爲開發者,你確定也想過,要是能同時啓動多個模擬器多好,那麼很高興的告訴你,在 Xcode 9 中這已再也不是問題了。ide

三、拖動放大或縮小 Simulator測試

在 Xcode 9 以前, 咱們須要經過 command + 一、二、三、4 來對 Simulator 的大小進行調整,Xcode 9 之後就不用這麼麻煩,咱們能夠經過拖拽來控制模擬器的大小了。若是您有多個模擬器打開,這是很是有用的一些細節,它能夠幫助你有效地組織工做空間。url

四、Simulator 屏幕捕捉spa

在 Apple 官方的 「What's new」 Xcode 9 文檔中,蘋果聲稱如今能夠錄製模擬器屏幕的視頻。 其實這並不新鮮,即便在舊版本中咱們也能夠經過 simctl 實現這樣的功能。 您能夠從界面啓用視頻錄製(除了iOS 11中的內置屏幕錄製)。

執行 command 的命令,就能夠獲得咱們想要錄製的視頻了。

xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>複製代碼

booted —— 便是 simctl 當前選中的模擬器,若是當前有多個模擬器,那麼選中的活動的 Simulator 爲準。

五、Finder 和 Simulator 共享文件

如今,Simulator 具備 Finder 擴展,咱們能夠直接從 Finder 窗口共享文件給 Simulator 。

固然,若是你使用的是舊版本的 Xcode ,咱們也可使用 simctl 命令來進行相似操做:

xcrun simctl addmedia booted <PATH TO MEDIA FILE>複製代碼

這個功能太棒了,畢竟,我更喜歡經過拖拽來實現 Simulator 和 Finder 的文件共享。

六、 經過 Simulator 打開 URLs
經過 simctl 也能夠實現 Simulator 打開 URLs, 因此你也能夠在舊的模擬器上打開自定義的 URL。

執行下面的 shell 命令

xcrun simctl openurl booted <URL>複製代碼

Apple 官方文檔 check out the documentation

七、快速打開 app 的文件系統

經過 simctl 你只須要簡單的執行下面一句命令,你就能獲取 app 的文件系統,可是,你得知道 bundle identifier:

xcrun simctl get_app_container booted <APPS BUNDLE ID>複製代碼

或者您能夠經過 open 命令在 Finder 中快速打開目標文件夾:

open `xcrun simctl get_app_container booted <APPS BUNDLE ID>` -a Finder複製代碼

八、經過 Command 打開 Simulator 中的 APP
有了 simctl ,你能夠經過 Command 啓動 Simulator 中的 app, 或者作一些環境變量的控制,這在自動化測試中是很是重要的。

你只要使用一下命令便可實現:

xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>複製代碼

九、 經過 Bundle ID 獲取 app 的 info 信息

有時候,咱們想得到 app 的 更多的信息,能夠經過 simctl appinfo 得到如下格式的信息:

{
   ApplicationType = User;
   Bundle = <PATH TO APP FILE>;
   BundleContainer = <PATH TO FOLDER WITH APP FILE>;
   CFBundleDisplayName = TestiOSApp;
   CFBundleExecutable = TestiOSApp;
   CFBundleIdentifier = "com.ahmed.app.TestiOSApp";
   CFBundleName = TestiOSApp;
   CFBundleVersion = 1;
   DataContainer = <PATH TO YOUR DATA>;
   GroupContainers =     {
   };
   Path = <PATH TO APP FILE>;
   SBAppTags =     (
   );
}複製代碼

執行如下命令你就能獲取以上格式的信息:

xcrun simctl appinfo booted <BUNDLE ID>複製代碼

最後......

iOS Simulator 功能強大,是咱們開發中必備的神器,當你掌握了它的相關細節以及使用技巧能夠極大的提升你的開發效率。固然,做爲一個有追求的 iOS 工程師,你更應該去挖掘它那些不爲人知的功能,而後記得要告訴我喲😊!

參考

iOS Simulator on Steroids: Tips & Tricks in Xcode 9

水平有限,若有疏漏,望指正
歡迎交流,歡迎 star CNKCQ
遺人🌹,手有餘香 blog

相關文章
相關標籤/搜索