I meant to add... you could also add a JavaScript extension scoped to pre-loader with the following contents:
window.utag_data = <name of your data object here>;
e.g. assuming your data object is called "dataLayer":
window.utag_data = dataLayer;
This would create the utag_data object for you, and it would be a reference to your custom data object. If you went with this approach, you wouldn't need to change the publish settings, but at the cost of having 1 extra extension.
Check out our new Swift integration library for iOS, macOS, tvOS and watchOS: https://github.com/Tealium/tealium-swift with updated
documentation https://community.tealiumiq.com/t5/Swift/tkb-p/swift.