@@ -192,6 +192,46 @@ module.exports = {
192192 fs . writeFileSync ( path . resolve ( xcodeProjectPath ) , xcodeProject . writeSync ( ) ) ;
193193 } ,
194194
195+ addGoogleTagManagerContainer : function ( context , xcodeProjectPath ) {
196+ const appName = utilities . getAppName ( ) ;
197+ const containerDirectorySource = `${ context . opts . projectRoot } /resources/ios/container` ;
198+ const containerDirectoryTarget = `platforms/ios/${ appName } /container` ;
199+ const xcodeProject = xcode . project ( xcodeProjectPath ) ;
200+ xcodeProject . parseSync ( ) ;
201+
202+ if ( utilities . directoryExists ( containerDirectorySource ) ) {
203+ utilities . log ( `Preparing GoogleTagManager on iOS` ) ;
204+ try {
205+ fs . cpSync ( containerDirectorySource , containerDirectoryTarget , { recursive : true } ) ;
206+ const appPBXGroup = xcodeProject . findPBXGroupKey ( { name : appName } )
207+ xcodeProject . addResourceFile ( 'container' , {
208+ lastKnownFileType : 'folder' ,
209+ fileEncoding : 9
210+ } , appPBXGroup ) ;
211+ fs . writeFileSync ( path . resolve ( xcodeProjectPath ) , xcodeProject . writeSync ( ) ) ;
212+ } catch ( error ) {
213+ utilities . error ( error ) ;
214+ }
215+ }
216+ } ,
217+
218+ removeGoogleTagManagerContainer : function ( context , xcodeProjectPath ) {
219+ const appName = utilities . getAppName ( ) ;
220+ const appContainerDirectory = `platforms/ios/${ appName } /container` ;
221+ const xcodeProject = xcode . project ( xcodeProjectPath ) ;
222+ xcodeProject . parseSync ( ) ;
223+ if ( utilities . directoryExists ( appContainerDirectory ) ) {
224+ utilities . log ( `Remove GoogleTagManager container` ) ;
225+ const appPBXGroup = xcodeProject . findPBXGroupKey ( { name : appName } )
226+ xcodeProject . removeResourceFile ( 'container' , {
227+ lastKnownFileType : 'folder' ,
228+ fileEncoding : 9
229+ } , appPBXGroup ) ;
230+ fs . writeFileSync ( path . resolve ( xcodeProjectPath ) , xcodeProject . writeSync ( ) ) ;
231+ fs . rmSync ( appContainerDirectory , { recursive : true } ) ;
232+ }
233+ } ,
234+
195235 ensureRunpathSearchPath : function ( context , xcodeProjectPath ) {
196236
197237 function addRunpathSearchBuildProperty ( proj , build ) {
0 commit comments