@@ -42,11 +42,7 @@ platform :ios do
4242        provisioningProfiles : { 
4343          "v2er.app"  =>  "match AppStore v2er.app" 
4444        } , 
45-         teamID : ENV [ "TEAM_ID" ] , 
46-         ITSAppUsesNonExemptEncryption : false ,   # Add export compliance to IPA 
47-         uploadBitcode : false , 
48-         compileBitcode : false , 
49-         uploadSymbols : true 
45+         teamID : ENV [ "TEAM_ID" ] 
5046      } , 
5147      export_team_id : ENV [ "TEAM_ID" ] , 
5248      xcargs : "-allowProvisioningUpdates CODE_SIGN_STYLE=Manual" , 
@@ -71,7 +67,7 @@ platform :ios do
7167    ) 
7268  end 
7369
74-   desc  "Distribute existing build to internal  testers" 
70+   desc  "Distribute existing build to beta  testers" 
7571  lane  :distribute_beta  do  |options |
7672    # Get App Store Connect API key 
7773    api_key  =  get_api_key 
@@ -80,42 +76,38 @@ platform :ios do
8076    build_number  =  options [ :build_number ] 
8177
8278    begin 
83-       # Distribute to internal  testers only  
79+       # Distribute to beta  testers 
8480      testflight ( 
8581        api_key : api_key , 
8682        app_identifier : "v2er.app" , 
87-         skip_submission : true ,   # Skip beta review for internal testing 
88-         distribute_external : false ,   # Internal testing only (not public beta) 
83+         skip_submission : false , 
84+         distribute_external : true ,   # Distribute to external testers (public beta) 
85+         groups : [ "Public Beta" ,  "External Testers" ,  "Beta Testers" ] ,   # Public beta groups 
86+         notify_external_testers : true ,   # Send email notifications 
87+         uses_non_exempt_encryption : false , 
88+         submit_beta_review : true ,   # Automatically submit for Beta review 
8989        wait_for_uploaded_build : true , 
90-         groups : [ "Github Actions Internal" ] ,   # Auto-distribute to Github Actions Internal group 
91-         notify_external_testers : false ,   # No external notifications 
92-         uses_non_exempt_encryption : false ,   # Mark as no encryption to skip export compliance review 
93-         export_compliance_uses_encryption : false ,   # Explicitly state no encryption 
94-         export_compliance_is_exempt : true   # Exempt from export compliance 
90+         beta_app_description : "V2er is an elegant third-party client for V2EX forum" , 
91+         beta_app_feedback_email : "support@v2er.app" , 
92+         demo_account_required : false , 
93+         beta_app_review_info : { 
94+           contact_email : "support@v2er.app" , 
95+           contact_first_name : "V2er" , 
96+           contact_last_name : "Support" , 
97+           contact_phone : "+86 13800138000" , 
98+           notes : "This is a third-party client app for V2EX forum. No special account needed for testing." 
99+         } 
95100      ) 
96101
97-       UI . success ( "✅ Successfully distributed build to internal  testers (Github Actions Internal) !" ) 
102+       UI . success ( "✅ Successfully distributed build to beta  testers!" ) 
98103    rescue  =>  e 
99104      UI . error ( "Failed to distribute: #{ e . message }  ) 
100105      UI . message ( "You may need to manually distribute the build in App Store Connect" ) 
101106    end 
102107  end 
103108
104109  desc  "Build and upload to TestFlight" 
105-   desc  "Parameters:" 
106-   desc  "  channel: 'internal' (default) or 'public_beta'" 
107-   lane  :beta  do  |options |
108-     # Get release channel from options or environment variable 
109-     # Default to 'internal' if not specified 
110-     channel  =  options [ :channel ]  || ENV [ 'RELEASE_CHANNEL' ]  || 'internal' 
111- 
112-     UI . message ( "📦 Release channel: #{ channel }  ) 
113- 
114-     # Validate channel parameter 
115-     unless  [ 'internal' ,  'public_beta' ] . include? ( channel ) 
116-       UI . user_error! ( "Invalid channel: #{ channel }  ) 
117-     end 
118- 
110+   lane  :beta  do 
119111    # Validate that changelog exists for current version 
120112    unless  ChangelogHelper . validate_changelog_exists 
121113      UI . user_error! ( "Please update CHANGELOG.md with an entry for the current version before releasing!" ) 
@@ -174,58 +166,31 @@ platform :ios do
174166    # Extract changelog for the current version 
175167    changelog_content  =  ChangelogHelper . extract_changelog ( current_version ) 
176168
177-     # Configure TestFlight upload based on release channel 
178-     is_public_beta  =  channel  == 'public_beta' 
179- 
180-     upload_params  =  { 
169+     # Upload to TestFlight 
170+     upload_to_testflight ( 
181171      api_key : api_key , 
182-       skip_submission : ! is_public_beta ,    # Skip beta review for internal, submit for public beta 
172+       skip_submission : false , 
183173      skip_waiting_for_build_processing : false ,   # Wait for processing before distribution 
184174      wait_processing_interval : 30 ,   # Check every 30 seconds 
185175      wait_processing_timeout_duration : 900 ,   # Wait up to 15 minutes for processing 
186-       distribute_external : is_public_beta ,   # Internal testing by default,  external for  public beta 
176+       distribute_external : true ,   # Distribute to  external testers ( public beta)  
187177      distribute_only : false ,   # Upload and distribute in one action 
178+       groups : [ "Public Beta" ,  "External Testers" ,  "Beta Testers" ] ,   # Public beta groups 
188179      changelog : changelog_content ,   # Use changelog from CHANGELOG.md 
189-       uses_non_exempt_encryption : false ,   # Mark as no encryption to skip export compliance review 
190-       export_compliance_uses_encryption : false ,   # Explicitly state no encryption for export compliance 
191-       export_compliance_platform : 'ios' ,   # Specify platform for export compliance 
192-       export_compliance_compliance_required : false ,   # No additional compliance documentation required 
193-       export_compliance_app_type : nil ,   # Not applicable since we don't use encryption 
194-       export_compliance_encryption_updated : false ,   # No encryption changes 
195-       export_compliance_contains_third_party_cryptography : false ,   # No third-party cryptography 
196-       export_compliance_is_exempt : true   # Exempt from export compliance 
197-     } 
198- 
199-     # Add channel-specific distribution parameters 
200-     if  is_public_beta 
201-       upload_params . merge! ( { 
202-         groups : [ "Public Beta" ,  "External Testers" ,  "Beta Testers" ] ,   # Public beta groups 
203-         notify_external_testers : true ,   # Send email notifications to external testers 
204-         submit_beta_review : true ,   # Automatically submit for Beta review 
205-         beta_app_description : "V2er is an elegant third-party client for V2EX forum" , 
206-         beta_app_feedback_email : "support@v2er.app" , 
207-         demo_account_required : false ,   # No demo account required 
208-         beta_app_review_info : { 
209-           contact_email : "support@v2er.app" , 
210-           contact_first_name : "V2er" , 
211-           contact_last_name : "Support" , 
212-           contact_phone : "+86 13800138000" , 
213-           notes : "This is a third-party client app for V2EX forum. No special account needed for testing." 
214-         } 
215-       } ) 
216-       UI . message ( "📧 Public beta mode: Will notify external testers and submit for beta review" ) 
217-     else 
218-       # Internal testing mode - automatically distribute to internal testers 
219-       # Uses "Github Actions Internal" group configured in App Store Connect 
220-       upload_params . merge! ( { 
221-         groups : [ "Github Actions Internal" ] ,   # Auto-distribute to Github Actions Internal group 
222-         notify_external_testers : false   # No external notifications for internal testing 
223-       } ) 
224-       UI . message ( "👥 Internal testing mode: Will auto-distribute to Github Actions Internal group (no beta review required)" ) 
225-     end 
226- 
227-     # Upload to TestFlight with automatic distribution 
228-     upload_to_testflight ( upload_params ) 
180+       notify_external_testers : true ,   # Send email notifications to external testers 
181+       uses_non_exempt_encryption : false ,   # Required for automatic distribution 
182+       submit_beta_review : true ,   # Automatically submit for Beta review 
183+       beta_app_description : "V2er is an elegant third-party client for V2EX forum" , 
184+       beta_app_feedback_email : "support@v2er.app" , 
185+       demo_account_required : false ,   # No demo account required 
186+       beta_app_review_info : { 
187+         contact_email : "support@v2er.app" , 
188+         contact_first_name : "V2er" , 
189+         contact_last_name : "Support" , 
190+         contact_phone : "+86 13800138000" , 
191+         notes : "This is a third-party client app for V2EX forum. No special account needed for testing." 
192+       } 
193+     ) 
229194
230195    # Notify success 
231196    notification ( 
0 commit comments