반응형
async, await 를 간단하게 테스트해 보기 위해서, swift package manager 프로젝트를 만들고, 아주 간단한 await, async 예제를 실행해보려 했다.
- swift package init --type "executable" 로 프로젝트를 만들고,
- main.swift 를 program.swift 로 바꾸고, 예제 코드를 입력하고,
- swift build 를 빌드 테스트를 했다. 우선 ubuntu swift 5.6 환경에서는 성공을 했던 코드였는데, 컴파일 에러메시지가 나왔다.
/Users/mememe/07_swift_test_projects/asyncawait_pm/Sources/asyncawait_pm/program.swift:24:29:
error: concurrency is only available in macOS 10.15.0 or newer
func calculateThirdNumber() async -> Int {
^
/Users/mememe/07_swift_test_projects/asyncawait_pm/Sources/asyncawait_pm/program.swift:24:6:
note: add @available attribute to enclosing global function
func calculateThirdNumber() async -> Int {
매우 난감했다.
내 컴파일 환경은 monterey 운영체제에, xcode 도 최신이고, 업데이트도 다 되어 있다. swift 명령을 수행하는 swift 만 버전이 낮을걸까?
구글링을 해 보았지만, 주로 iOS 앱 개발과 관련된 내용만 나왔다. 그러다가 https://stackoverflow.com/questions/55501077/specify-minimum-macos-version-for-swift-package-manager-with-swift-5 에서 해답을 찾았다. Package.swift 에서 타겟 플랫폼 버전을 지정하면 된다.
그래서 Package.swift 에서 OS버전을 지정해 주었다.
import PackageDescription
let package = Package(
name: "asyncawait_pm",
platforms: [ # <<<
.macOS(.v10_15), # <<< 타겟 OS 버전을 지정한다.
], # <<<
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
버전만 다른 동일한 문제를 겪었다.
에러메시지
error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
package.swift 에 수정한 내용
platforms: [
.macOS(.v12)
],
728x90
'프로그래밍 > SWIFT' 카테고리의 다른 글
[Swift|번역] Process waitUntilExit 은 비동기 completion handler 와 같이 쓰지 않는다. (0) | 2022.08.09 |
---|---|
[Swift] SwiftyXMLParser 를 이용해 xml 트리구조 보기 (0) | 2022.08.02 |
100DaysOfSwiftUI - Day 26 (0) | 2022.07.19 |
Swift on Ubuntu error: cannot find 'URLRequest' in scope (0) | 2022.07.18 |
Swift on WSL swift repl 에 진입할 때 행이 걸리는 문제. (0) | 2022.07.15 |