@@ -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 } . Must be 'internal' or 'public_beta'" )
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