Bundles are folders that the OS treats as one file .app is a bundle .framework is a bundle .bundle is a bundle .a is NOT a bundle
The Bundle API in Foundation is useful for navigating and loading resources inside of a bundle The simplest -- .bundle -- is used to share files and resources. We use .bundles for sharing APIEnvironment files: certificates, plists, etc needed to communicate with our APIs. Bundles can be shared between targets. For example, TestHarness in toolbox copies the API bundles during it's copy bundle phase into the .app bundle's Resources folder. You can load resources from these bundles using Bundle.main.urlForResource:extension: which will return the path to the bundle. You can then use the Bundle(url:) to get a representation of that Bundle. Or alternatively, you can give a bundle an identifier and use the Bundle(identifier:) initializer.