簡體   English   中英

當應用程序在 Xcode 中停止時自動關閉 iOS 模擬器

[英]Automatically close iOS Simulator when application is stopped in Xcode

是否可以在 Xcode 中停止應用程序時關閉/退出 iOS 模擬器? 我無法在 Xcode 或模擬器中找到設置。 如果存在,它將有助於加快開發過程。

要在構建停止時終止模擬器,您需要編譯一個包含以下內容的可執行文件

#!/bin/sh
osascript -e 'tell app "iPhone Simulator" to quit'

保存此文件,然后打開 Xcode 首選項的行為部分,在運行完成部分將您的腳本文件添加到運行部分。 希望這對你有用,但是這種方法似乎有點參差不齊,不幸的是我能想出的最好方法! 祝你好運!在此處輸入圖片說明

您沒有制作 OS X 應用程序太糟糕了,因為這樣做非常容易。 這部分無關緊要,但誰知道呢,您將來可能會使用它!

- (IBAction)KillSim:(id)sender {

    NSLog (@"Sim Kill Begin");


    NSDictionary* errorDict;
    NSAppleEventDescriptor* returnDescriptor = NULL;

    NSAppleScript* scriptObject = [[NSAppleScript alloc] initWithSource:
                                   @"tell application \"iPhone Simulator\" to quit"];

    returnDescriptor = [scriptObject executeAndReturnError: &errorDict];
    [scriptObject release];

    if (returnDescriptor != NULL)
        {
            // successful execution
        if (kAENullEvent != [returnDescriptor descriptorType])
            {
                // script returned an AppleScript result
            if (cAEList == [returnDescriptor descriptorType])
                {
                    // result is a list of other descriptors
                }
            else
                {
                    // coerce the result to the appropriate ObjC type
                }
            } 
        }
    else
        {
            // no script result, handle error here
        }

    NSLog (@"Sim Killed End");


}

我在 xCode 5.1 中遇到了同樣的問題。 重新啟動我的 Mac 解決了它。

至於“為什么這會加快開發速度”,在我的情況下,Xcode 不會讓我再次運行,直到我退出模擬器,這很乏味。

您可以將“運行腳本”構建階段添加到新項目(通過 Xcode 項目模板),方法是將其添加到您的 TemplateInfo.plist;

<key>Targets</key>
<array>
<dict>
    <key>BuildPhases</key>
    <array>
        <dict>
            <key>Class</key>
            <string>ShellScript</string>
            <key>ShellPath</key>
            <string>/bin/sh</string>
            <key>ShellScript</key>
            <string>osascript -e 'tell app "iPhone Simulator" to quit'</string>
        </dict>
    </array>
</dict>

或者,您可以將此“運行腳本”添加到您的構建階段;

osascript -e 'tell app "iPhone Simulator" to quit'

如果您有興趣,您可以添加另一個腳本來自動增加您的內部版本號,例如;

<key>Targets</key>
<array>
<dict>
    <key>BuildPhases</key>
    <array>
        <dict>
            <key>Class</key>
            <string>ShellScript</string>
            <key>ShellPath</key>
            <string>/bin/sh</string>
            <key>ShellScript</key>
            <string>
                buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
                buildNumber=`echo $buildNumber +1|bc`
                /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
            </string>
        </dict>
        <dict>
            <key>Class</key>
            <string>ShellScript</string>
            <key>ShellPath</key>
            <string>/bin/sh</string>
            <key>ShellScript</key>
            <string>osascript -e 'tell app "iPhone Simulator" to quit'</string>
        </dict>
    </array>
</dict>

如果 Xcode 將這些簡單的幫助程序作為默認設置,那就太好了,但至少我們可以自己手動添加它們。

在Xcode 12.3中,只需創建simulator.sh(Shell Script),然后填寫此代碼

  1. #!/bin/sh
  2. osascript -e 'tell app "Simulator" to quit'

之后,打開 XCode > Preferences > Behaviors 並設置為您的目標文件

XCode 首選項圖像

我不知道它會如何加快您的開發時間,但是當使用模擬器並且您想完成時,只需按 cmd+q 即可退出模擬器並在 Xcode 中自動停止它。

您可以從 Xcode 停止調試會話並重新啟動它,或者甚至只需從 Xcode 再次點擊 cmd-r,新版本將在模擬器中正常運行。 無需退出並重新啟動模擬器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM