¿Cómo enviar correctamente una imagen a CloudKit como CKAsset?

Tengo una imagen (UIImage y también es url) e intento enviarla a CloudKit como CKAsset, pero tengo este error:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Non-file URL'. Aquí está el código:

override func viewDidLoad() {
        super.viewDidLoad()

        send2Cloud()
    }

func send2Cloud() {
    let newUser = CKRecord(recordType: "User")

    let url = NSURL(string: self.photoURL)

    let asset = CKAsset(fileURL: url!)

    newUser["name"] = self.name
    newUser["photo"] = asset

    let publicData = CKContainer.defaultContainer().publicCloudDatabase

    publicData.saveRecord(newUser, completionHandler: { (record: CKRecord?, error: NSError?) in

        if error == nil {

            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                print("User saved")
            })

        } else {
            print(error?.localizedDescription)
        }
    })
}

Tengo la URL, puedo imprimirla, copiarla y pegarla en mi navegador y ¡mostrará mi imagen! Entonces, no sé qué está pasando aquí ...

¿Sería más fácil si trabajara con un UIImage en lugar de su URL? Porque, como dije antes, ¡tengo los dos! ¡Se agradece mucho cualquier ayuda! ¡¡Gracias chicos!!

Respuestas a la pregunta(3)

Su respuesta a la pregunta