Member-only story
Controlling Access Within a Swift Package
TL;DR: Swift 5.9 introduces the
package
access modifier, allowing APIs to be shared across Targets within the same package without exposing them publicly. This supports safer and more modular Swift code by enabling internal sharing while preserving external encapsulation—ideal for designs like multi-Target packages that require internal-only protocols or methods.
Stay ahead with the latest updates and deep insights on Swift, SwiftUI, Core Data, and SwiftData. Subscribe to Fatbobman’s Swift Weekly to get exclusive articles, tips, and curated resources delivered straight to your inbox every week.
For even more valuable content and in-depth tutorials, visit my blog at fatbobman.com — your go-to destination for all things Swift and Apple development.
Background
With the rise of modular programming, developers are increasingly using Swift Package Manager (SPM) to separate functionalities into multiple packages. Within a single package, it’s common to further divide code into multiple Targets. A recurring challenge in this structure is…