Swift Package Manager: Binary Target Appears Many, Many Times

An interesting problem appeared in the first internal build of NetNewsWire 6: the app size was much bigger—almost 4x bigger—than NetNewsWire 5. On investigation, the Sparkle framework—now included in the app as a Binary Target via a Swift Package—was appearing in multiple places in the archived package. Ideally, Xcode should only include the Sparkle framework in the Frameworks folder of the package. In the case of NetNewsWire 6, it appeared in Frameworks, PlugIns, and XPCServices, resulting in a 25% increase to the app’s install size....

December 21, 2020