@@ -1126,39 +1126,45 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
11261126 return stats . isDirectory ( ) && ! fileName . startsWith ( "." ) ;
11271127 } )
11281128 . forEach ( extensionFolder => {
1129- const extensionPath = path . join ( extensionsFolderPath , extensionFolder ) ;
1130- const extensionRelativePath = path . relative ( this . getPlatformData ( projectData ) . projectRoot , extensionPath ) ;
1131- const group = this . getRootGroup ( extensionFolder , extensionPath ) ;
1132- const target = project . addTarget ( extensionFolder , 'app_extension' , extensionRelativePath ) ;
1133- project . addBuildPhase ( [ ] , 'PBXSourcesBuildPhase' , 'Sources' , target . uuid ) ;
1134- project . addBuildPhase ( [ ] , 'PBXResourcesBuildPhase' , 'Resources' , target . uuid ) ;
1135- project . addBuildPhase ( [ ] , 'PBXFrameworksBuildPhase' , 'Frameworks' , target . uuid ) ;
1136-
1137- const extJsonPath = path . join ( extensionsFolderPath , extensionFolder , "extension.json" ) ;
1138- if ( this . $fs . exists ( extJsonPath ) ) {
1139- const extensionJson = this . $fs . readJson ( extJsonPath ) ;
1140- _ . forEach ( extensionJson . frameworks , framework => {
1141- project . addFramework (
1142- framework ,
1143- { target : target . uuid }
1144- ) ;
1145- } ) ;
1146- if ( extensionJson . assetcatalogCompilerAppiconName ) {
1147- project . addToBuildSettings ( "ASSETCATALOG_COMPILER_APPICON_NAME" , extensionJson . assetcatalogCompilerAppiconName , target . uuid ) ;
1148- }
1149- }
1150-
1151- project . addPbxGroup ( group . files , group . name , group . path , null , { isMain : true , target : target . uuid , filesRelativeToProject : true } ) ;
1152- project . addBuildProperty ( "PRODUCT_BUNDLE_IDENTIFIER" , `${ projectData . projectIdentifiers . ios } .${ extensionFolder } ` , "Debug" , extensionFolder ) ;
1153- project . addBuildProperty ( "PRODUCT_BUNDLE_IDENTIFIER" , `${ projectData . projectIdentifiers . ios } .${ extensionFolder } ` , "Release" , extensionFolder ) ;
1154- targetUuids . push ( target . uuid ) ;
1155- project . addToHeaderSearchPaths ( group . path , target . pbxNativeTarget . productName ) ;
1129+ const targetUuid = this . addExtensionToProject ( extensionsFolderPath , extensionFolder , project , projectData ) ;
1130+ targetUuids . push ( targetUuid ) ;
11561131 } ) ;
11571132
11581133 this . savePbxProj ( project , projectData , true ) ;
11591134 this . prepareExtensionSigning ( targetUuids , projectData ) ;
11601135 }
11611136
1137+ private addExtensionToProject ( extensionsFolderPath : string , extensionFolder : string , project : IXcode . project , projectData : IProjectData ) : string {
1138+ const extensionPath = path . join ( extensionsFolderPath , extensionFolder ) ;
1139+ const extensionRelativePath = path . relative ( this . getPlatformData ( projectData ) . projectRoot , extensionPath ) ;
1140+ const group = this . getRootGroup ( extensionFolder , extensionPath ) ;
1141+ const target = project . addTarget ( extensionFolder , 'app_extension' , extensionRelativePath ) ;
1142+ project . addBuildPhase ( [ ] , 'PBXSourcesBuildPhase' , 'Sources' , target . uuid ) ;
1143+ project . addBuildPhase ( [ ] , 'PBXResourcesBuildPhase' , 'Resources' , target . uuid ) ;
1144+ project . addBuildPhase ( [ ] , 'PBXFrameworksBuildPhase' , 'Frameworks' , target . uuid ) ;
1145+
1146+ const extJsonPath = path . join ( extensionsFolderPath , extensionFolder , "extension.json" ) ;
1147+ if ( this . $fs . exists ( extJsonPath ) ) {
1148+ const extensionJson = this . $fs . readJson ( extJsonPath ) ;
1149+ _ . forEach ( extensionJson . frameworks , framework => {
1150+ project . addFramework (
1151+ framework ,
1152+ { target : target . uuid }
1153+ ) ;
1154+ } ) ;
1155+ if ( extensionJson . assetcatalogCompilerAppiconName ) {
1156+ project . addToBuildSettings ( "ASSETCATALOG_COMPILER_APPICON_NAME" , extensionJson . assetcatalogCompilerAppiconName , target . uuid ) ;
1157+ }
1158+ }
1159+
1160+ project . addPbxGroup ( group . files , group . name , group . path , null , { isMain : true , target : target . uuid , filesRelativeToProject : true } ) ;
1161+ project . addBuildProperty ( "PRODUCT_BUNDLE_IDENTIFIER" , `${ projectData . projectIdentifiers . ios } .${ extensionFolder } ` , "Debug" , extensionFolder ) ;
1162+ project . addBuildProperty ( "PRODUCT_BUNDLE_IDENTIFIER" , `${ projectData . projectIdentifiers . ios } .${ extensionFolder } ` , "Release" , extensionFolder ) ;
1163+ project . addToHeaderSearchPaths ( group . path , target . pbxNativeTarget . productName ) ;
1164+
1165+ return target . uuid
1166+ }
1167+
11621168 private prepareExtensionSigning ( targetUuids : string [ ] , projectData :IProjectData ) {
11631169 const xcode = this . $pbxprojDomXcode . Xcode . open ( this . getPbxProjPath ( projectData ) ) ;
11641170 const signing = xcode . getSigning ( projectData . projectName ) ;
0 commit comments