@@ -688,16 +688,31 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
688
688
private prepareCocoapods ( pluginPlatformsFolderPath : string , opts ?: any ) : IFuture < void > {
689
689
return ( ( ) => {
690
690
let pluginPodFilePath = path . join ( pluginPlatformsFolderPath , "Podfile" ) ;
691
-
692
691
if ( this . $fs . exists ( pluginPodFilePath ) . wait ( ) ) {
693
- let pluginPodFileContent = this . $fs . readText ( pluginPodFilePath ) . wait ( ) ;
694
- let contentToWrite = `use_frameworks! ${ os . EOL } ${ os . EOL } target " ${ this . $projectData . projectName } " do ${ os . EOL } ${ this . buildPodfileContent ( pluginPodFilePath , pluginPodFileContent ) } ${ os . EOL } end` ;
695
- this . $fs . writeFile ( this . projectPodFilePath , contentToWrite ) . wait ( ) ;
692
+ let pluginPodFileContent = this . $fs . readText ( pluginPodFilePath ) . wait ( ) ,
693
+ pluginPodFilePreparedContent = this . buildPodfileContent ( pluginPodFilePath , pluginPodFileContent ) ,
694
+ projectPodFileContent = this . $fs . exists ( this . projectPodFilePath ) . wait ( ) ? this . $fs . readText ( this . projectPodFilePath ) . wait ( ) : "" ;
696
695
697
- let project = this . createPbxProj ( ) ;
698
- project . updateBuildProperty ( "IPHONEOS_DEPLOYMENT_TARGET" , "8.0" ) ;
699
- this . $logger . info ( "The iOS Deployment Target is now 8.0 in order to support Cocoa Touch Frameworks in CocoaPods." ) ;
700
- this . savePbxProj ( project ) . wait ( ) ;
696
+ if ( ! ~ projectPodFileContent . indexOf ( pluginPodFilePreparedContent ) ) {
697
+ let podFileHeader = `use_frameworks!${ os . EOL } ${ os . EOL } target "${ this . $projectData . projectName } " do${ os . EOL } ` ,
698
+ podFileFooter = `${ os . EOL } end` ;
699
+
700
+ if ( _ . startsWith ( projectPodFileContent , podFileHeader ) ) {
701
+ projectPodFileContent = projectPodFileContent . substr ( podFileHeader . length ) ;
702
+ }
703
+
704
+ if ( _ . endsWith ( projectPodFileContent , podFileFooter ) ) {
705
+ projectPodFileContent = projectPodFileContent . substr ( 0 , projectPodFileContent . length - podFileFooter . length ) ;
706
+ }
707
+
708
+ let contentToWrite = `${ podFileHeader } ${ projectPodFileContent } ${ pluginPodFilePreparedContent } ${ podFileFooter } ` ;
709
+ this . $fs . writeFile ( this . projectPodFilePath , contentToWrite ) . wait ( ) ;
710
+
711
+ let project = this . createPbxProj ( ) ;
712
+ project . updateBuildProperty ( "IPHONEOS_DEPLOYMENT_TARGET" , "8.0" ) ;
713
+ this . $logger . info ( "The iOS Deployment Target is now 8.0 in order to support Cocoa Touch Frameworks in CocoaPods." ) ;
714
+ this . savePbxProj ( project ) . wait ( ) ;
715
+ }
701
716
}
702
717
703
718
if ( opts && opts . executePodInstall && this . $fs . exists ( pluginPodFilePath ) . wait ( ) ) {
0 commit comments