Use UIGraphicsImageRenderer to make an image with a clipping path. Here is a Playground:
import PlaygroundSupport
import UIKit
let imageToCrop = UIImage(named: "test.jpg")!
let size = imageToCrop.size
let cutImage = UIGraphicsImageRenderer(size: size).image { imageContext in
let context = imageContext.cgContext
let clippingPath = UIBezierPath(ovalIn: CGRect(origin: .zero, size: size)).cgPath
context.addPath(clippingPath)
context.clip(using: .evenOdd)
imageToCrop.draw(at: .zero)
}
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
imageView.image = cutImage
PlaygroundPage.current.liveView = imageView