@@ -389,15 +389,18 @@ - (BOOL) build
389389- (BOOL ) generate
390390{
391391 GSXCBuildContext *context = [GSXCBuildContext sharedBuildContext ];
392- NSMutableArray *resources = [NSMutableArray arrayWithCapacity: [_files count ]];
392+
393+ // Use the new allFiles method to include files from groups
394+ NSArray *allFiles = [self allFiles ];
395+ NSMutableArray *resources = [NSMutableArray arrayWithCapacity: [allFiles count ]];
393396
394397 xcputs (" === Generating Resources Entries Build Phase" );
395398 NSFileManager *mgr = [NSFileManager defaultManager ];
396399 NSString *productName = [_target productName ];
397400 NSString *appName = [productName stringByDeletingPathExtension ];
398401
399402 // Copy all resources...
400- NSEnumerator *en = [_files objectEnumerator ];
403+ NSEnumerator *en = [allFiles objectEnumerator ];
401404 BOOL result = YES ;
402405 id file = nil ;
403406 while ((file = [en nextObject ]) != nil && result)
@@ -462,6 +465,33 @@ - (BOOL) generate
462465 return result;
463466}
464467
468+ // Override filesFromGroups for resources - could include any file type
469+ - (NSArray *) filesFromGroups
470+ {
471+ NSMutableArray *result = [NSMutableArray array ];
472+
473+ if (_target != nil )
474+ {
475+ // Resources can include both source and header files, plus other resource types
476+ // For now, we get both synchronized sources and headers
477+ NSArray *synchronizedSources = [_target synchronizedSources ];
478+ if (synchronizedSources != nil )
479+ {
480+ [result addObjectsFromArray: synchronizedSources];
481+ }
482+
483+ NSArray *synchronizedHeaders = [_target synchronizedHeaders ];
484+ if (synchronizedHeaders != nil )
485+ {
486+ [result addObjectsFromArray: synchronizedHeaders];
487+ }
488+
489+ // TODO: Could extend this to handle other resource types from groups
490+ }
491+
492+ return result;
493+ }
494+
465495- (BOOL ) link
466496{
467497 return [self build ];
0 commit comments