@@ -348,27 +348,33 @@ pbxProject.prototype.addFramework = function(fpath, opt) {
348348 }
349349
350350 if ( link ) {
351- if ( this . addToPbxFrameworksBuildPhase ( file ) ) { // PBXFrameworksBuildPhase)
351+ const buildFileUuid = this . addToPbxFrameworksBuildPhase ( file ) ;
352+ if ( buildFileUuid === file . uuid ) { // PBXFrameworksBuildPhase)
352353 this . addToPbxBuildFileSection ( file ) ; // PBXBuildFile
354+ } else {
355+ file . uuid = buildFileUuid ;
353356 }
354357 }
355358
356359 if ( customFramework ) {
357360 this . addToFrameworkSearchPaths ( file ) ;
358361
359362 if ( embed ) {
360- opt . embed = embed ;
361- var embeddedFile = new pbxFile ( fpath , opt ) ;
362-
363- embeddedFile . uuid = this . generateUuid ( ) ;
364- embeddedFile . fileRef = file . fileRef ;
365- embeddedFile . target = file . target ;
366-
367- if ( this . addToPbxEmbedFrameworksBuildPhase ( embeddedFile ) ) { // PBXCopyFilesBuildPhase
363+ opt . embed = embed ;
364+ var embeddedFile = new pbxFile ( fpath , opt ) ;
365+
366+ embeddedFile . uuid = this . generateUuid ( ) ;
367+ embeddedFile . fileRef = file . fileRef ;
368+ embeddedFile . target = file . target ;
369+ const embedBuildFileUuid = this . addToPbxEmbedFrameworksBuildPhase ( embeddedFile ) ;
370+ if ( embedBuildFileUuid === embeddedFile . uuid ) { // PBXCopyFilesBuildPhase
368371 //keeping a separate PBXBuildFile entry for Embed Frameworks
369372 this . addToPbxBuildFileSection ( embeddedFile ) ; // PBXBuildFile
370- return embeddedFile ;
373+ } else {
374+ embeddedFile . uuid = embedBuildFileUuid ;
371375 }
376+
377+ return embeddedFile ;
372378 }
373379 }
374380
@@ -861,11 +867,11 @@ pbxProject.prototype.removeFromFrameworksPbxGroup = function(file) {
861867 }
862868}
863869
864- function hasReferenceInPbxBuildFile ( buildFileReferences , fileReference ) {
870+ function getReferenceInPbxBuildFile ( buildFileReferences , fileReference ) {
865871 var buildFileSection = this . pbxBuildFileSection ( ) ;
866872 for ( let buildFileReference of buildFileReferences ) {
867873 if ( buildFileSection [ buildFileReference . value ] && buildFileSection [ buildFileReference . value ] . fileRef === fileReference . fileRef ) {
868- return true ;
874+ return buildFileReference . value ;
869875 }
870876 }
871877}
@@ -874,12 +880,13 @@ pbxProject.prototype.addToPbxEmbedFrameworksBuildPhase = function (file) {
874880 var sources = this . pbxEmbedFrameworksBuildPhaseObj ( file . target ) ;
875881
876882 if ( sources ) {
877- if ( hasReferenceInPbxBuildFile . call ( this , sources . files , file ) ) {
878- return false ;
883+ var referenceUuid = getReferenceInPbxBuildFile . call ( this , sources . files , file )
884+ if ( referenceUuid ) {
885+ return referenceUuid ;
879886 }
880887
881888 sources . files . push ( pbxBuildPhaseObj ( file ) ) ;
882- return true ;
889+ return file . uuid ;
883890 }
884891}
885892
@@ -955,12 +962,13 @@ pbxProject.prototype.addToPbxFrameworksBuildPhase = function(file) {
955962 var sources = this . pbxFrameworksBuildPhaseObj ( file . target ) ;
956963
957964 if ( sources ) {
958- if ( hasReferenceInPbxBuildFile . call ( this , sources . files , file ) ) {
959- return false ;
965+ var frameworkBuildUuid = getReferenceInPbxBuildFile . call ( this , sources . files , file ) ;
966+ if ( frameworkBuildUuid ) {
967+ return frameworkBuildUuid ;
960968 }
961969
962970 sources . files . push ( pbxBuildPhaseObj ( file ) ) ;
963- return true ;
971+ return file . uuid ;
964972 }
965973}
966974
0 commit comments