@@ -3,28 +3,32 @@ package exportoptionsgenerator
33import (
44 "github.com/bitrise-io/go-utils/v2/log"
55 "github.com/bitrise-io/go-xcode/certificateutil"
6- "github.com/bitrise-io/go-xcode/export"
76 "github.com/bitrise-io/go-xcode/exportoptions"
87 "github.com/bitrise-io/go-xcode/profileutil"
8+ codesigngroup "github.com/bitrise-io/go-xcode/v2/exportoptionsgenerator/internal/codesigngroup"
99 "github.com/bitrise-io/go-xcode/v2/plistutil"
1010)
1111
1212// CodeSignGroupProvider ...
1313type CodeSignGroupProvider interface {
14- DetermineCodesignGroup (certificates []certificateutil.CertificateInfoModel , profiles []profileutil.ProvisioningProfileInfoModel , defaultProfile * profileutil.ProvisioningProfileInfoModel , bundleIDEntitlementsMap map [string ]plistutil.PlistData , exportMethod exportoptions.Method , teamID string , xcodeManaged bool ) (* export. IosCodeSignGroup , error )
14+ DetermineCodesignGroup (certificates []certificateutil.CertificateInfoModel , profiles []profileutil.ProvisioningProfileInfoModel , defaultProfile * profileutil.ProvisioningProfileInfoModel , bundleIDEntitlementsMap map [string ]plistutil.PlistData , exportMethod exportoptions.Method , teamID string , xcodeManaged bool ) (* codesigngroup. Ios , error )
1515}
1616
1717type codeSignGroupProvider struct {
18- logger log.Logger
18+ logger log.Logger
19+ printer * codesigngroup.Printer
1920}
2021
2122// NewCodeSignGroupProvider ...
2223func NewCodeSignGroupProvider (logger log.Logger ) CodeSignGroupProvider {
23- return & codeSignGroupProvider {logger : logger }
24+ return & codeSignGroupProvider {
25+ logger : logger ,
26+ printer : codesigngroup .NewPrinter (logger ),
27+ }
2428}
2529
2630// DetermineCodesignGroup ....
27- func (g codeSignGroupProvider ) DetermineCodesignGroup (certificates []certificateutil.CertificateInfoModel , profiles []profileutil.ProvisioningProfileInfoModel , defaultProfile * profileutil.ProvisioningProfileInfoModel , bundleIDEntitlementsMap map [string ]plistutil.PlistData , exportMethod exportoptions.Method , teamID string , xcodeManaged bool ) (* export. IosCodeSignGroup , error ) {
31+ func (g codeSignGroupProvider ) DetermineCodesignGroup (certificates []certificateutil.CertificateInfoModel , profiles []profileutil.ProvisioningProfileInfoModel , defaultProfile * profileutil.ProvisioningProfileInfoModel , bundleIDEntitlementsMap map [string ]plistutil.PlistData , exportMethod exportoptions.Method , teamID string , xcodeManaged bool ) (* codesigngroup. Ios , error ) {
2832 g .logger .Println ()
2933 g .logger .Printf ("Target Bundle ID - Entitlements map" )
3034 var bundleIDs []string
@@ -38,9 +42,6 @@ func (g codeSignGroupProvider) DetermineCodesignGroup(certificates []certificate
3842 g .logger .Printf ("%s: %s" , bundleID , entitlementKeys )
3943 }
4044
41- g .logger .Println ()
42- g .logger .Printf ("Resolving CodeSignGroups..." )
43-
4445 g .logger .Debugf ("Installed certificates:" )
4546 for _ , certInfo := range certificates {
4647 g .logger .Debugf (certInfo .String ())
@@ -51,76 +52,65 @@ func (g codeSignGroupProvider) DetermineCodesignGroup(certificates []certificate
5152 g .logger .Debugf (profileInfo .String (certificates ... ))
5253 }
5354
54- g .logger .Printf ("Resolving CodeSignGroups..." )
55- codeSignGroups := export .CreateSelectableCodeSignGroups (certificates , profiles , bundleIDs )
55+ g .logger .Println ()
56+ g .logger .Printf ("Resolving code signing groups..." )
57+ codeSignGroups := codesigngroup .BuildFilterableList (certificates , profiles , bundleIDs )
5658 if len (codeSignGroups ) == 0 {
5759 g .logger .Errorf ("Failed to find code signing groups for specified export method (%s)" , exportMethod )
5860 }
5961
6062 g .logger .Debugf ("\n Groups:" )
61- for _ , group := range codeSignGroups {
62- g .logger .Debugf (group .String ())
63- }
63+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
6464
6565 if len (bundleIDEntitlementsMap ) > 0 {
66- g .logger .Warnf ("Filtering CodeSignInfo groups for target capabilities" )
66+ g .logger .Printf ("Filtering code signing groups for target capabilities" )
6767
68- codeSignGroups = export . FilterSelectableCodeSignGroups (codeSignGroups , export .CreateEntitlementsSelectableCodeSignGroupFilter (convertToV1PlistData (bundleIDEntitlementsMap )))
68+ codeSignGroups = codesigngroup . Filter (codeSignGroups , codesigngroup .CreateEntitlementsSelectableCodeSignGroupFilter (convertToV1PlistData (bundleIDEntitlementsMap )))
6969
7070 g .logger .Debugf ("\n Groups after filtering for target capabilities:" )
71- for _ , group := range codeSignGroups {
72- g .logger .Debugf (group .String ())
73- }
71+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
7472 }
7573
76- g .logger .Warnf ("Filtering CodeSignInfo groups for export method" )
74+ g .logger .Printf ("Filtering code signing groups for export method %s" , exportMethod )
7775
78- codeSignGroups = export . FilterSelectableCodeSignGroups (codeSignGroups , export .CreateExportMethodSelectableCodeSignGroupFilter (exportMethod ))
76+ codeSignGroups = codesigngroup . Filter (codeSignGroups , codesigngroup .CreateExportMethodSelectableCodeSignGroupFilter (exportMethod ))
7977
8078 g .logger .Debugf ("\n Groups after filtering for export method:" )
81- for _ , group := range codeSignGroups {
82- g .logger .Debugf (group .String ())
83- }
79+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
8480
8581 if teamID != "" {
86- g .logger .Warnf ( "ExportDevelopmentTeam specified: %s, filtering CodeSignInfo groups..." , teamID )
82+ g .logger .Printf ( "Development team specified: %s, filtering groups..." , teamID )
8783
88- codeSignGroups = export . FilterSelectableCodeSignGroups (codeSignGroups , export .CreateTeamSelectableCodeSignGroupFilter (teamID ))
84+ codeSignGroups = codesigngroup . Filter (codeSignGroups , codesigngroup .CreateTeamSelectableCodeSignGroupFilter (teamID ))
8985
9086 g .logger .Debugf ("\n Groups after filtering for team ID:" )
91- for _ , group := range codeSignGroups {
92- g .logger .Debugf (group .String ())
93- }
87+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
9488 }
9589
9690 if ! xcodeManaged {
97- g .logger .Warnf ("App was signed with NON Xcode managed profile when archiving,\n " +
98- "only NOT Xcode managed profiles are allowed to sign when exporting the archive.\n " +
99- "Removing Xcode managed CodeSignInfo groups" )
91+ g .logger .Printf ("App was signed with NON Xcode managed profile when archiving,\n " +
92+ "only NON Xcode managed profiles are allowed to sign when exporting the archive.\n " +
93+ "Removing Xcode managed code signing groups" )
10094
101- codeSignGroups = export . FilterSelectableCodeSignGroups (codeSignGroups , export .CreateNotXcodeManagedSelectableCodeSignGroupFilter ())
95+ codeSignGroups = codesigngroup . Filter (codeSignGroups , codesigngroup .CreateNotXcodeManagedSelectableCodeSignGroupFilter ())
10296
103- g .logger .Debugf ("\n Groups after filtering for NOT Xcode managed profiles:" )
104- for _ , group := range codeSignGroups {
105- g .logger .Debugf (group .String ())
106- }
97+ g .logger .Debugf ("\n Groups after filtering for NON Xcode managed profiles:" )
98+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
10799 }
108100
109101 if teamID == "" && defaultProfile != nil {
110102 g .logger .Debugf ("\n default profile: %v\n " , defaultProfile )
111- filteredCodeSignGroups := export . FilterSelectableCodeSignGroups (codeSignGroups ,
112- export .CreateExcludeProfileNameSelectableCodeSignGroupFilter (defaultProfile .Name ))
103+ filteredCodeSignGroups := codesigngroup . Filter (codeSignGroups ,
104+ codesigngroup .CreateExcludeProfileNameSelectableCodeSignGroupFilter (defaultProfile .Name ))
113105 if len (filteredCodeSignGroups ) > 0 {
114106 codeSignGroups = filteredCodeSignGroups
115-
107+ g . logger . Printf ( "Removed default profile '%s' from code signing groups" , defaultProfile . Name )
116108 g .logger .Debugf ("\n Groups after removing default profile:" )
117- for _ , group := range codeSignGroups {
118- g .logger .Debugf (group .String ())
119- }
109+ g .logger .Debugf ("%s" , g .printer .ListToDebugString (codeSignGroups ))
120110 }
121111 }
122112
123- var iosCodeSignGroups []export. IosCodeSignGroup
113+ var iosCodeSignGroups []codesigngroup. Ios
124114
125115 for _ , selectable := range codeSignGroups {
126116 bundleIDProfileMap := map [string ]profileutil.ProvisioningProfileInfoModel {}
@@ -132,7 +122,7 @@ func (g codeSignGroupProvider) DetermineCodesignGroup(certificates []certificate
132122 }
133123 }
134124
135- iosCodeSignGroups = append (iosCodeSignGroups , * export .NewIOSGroup (selectable .Certificate , bundleIDProfileMap ))
125+ iosCodeSignGroups = append (iosCodeSignGroups , * codesigngroup .NewIOSGroup (selectable .Certificate , bundleIDProfileMap ))
136126 }
137127
138128 g .logger .Debugf ("\n Filtered groups:" )
@@ -144,12 +134,12 @@ func (g codeSignGroupProvider) DetermineCodesignGroup(certificates []certificate
144134 }
145135
146136 if len (iosCodeSignGroups ) < 1 {
147- g .logger .Errorf ("Failed to find Codesign Groups " )
137+ g .logger .Errorf ("Failed to find code signing groups " )
148138 return nil , nil
149139 }
150140
151141 if len (iosCodeSignGroups ) > 1 {
152- g .logger .Warnf ("Multiple code signing groups found! Using the first code signing group" )
142+ g .logger .Warnf ("Multiple code signing groups found! Using the first code signing group. " )
153143 }
154144
155145 return & iosCodeSignGroups [0 ], nil
0 commit comments