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
14 changes: 8 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
echo "✅ Successfully created tag: $TAG_NAME"

build-and-release:
name: Build and Release to TestFlight
name: Build and Release to TestFlight (Public Beta)
needs: version-check
if: needs.version-check.outputs.should_release == 'true'
runs-on: macos-latest
Expand Down Expand Up @@ -290,7 +290,7 @@ jobs:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# Run the beta lane (includes waiting for processing and distribution)
# Run the beta lane (includes waiting for processing and public beta distribution)
fastlane beta

- name: Create GitHub Release
Expand All @@ -302,8 +302,9 @@ jobs:
## 🚀 Version ${{ needs.version-check.outputs.version }}
Build: ${{ needs.version-check.outputs.build }}

### TestFlight
This version has been automatically submitted to TestFlight for beta testing.
### TestFlight Public Beta
This version has been automatically submitted to TestFlight for public beta testing.
External testers will receive email notifications when the build is available.

### What's New
- See [commit history](https://github.com/${{ github.repository }}/commits/${{ needs.version-check.outputs.new_tag }}) for changes
Expand All @@ -316,6 +317,7 @@ jobs:
- name: Post release notification
if: success()
run: |
echo "✅ Successfully released version ${{ needs.version-check.outputs.version }} to TestFlight!"
echo "✅ Successfully released version ${{ needs.version-check.outputs.version }} to TestFlight Public Beta!"
echo "🏷️ Tag: ${{ needs.version-check.outputs.new_tag }}"
echo "🔢 Build: ${{ needs.version-check.outputs.build }}"
echo "🔢 Build: ${{ needs.version-check.outputs.build }}"
echo "📧 External testers will be notified via email"
3 changes: 2 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,5 @@ Currently contains only boilerplate test setup.
- Supported architectures: armv7, arm64
- Orientation: Portrait only on iPhone, all orientations on iPad
- UI Style: Light mode enforced
- Website submodule: Located at `website/` (separate repository)
- Website submodule: Located at `website/` (separate repository)
- create PR should always use english
35 changes: 23 additions & 12 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -78,20 +78,21 @@ platform :ios do
api_key: api_key,
app_identifier: "v2er.app",
skip_submission: false,
distribute_external: true,
groups: ["External"], # Default external tester group
notify_external_testers: true,
distribute_external: true, # Distribute to external testers (public beta)
groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups
Copy link
Preview

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

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

The groups array contains multiple similar group names that may not all exist in TestFlight. Consider using only the groups that actually exist in your TestFlight configuration to avoid potential distribution failures. If unsure, start with a single known group name like 'Public Beta'.

Suggested change
groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups
groups: ["Public Beta"], # Use only a single known group to avoid distribution failures

Copilot uses AI. Check for mistakes.

notify_external_testers: true, # Send email notifications
uses_non_exempt_encryption: false,
submit_beta_review: true,
submit_beta_review: true, # Automatically submit for Beta review
wait_for_uploaded_build: true,
beta_app_description: "V2er is an elegant third-party client for V2EX forum",
beta_app_feedback_email: "support@v2er.app",
demo_account_required: false,
beta_app_review_info: {
contact_email: "support@v2er.app",
contact_first_name: "V2er",
contact_last_name: "Support",
contact_phone: "+1234567890",
demo_account_name: "",
demo_account_password: "",
notes: "This is a V2EX forum client app. No special account needed for testing."
contact_phone: "+86 13800138000",
notes: "This is a third-party client app for V2EX forum. No special account needed for testing."
}
)

Expand Down Expand Up @@ -160,13 +161,23 @@ platform :ios do
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
distribute_external: true, # Distribute to external testers (public beta)
distribute_only: false, # Upload and distribute in one action
groups: ["External Testers", "Beta Testers"], # Try common group names
groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups
Copy link
Preview

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

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

This duplicates the same group configuration from lines 82. The groups array contains multiple similar group names that may not all exist in TestFlight. Consider using only the groups that actually exist in your TestFlight configuration to avoid potential distribution failures.

Suggested change
groups: ["Public Beta", "External Testers", "Beta Testers"], # Public beta groups
groups: ["Public Beta"], # Only include groups that exist in TestFlight

Copilot uses AI. Check for mistakes.

changelog: "Bug fixes and improvements",
notify_external_testers: true, # Send email notifications
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 if needed
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: "support@v2er.app",
Copy link
Member Author

Choose a reason for hiding this comment

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

delete if it's optional

demo_account_required: false, # No demo account required
beta_app_review_info: {
contact_email: "support@v2er.app",
Copy link
Member Author

Choose a reason for hiding this comment

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

contact_first_name: "V2er",
Copy link
Member Author

Choose a reason for hiding this comment

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

delete these fields if they're optional

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."
}
)

# Notify success
Expand Down
Loading