ImageView won't update with new image

Try this, it worked for me:

DispatchQueue.main.async {
    profilePictureImageView.image = croppedImage
    profilePictureImageView.setNeedsDisplay()
}

Essentially you need to specify that you want to update the image via

profilePictureImageView.setNeedsDisplay()

You want to do all UI updating - such as changing the image - on the main thread:

   if let selectedImage = selectedImageFromPicker {
         DispatchQueue.main.async {
             profilePictureImageView.image = selectedImage
         }
    }

Should do it.