본문 바로가기

프로그래밍/SWIFT

Swift on Ubuntu error: cannot find 'URLRequest' in scope

반응형
  • wsl2 + ubuntu20.02 
  • Swift version 5.6.2 (swift-5.6.2-RELEASE)
$ swift build
Building for debugging...
/mnt/d/nlgokr_packman/Sources/nlgokr_packman/main.swift:44:19: error: cannot find 'URLRequest' in scope
    let request = URLRequest(url: url)

mac os 에서는 아무 문제없이 동작하는 코드였는데, ubuntu20.02 swift version 5.6 에서 빌드하였더니 다음과 같은 에러메시지가 발생했다.

문제는 ubuntu 버전의 swift 에서는 URLRequest 가 Foundation 이 아닌, 분리되어 있는 FoundationNetworking 에 들어있기 때문에 발생한 것이었다. ( https://github.com/apple/swift-corelibs-foundation/issues/3968#issuecomment-1118900426 )

spevans commented on 20 Oct 2020
On Linux URLRequest is now in FoundationNetworking, which was split out from Foundation

Adding:
  #if canImport(FoundationNetworking)
  import FoundationNetworking
  #endif

Should fix it

위에서 알려준 대로 FoundationNetworking 을 추가하여 에러가 없어졌다.

#if canImport(FoundationNetworking)
  import FoundationNetworking
#endif

 

728x90