我可以使用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)
答案 0 :(得分:6)
您可以通过从repl
运行lldb
来实现它,该$ xcrun xcodebuild -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3' clean build
附加到iOS应用程序进程(Xcode项目)。
在Xcode中构建项目,或者:
lldb
为您的iOS项目启动standalone $ xcrun lldb -- $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app
(lldb) process attach --name '$AppName' --waitfor
:
platform select ios-simulator
您可以在此处找到有用的platform connect $UDID
和instruments
命令。
从Xcode
在iOS模拟器中运行您的iOS应用程序或者从命令行:
启动模拟器
来自$ 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
在模拟器上安装应用程序,然后启动它:
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:
可选择启动模拟器&安装应用程序:
$ ios-sim launch --devicetypeid 'iPhone-7, 10.3' $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app
启动它:
lldb
在(lldb) continue
(lldb) process interrupt
中的iOS模拟器中附加到进程:
swift
运行(lldb) repl
1> import UIKit
2>
repl。
swift
此外,与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模拟器。