Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
push:
branches: [main, develop]
workflow_dispatch:

concurrency:
Expand Down
38 changes: 15 additions & 23 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -163,35 +163,27 @@ platform :ios do
# Build the app
build_ipa

# Extract changelog for the current version
changelog_content = ChangelogHelper.extract_changelog(current_version)

# Upload to TestFlight
# NOTE: We skip waiting for build processing to avoid timeout issues.
# Apple's build processing can take 5-30 minutes, which often exceeds reasonable timeout limits.
# Distribution to testers can be done after processing completes using: fastlane distribute_beta
upload_to_testflight(
api_key: api_key,
skip_submission: false,
skip_waiting_for_build_processing: false, # Wait for processing before distribution
wait_processing_interval: 30, # Check every 30 seconds
wait_processing_timeout_duration: 900, # Wait up to 15 minutes for processing
distribute_external: true, # Distribute to external testers (public beta)
distribute_only: false, # Upload and distribute in one action
groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups
changelog: changelog_content, # Use changelog from CHANGELOG.md
notify_external_testers: true, # Send email notifications to external testers
uses_non_exempt_encryption: false, # Required for automatic distribution
submit_beta_review: true, # Automatically submit for Beta review
beta_app_description: "V2er is an elegant third-party client for V2EX forum",
beta_app_feedback_email: "[email protected]",
demo_account_required: false, # No demo account required
beta_app_review_info: {
contact_email: "[email protected]",
contact_first_name: "V2er",
contact_last_name: "Support",
contact_phone: "+86 13800138000",
notes: "This is a third-party client app for V2EX forum. No special account needed for testing."
}
skip_waiting_for_build_processing: true, # Don't wait - avoid timeout issues
distribute_external: false, # Can't distribute until Apple finishes processing
uses_non_exempt_encryption: false
# NOTE: changelog parameter intentionally omitted
# Even with skip_waiting_for_build_processing: true, providing a changelog
# causes fastlane to wait for the build to appear in App Store Connect,
# which defeats the purpose of skipping. Changelog can be added manually
# in App Store Connect or when distributing with: fastlane distribute_beta
)
Comment on lines 170 to 181
Copy link

Copilot AI Nov 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The beta lane still validates that a changelog entry exists (line 112) but no longer uses it. This creates an inconsistency where developers are required to maintain the changelog, but it's not actually included in the TestFlight submission.

Consider either:

  1. Removing the changelog validation since it's not used: Delete lines 111-114
  2. Or documenting that the changelog validation is for manual distribution via fastlane distribute_beta

The current state may confuse developers about why changelog validation is required if the changelog isn't being used.

Copilot uses AI. Check for mistakes.

UI.success("✅ Build uploaded successfully to TestFlight!")
UI.important("📦 Build will be available for testing once Apple finishes processing (usually 5-30 minutes)")
UI.important("🔔 You can distribute to testers using: fastlane distribute_beta")

# Notify success
notification(
title: "V2er iOS",
Expand Down
Loading