don't stop believing

[swift] command line tool 만들기 기본편 본문

Swift/Basic

[swift] command line tool 만들기 기본편

Tongchun 2017. 8. 16. 19:15

swift로 command line tool을 만들어 보려고 합니다.

간단한 iOS 테스트앱은 만들어 봤으나 성능 테스트나 API 검증을 위한 툴을 만들어 보고 싶습니다.

command line tool의 기본 구성까지만 만들어 보겠습니다.


먼저 Mac에서 swift 버전을 확인해 봅니다. Mac에서 Terminal을 열고 버전을 확인해 봅니다.

저는 아래처럼 3.1 버전으로 나오네요.

$ swift --version
Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42)
Target: x86_64-apple-macosx10.9

프로젝트를 생성할 적당한 위치로 이동합니다.

저는 nGle001이란 폴더를 만들어 놨습니다. 편의상 폴더명은 프로젝트 이름으로 하는 것이 좋습니다.

$ cd Documents/JakeWork/nGle001

해당 폴더로 이동 후 swift package를 초기화 합니다.

$ swift package init --type executable

swift package를 초기화하면 몇개의 폴더와 Package.swift 파일이 생성됩니다.

xCode로 Package.swift 파일을 열고 사용할 framework을 추가합니다.

저는 기본으로 Alamofire와 SwiftyJSON을 추가했습니다.

// swift-tools-version:3.1
import PackageDescription

let package = Package(
    name: "nGle001",
    dependencies: [
        .Package(url: "https://github.com/Alamofire/Alamofire.git", majorVersion: 4, minor: 4),
        .Package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", majorVersion: 3, minor: 1)
        ]
)

수정한 Package.swift 파일을 저장합니다.

Mac의 Terminal에서 framework을 다운로드 합니다.

$ swift package fetch

이제 command line tool의 시작점인 main.swift로 이동합니다.

main.swift 파일은 Sources 폴더 안에 있습니다. 파일을 열면 print("Hello, world!") 라고 되어 있는데 이걸 지우고 SwiftJSON 파싱을 한번 해봅니다.

import Foundation
import SwiftyJSON

let jsonString = "{\"name\": \"dejavu\"}"

if let dataFromString = jsonString.data(using: String.Encoding.utf8, allowLossyConversion: false) {
    let json = JSON(data: dataFromString)
    print(json["name"])
}

다시 Terminal로 가서 빌드해 보겠습니다.

$ swift build

에러가 없다면 해당 프로젝트 폴더 안의 .build/debug/ 폴더에 빌드 파일이 생성됩니다.

파일을 실행해 봅니다.

$ .build/debug/nGle001

기본 빌드는 debug 모드로 빌드 됩니다. 그럼 release 모드로 빌드해 봅시다.

build 옵션은 -c 또는 --configuration 이며 그 뒤에 빌드하려는 모드를 적여 주면 됩니다.

$ swift build -c release

빌드 파일은 .build/release 폴더에 있습니다.

$ .build/release/nGle001

빌드까지 해봤으면 이제 개발 환경을 바꿔야죠. Package로 구성된 swift 개발 환경을 xCode에서 개발하기 위해 프로젝트 파일을 만들어 봅시다.

터미널로 가서 프로젝트 파일을 만들어 봅시다.

$ swift package generate-xcodeproj

finder 에서 해당 폴더에 가서 프로젝트 파일이 생성되었는지 확인합니다.

생성된 프로젝트 파일을 클릭하면 xCode로 실행됩니다.

xCode에서 빌드와 실행을 해볼 수 있습니다.

xCode 실행 시 빌드 대상을 패키지가 아닌 커맨드로 변경해야 합니다. 변경은 상단 메뉴의 실행 버튼 옆에 있습니다.

변경 후 실행하면 하단 console 창에 내용이 보입니다.



'Swift > Basic' 카테고리의 다른 글

탈출 클로저 @escaping  (0) 2018.01.31
defer (후처리)  (0) 2018.01.24
Swift Access Control  (0) 2018.01.19
SPM에서 framework와 실행부분 코드 분리하기  (0) 2017.09.15
[swift] command line tool - static/interactive  (0) 2017.08.17
Comments