如何在iOS SDK中使用Swift REPL

时间:2014-11-13 01:08:12

标签: ios swift

我可以使用iOS SDK运行Swift REPL吗?

我想在REPL中导入和使用UIKit,但没有成功。

$ xcrun --sdk iphonesimulator8.1 --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk

$ xcrun --sdk iphonesimulator8.1 swift
Welcome to Swift!  Type :help for assistance.
  1> import UIKit
/var/folders/kb/xgglxb597sv6h8b744d5vft00000gn/T/lldb/92014/repl1.swift:2:8: error: no such module 'UIKit'
import UIKit
       ^

$ swift -sdk `xcrun --sdk iphonesimulator8.1 --show-sdk-path`
Welcome to Swift!  Type :help for assistance.
  1> import UIKit
/var/folders/kb/xgglxb597sv6h8b744d5vft00000gn/T/lldb/91881/repl1.swift:2:8: error: no such module 'UIKit'
import UIKit
       ^

  1> import Cocoa
  2>  

我正在使用Xcode版本6.1(6A1052d)

2 个答案:

答案 0 :(得分:6)

您可以通过从repl运行lldb来实现它,该$ xcrun xcodebuild -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3' clean build 附加到iOS应用程序进程(Xcode项目)。

  1. 在Xcode中构建项目,或者:

    lldb
  2. 为您的iOS项目启动standalone $ xcrun lldb -- $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app (lldb) process attach --name '$AppName' --waitfor

    platform select ios-simulator

    您可以在此处找到有用的platform connect $UDIDinstruments命令。

  3. 从Xcode

    在iOS模拟器中运行您的iOS应用程序
    • 或者从命令行:

      1. 启动模拟器

        • 来自$ xcrun instruments -w "`xcrun instruments -s | grep 'iPhone 7 (10.3)' | head -1`"

          $ open -a "Simulator" --args -CurrentDeviceUDID "`xcrun instruments -s | grep 'iPhone 7 (10.3)' | head -1 | sed -E -e 's/[^][]*\[([^][]*)\][^][]*/\1/g'`"
          
        • 或作为申请:

          $ xcrun simctl install booted $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app
          $ xcrun simctl launch booted $AppBundleID
          
      2. 在模拟器上安装应用程序,然后启动它:

        xcrun simctl launch --wait-for-debugger

        此外,您甚至可以使用lldb并稍后启动$ ios-sim start --devicetypeid 'iPhone-7, 10.3' $ ios-sim install --devicetypeid 'iPhone-7, 10.3' $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app

    • ios-sim

      1. 可选择启动模拟器&安装应用程序:

        $ ios-sim launch --devicetypeid 'iPhone-7, 10.3' $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app
        
      2. 启动它:

        lldb
  4. (lldb) continue (lldb) process interrupt 中的iOS模拟器中附加到进程:

    swift
  5. 运行(lldb) repl 1> import UIKit 2> repl。

    swift
  6. 此外,与Xcode调试终端仿真器中的repl Dim LastYear As String LastYear = Worksheets("Main Menu").Cells(1, "B").Value Dim fName As String fName = Application.GetOpenFilename("Text Files (*.txt), *.txt") If fName = "False" Then Exit Sub If fName <> "*" & LastYear + 1 & " latest.txt" Then MsgBox "Wrong File. Please choose " & LastYear + 1 & " file." Exit Sub End If 相反,这里我们有工作源自动完成和命令历史记录导航。

答案 1 :(得分:5)

Swift REPL目前不支持iOS设备或iOS模拟器。