Skip to content

Ci testflight fixes#1176

Open
ValentinaIancu-Gini wants to merge 15 commits into
mainfrom
ci-testflight-fixes
Open

Ci testflight fixes#1176
ValentinaIancu-Gini wants to merge 15 commits into
mainfrom
ci-testflight-fixes

Conversation

@ValentinaIancu-Gini

@ValentinaIancu-Gini ValentinaIancu-Gini commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Pull Request Description

This PR updates the TestFlight publishing pipeline for the Bank SDK example app by switching from a file-based App Store Connect API key + altool upload flow to Fastlane’s upload_to_testflight with base64 key content, and by making the app’s build number configurable via CI.

Changes:

  • Update fastlane publish_to_testflight to use app_store_connect_api_key + upload_to_testflight with APP_STORE_CONNECT_API_KEY (base64).
  • Set CFBundleVersion to $(CURRENT_PROJECT_VERSION) and inject CURRENT_PROJECT_VERSION=${{ github.run_number }} during CI archive.
  • Adjust reusable TestFlight workflow signing-profile download and secret wiring.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the TestFlight publishing pipeline for the Bank SDK example app by switching from a file-based App Store Connect API key + altool upload flow to Fastlane’s upload_to_testflight with base64 key content, and by making the app’s build number configurable via CI.

Changes:

  • Update fastlane publish_to_testflight to use app_store_connect_api_key + upload_to_testflight with APP_STORE_CONNECT_API_KEY (base64).
  • Set CFBundleVersion to $(CURRENT_PROJECT_VERSION) and inject CURRENT_PROJECT_VERSION=${{ github.run_number }} during CI archive.
  • Adjust reusable TestFlight workflow signing-profile download and secret wiring.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
fastlane/Fastfile Switch TestFlight upload implementation to Fastlane API key + upload_to_testflight (and remove local key-file handling).
BankSDK/GiniBankSDKExample/GiniBankSDKExample/Info.plist Make build number come from CURRENT_PROJECT_VERSION instead of a hardcoded value.
.github/workflows/publish.example.app.testflight.yml Update CI steps to pass API key content directly and set CURRENT_PROJECT_VERSION during archive.
.github/workflows/bank-sdk.publish.example.app.testflight.yml Update the caller workflow to pass secrets/inputs into the reusable TestFlight workflow.

Comment thread .github/workflows/bank-sdk.publish.example.app.testflight.yml Outdated
Comment thread fastlane/Fastfile Outdated

@qnaveed87 qnaveed87 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@ValentinaIancu-Gini Thank you

Looks good to me

@zladzeyka zladzeyka left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks @ValentinaIancu-Gini for fixing 🎉
Only polishing naming suggestion from my side

Comment thread .github/workflows/bank-sdk.publish.example.app.testflight.yml Outdated
…orkflows

Use consistent secret name APP_STORE_API_KEY_ISSUER_ID in both the reusable
workflow contract and the caller, removing the unnecessary rename indirection.
- Add new workflow to upload GiniHealthSDKExample to TestFlight
- Rename ExportOptionsHealthExample.plist to
  ExportOptionsAppStoreGiniHealthSDKExample.plist
- Switch export method from ad-hoc to app-store-connect
- Update provisioning profile to match AppStore profile
Replace references to APP_STORE_CONNECT_API_KEY_PATH with
APP_STORE_CONNECT_API_KEY (base64-encoded .p8 content) in lane
docs for build_and_upload_to_testflight and publish_to_testflight.
Add a check-schedule job to both BankSDK and HealthSDK TestFlight
workflows to restrict cron-triggered runs to the second Monday of
Feb, May, Aug, and Nov, replacing the previous quarterly first-of-month
schedule.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

ExportOptionsAppStoreGiniHealthSDKExample.plist:6

  • exportOptionsPlist’s method value app-store-connect is not a valid xcodebuild -exportArchive export method and will cause export to fail. For TestFlight/App Store Connect distribution, Xcode expects method to be app-store.

Comment on lines +96 to 99
run: |
DISTRIBUTION_TYPE=appstore bundle exec fastlane download_profiles
DISTRIBUTION_TYPE=adhoc APP_IDENTIFIER=${{ inputs.bundle_identifier }} bundle exec fastlane download_profiles

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Clarification]: @ValentinaIancu-Gini are we downloading somewhere a profile for our app extension?

@sonarqubecloud

Copy link
Copy Markdown

@zladzeyka zladzeyka left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Suggestion]: I think we need to update also plist for Health SDK Example

Comment thread fastlane/Fastfile
Upload an .ipa to TestFlight via the App Store Connect API.

Parameters:
ipa_path - Path to the .ipa file (default: "./GiniBankSDKExample.ipa")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Suggestion]: modify the comment comment and mention that it might be ./GiniHealthSDKExample.ipa as well

Comment thread fastlane/Fastfile
key_id = ENV['APP_STORE_CONNECT_API_KEY_ID']
issuer_id = ENV['APP_STORE_CONNECT_API_ISSUER_ID']
key_path = ENV['APP_STORE_CONNECT_API_KEY_PATH'] || "build_artifacts/AppStoreConnectAPIKey.p8"
ipa_path = options[:ipa_path] || "./GiniBankSDKExample.ipa"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Suggestion]: add a comment comment and mention that it might be ./GiniHealthSDKExample.ipa as well

description: 'Xcode version to use'
required: false
default: '16.3'
default: '26.2'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Suggestion]: Can we use a dynamic value from config for Xcode version?

run: bundle exec fastlane download_profiles
run: |
DISTRIBUTION_TYPE=appstore bundle exec fastlane download_profiles
DISTRIBUTION_TYPE=adhoc APP_IDENTIFIER=${{ inputs.bundle_identifier }} bundle exec fastlane download_profiles

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Clarification]: Do we still need to download adhoc?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants