Projects that define a package-wide PRODUCT_BUNDLE_IDENTIFIER = com..$(PRODUCT_NAME) template and depend on SwiftPM modules whose names start with an underscore (such as swift-collections’s _RopeModule / _CollectionsUtilities, swift-numerics’s _NumericsShims, or a project-local _LottieStub) can now build for testing again. The package template is still applied at the project level via PackageSettings.baseSettings, but PRODUCT_BUNDLE_IDENTIFIER is no longer copied down to individual targets where it would override the sanitized per-target bundleId and produce com.._RopeModule, which Xcode rejects as an invalid CFBundleIdentifier.
Hive
SwiftPM target bundle identifiers no longer clobbered by package base settings
Published
Jul 03, 2026 · 16:57 UTC
Repository
tuist/tuist