原文链接 This first part of our three part article on creating Universal Frameworks covers the steps Appracatappra uses to create Universal Framework projects in Swift that will support iOS, tvOS, watchOS and macOS, all while sharing as much common code as possible. There are several ways to achieve this goal with Swift in Xcode and there have been many articles already written on this subject. So, why am I creating another? I have two main reasons: Since we are creating frameworks meant to be sold (or released for free) to 3rd party developers, I’ve made many tweaks to the process to support this. These include building a trial and release version of the framework, creating an install package and creating full API documentation. Currently, there are quite a few steps and I wanted to document them so I didn’t forget. That said, I’d like to stress this point again; mine is not the only way to achieve this goal and it might not be the best way but, it works for me. Hopefully, you can find my...