name: Test iOS Build # 手动触发,只跑 iOS 构建 + 上传 TestFlight,用于验证签名链路(证书/Profile/API Key) # 是否正常,无需打 tag 发版。默认版本 v0.0.1(build 号最低=1,不与正式发版冲突)。 on: workflow_dispatch: inputs: version: description: '测试版本号(build 号由此推导,默认 v0.0.1 不与正式版冲突)' required: true type: string default: 'v0.0.1' jobs: build-ios: runs-on: mac env: PUB_HOSTED_URL: https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn steps: - uses: actions/checkout@v4 - name: Provision (idempotent — auto-runs if host not initialized) run: sh scripts/ci/provision-mac.sh - name: Compile & upload to TestFlight (Flutter iOS) env: IOS_DIST_CERT_P12_BASE64: ${{ secrets.IOS_DIST_CERT_P12_BASE64 }} IOS_DIST_CERT_PASSWORD: ${{ secrets.IOS_DIST_CERT_PASSWORD }} IOS_PROVISIONING_PROFILE_BASE64: ${{ secrets.IOS_PROVISIONING_PROFILE_BASE64 }} IOS_TEAM_ID: ${{ secrets.IOS_TEAM_ID }} APPSTORE_API_KEY_ID: ${{ secrets.APPSTORE_API_KEY_ID }} APPSTORE_API_ISSUER_ID: ${{ secrets.APPSTORE_API_ISSUER_ID }} APPSTORE_API_KEY_P8_BASE64: ${{ secrets.APPSTORE_API_KEY_P8_BASE64 }} run: sh scripts/ci/compile-ios.sh "${{ inputs.version }}"