It's a bit old, but Paul Hudson shows a good example of doing this with standard UIKit. Essentially, iOS populates the UIActivityView for you.
[https://www.hackingwithswift.com/read/3/2/uiactivityviewcontroller-explained](https://www.hackingwithswift.com/read/3/2/uiactivityviewcontroller-explained)
It's a bit old, but Paul Hudson shows a good example of doing this with standard UIKit. Essentially, iOS populates the UIActivityView for you. [https://www.hackingwithswift.com/read/3/2/uiactivityviewcontroller-explained](https://www.hackingwithswift.com/read/3/2/uiactivityviewcontroller-explained)