Swift'i Terminal'de nasıl kullanabilirim?


108

Xcode 6'daki yenilikleri okudum . Makale, Xcode 6 ile ilgili bazı yeni özellikleri tanıtıyor ve şöyle diyor:

Komut satırı

Xcode'un hata ayıklayıcısı, REPL (Read-Eval-Print-Loop) olarak bilinen, Swift dilinin etkileşimli bir sürümünü içerir. Çalışan uygulamanızı değerlendirmek ve onunla etkileşimde bulunmak veya komut dosyası benzeri bir ortamda yeni kod yazmak için Swift sözdizimini kullanın. REPL, Xcode'un konsolundaki LLDB içinden veya Terminal'den edinilebilir.

REPL'i nasıl alacağımı bilmek istiyorum?


3
İşte bununla ilgili yazdığım bir makale. medium.com/swift-programming/…
Santosh

Yanıtlar:


135
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

o zaman şunlardan birini yapabilirsiniz:

xcrun swift 
lldb --repl

Xcode 6.1'den itibaren - swiftterminale yazmak REPL'i de başlatır.


2
... ve çıkmak için Ctrl+ yazın d.
arve0

57

Alternatif olarak, mevcut geliştirme ortamınızı bozmak istemiyorsanız, şunu çalıştırabilirsiniz:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

30
Ya da bunu bir adım daha ileri götürüp bunu ~/.bash_profilealias swift="/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift"
David Beck

6
OS X SDK'yı kullanabilmek için ona giden yolu da belirtmeniz gerekir:/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -sdk /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
Linus Unnebäck

David fikri için teşekkürler. Bunu profile ekledim, ancak orada olmasına ve izinlere rağmen böyle bir dosya veya dizin almaya devam ediyorum -rwxr-xr-x@ 1 mark2 admin 33557440 31 May 14:43 swift. Birim olarak o kadar güçlü değilim. Neyin yanlış olduğunu gören var mı?
MarkAurelius

xcrun --find swiftYolu elde etmek için kullanmak , gelecekte çok daha fazla kanıt olacak
Mike Weller

1
xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 swiftçok daha iyi. Kaynak cevap burada: stackoverflow.com/a/36254848/5768974
Puttin

42

Adım 1: Terminali Açın
Adım 2: "hızlı" yazın
Adım 3: Adım 3 yok

Misal:

GoldCoast:~ macmark$ swift
Welcome to Swift!  Type :help for assistance.
  1> println("Hello, world")
Hello, world
  2> var myVariable = 42
myVariable: Int = 42
  3> myVariable = 50
  4> let myConstant = 42
myConstant: Int = 42
  5> println(myVariable)
50
  6> let label = "The width is "
label: String = "The width is "
  7> let width = 94
width: Int = 94
  8> let widthLabel = label + String(width)
widthLabel: String = "The width is 94"
  9> :exit

GoldCoast:~ macmark$ 

Kullanmaya devam xcrun swiftedebilseniz de, Swift 2.1'den itibaren swiftkomut satırından kolayca çalıştırabilirsiniz .
timbo

Örneğim Temmuz 2014'teki Swift 1.0'dan. Benim için o zamandan beri xcrun olmadan çalışıyordu.
MacMark

15

Swift'i Terminal'den çalıştırmayla aynı şekilde, komut dosyalarını da çalıştırabilirsiniz. Sadece aşağıdaki shebang'ı kullanın ve betiğinizi çalıştırın. ( Swift'in yaratıcısı Chris Lattner'a göre )

#!/usr/bin/env xcrun swift -i

6
XCode 6 Beta 5'e göre -ibayrak kaldırıldı ve bir hataya neden olacak. Bırakın ve #!/usr/bin/env xcrun swiftonun yerine kullanın.
Jeehut

Swift 2.3 ile Xcode 8'de oynamak isteyenler stackoverflow.com/a/36254848/1298043
Puttin

15

Xcode 6.1.1'de, Komut Satırı Araçları yüklenmiş olarak, komut dosyalarını doğrudan /usr/bin/swiftaşağıdaki yolu referans alarak çalıştırabilirsiniz :

#!/usr/bin/swift

let variable: String = "string"
print("Test \(variable)")

Bunun hızlı 2.1.1 (xcode 7.2 yüklemesi) ile çalıştığını doğrulayın
thibaut noah

1
Swift 2.3 ile Xcode 8'de oynamak isteyenler stackoverflow.com/a/36254848/1298043
Puttin

10

Herhangi biri basit bir Swift senaryosunu umursuyorsa:

#!/usr/bin/env xcrun --sdk macosx swift

Belirli hedef sürüm gerekliyse

#!/usr/bin/env xcrun --sdk macosx swift -target x86_64-macosx10.11

Belirli bir araç zinciri gerekiyorsa (Swift 2.3'ü kullanmak istediğiniz ancak Xcode 8'i kullandığınız gibi)

#!/usr/bin/env xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 --sdk macosx swift -target x86_64-macosx10.11

Swift 2.2'yi Xcode 7.3.1'inizde kullanmak istiyorsanız, Xcode 7.3.1'in şu adreste bulunduğunu varsayalım: /Applications/Xcode7.app

sudo xcode-select -s /Applications/Xcode7.app/
xcrun --sdk macosx swift

şu andan itibaren varsayılan aktif geliştirici dizini değişti, bunu kullanarak kontrol edebilirsiniz:

xcode-select -p

Swift.org tarafından sağlanan anlık görüntüleri kullanmak istiyorsanız , buradaki Kurulumu kaçırmamalısınız .


Derleme aşaması olarak Xcode iOS projesinden hızlı komut dosyası çalıştır bölümünde benim tarafımdan ilk yanıtlandığı gibi


8

** xcode6 beta 4'ten itibaren güncelleme **

bu aynı zamanda xcode tercihlerinde de yapılabilir. sadece xcode -> tercihler -> konumlara gidin.

komut satırı araçları için, açılır liste seçeneklerinden istediğiniz sürümü seçin, aşağıdaki resme bakın. (swift, yolun xcode6'nın yolu olmasını gerektirir).

komut satırı araçları ekranı

Önceki cevabımı da aşağıda bırakacağım.


Kaan'ın söylediği gibi, basit bir uygulama yapmak için bir elma komut dosyası da kullanabilirsiniz, böylece onu ileri ve geri geçiş yapmak için kullanabilirsiniz.

apple komut dosyasını açın> bunu aşağıdaki kodu yapıştırın ve bir uygulama olarak dışa aktarın, böylece tek bir tıklama ile varsayılan yola veya beta yoluna geçebilirsiniz (swift'i kullanmak için)

set xcode6Path to "xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer"
set xcodeDefaultPath to "xcode-select -switch /Applications/Xcode.app/Contents/Developer"

display dialog "set xcode sdk path to " buttons {"xcode 6", "default"} default button 1
copy result as list to {buttonPressed}
if buttonPressed is "default" then
    try
        do shell script xcodeDefaultPath with administrator privileges
    end try
else
    try
        do shell script xcode6Path with administrator privileges
    end try
end if

sonra koş> xcrun swift

feragat

  1. komut dosyası hem xcode6-beta hem de xcode5'in kurulu olduğunu varsayar.
  2. Yalnızca xcode6beta'yı deneyen yeni bir geliştiriciyseniz , herhangi bir komut dosyasına veya yolu manuel olarak ayarlamanıza ihtiyacınız olmayacaktır. xcrun swiftyol zaten sizin için ayarlanmış olduğundan basitçe çalıştırın .
  3. xcode6 nihayet piyasaya sürüldüğünde, yolunuzu bu basit uygulamadan varsayılana sıfırlamanız ve bir daha asla kullanmamanız gerekecek .

XCode 5'i yükledim ve şimdi XCode 6'ya "güncelledim" (= değiştirildi). 5.x'i şimdi geri getirmenin bir yolu var mı? Bu çözümle mi?
Matthias Max

5.x'i geri getirmek ne demek? xcode6 GM veya appstore sürümü, xcode5'in yerini alacaktır.
nsuinteger

6

Resmi Xcode 6.1 sürümünü yükledikten sonra, içinde bir swiftkomut var /usr/bin/swift.

Yolda Apple tarafından sağlanan Python'dan farklı bir Python'unuz varsa swift, başarısızlıkla sonuçlanabileceğini unutmayın ImportError: No module named site. Bu durumda export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbinaramadan önce yaptığınızdan emin olun swift.


5

Xcrun komutu, şu anda seçili olan Xcode kurulumunu geçersiz kılmak için DEVELOPER_DIR ortam değişkenini kullanacaktır (xcode-select ile ayarlandığı gibi). Bunu, komut satırında hızlı çalışacak ve sizi REPL'e yerleştirecek tek bir komut oluşturmak için kullanabilirsiniz. Şuna benziyor:

/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift 

ve bunu sadece 'hızlı' olarak adlandırabilirsiniz:

alias swift="/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift"

İlginç bir yan not olarak, hızlı bir komut dosyası çalıştırmak için, bash veya python gibi bir -i ekleyerek aynı türden çağrıyı kullanabilirsiniz:

#!/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift -i

println("Hello World!")

Elbette, Xcode 6 resmi olarak piyasaya sürüldüğünde ve buna varsayılan geliştirici araçlarınız olarak geçtiğinizde DEVELOPER_DIR = .. bitlerini bırakabilir ve sadece "xcrun swift" kullanabilirsiniz.


4

xcode 6.0'ı yüklediğinizden emin olun , ancak 6.1 değil

Bir hata alırsanız:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

sadece koş

xcrun --sdk iphonesimulator8.0 swift

ya da yapabilirsin

export SDKROOT="iphonesimulator8.0" 

ve sonra

xcrun swift

Kullanılabilir xcodebuild -showsdksSDK adlarını listelemek için " " kullanın .

xcode 6.1 yüklerseniz ,

sudo xcode-select -s /Applications/*your-Xcode-6.1-path.app*/Contents/Developer
xcrun swift

2

XCode6 için şu komutları çalıştırın:

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

$ xcrun swift

Bir hata alırsanız:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

Deneyin:

xcrun swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk

1

açık Terminal

$sudo xcode-select -switch /Applications/Xcode6-Beta6.app/Contents/Developer

Uyarı:Xcode6-Beta6.app Yüklü uygun sürüme değiştirilmelidir

Sonra bu çizgiyi koymak alias swift='xcrun swift'için~/.bash_profile

Ve,

$source ~/.bash_profile

$swift

İşte gidiyorsun!


1

Swift REPL'in yardımıyla (Değerlendir Baskı Döngüsünü Okuyun).

Yorumlanmış dillere aşina geliştiriciler bu komut satırı ortamında kendilerini rahat hissedecekler ve hatta deneyimli geliştiriciler birkaç benzersiz özellik bulacaklar

Terminal.app'i başlatın ve swift yazın ve enter tuşuna basın. Daha sonra Swift REPL'de olacaksınız.

        1> print("Hello Swift REPL")
     Hello Swift REPL
        2> 10 + 20
     $R0: Int = 30
        3> var name = "Yogendra Singh"
     name: String = "Yogendra Singh"
        4> print(name)
     Yogendra Singh
        5>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.