diff --git a/packages/shorebird_cli/lib/src/commands/release/release_ios_command.dart b/packages/shorebird_cli/lib/src/commands/release/release_ios_command.dart index c3b19980..23f2bf51 100644 --- a/packages/shorebird_cli/lib/src/commands/release/release_ios_command.dart +++ b/packages/shorebird_cli/lib/src/commands/release/release_ios_command.dart @@ -212,25 +212,26 @@ ${summary.join('\n')} logger.success('\n✅ Published Release!'); + final relativeArchivePath = p.relative(archivePath); if (codesign) { final relativeIpaPath = p.relative(ipaPath); logger.info(''' -Your next step is to upload the ipa to App Store Connect. -${lightCyan.wrap(relativeIpaPath)} +Your next step is to upload your app to App Store Connect. -To upload to the App Store either: - 1. Drag and drop the "$relativeIpaPath" bundle into the Apple Transporter macOS app (https://apps.apple.com/us/app/transporter/id1450874784) - 2. Run ${lightCyan.wrap('xcrun altool --upload-app --type ios -f $relativeIpaPath --apiKey your_api_key --apiIssuer your_issuer_id')}. +To upload to the App Store, do one of the following: + 1. Open ${lightCyan.wrap(relativeArchivePath)} in Xcode and use the "Distribute App" flow. + 2. Drag and drop the ${lightCyan.wrap(relativeIpaPath)} bundle into the Apple Transporter macOS app (https://apps.apple.com/us/app/transporter/id1450874784). + 3. Run ${lightCyan.wrap('xcrun altool --upload-app --type ios -f $relativeIpaPath --apiKey your_api_key --apiIssuer your_issuer_id')}. See "man altool" for details about how to authenticate with the App Store Connect API key. '''); } else { logger.info(''' -Your next step is to submit the archive at ${lightCyan.wrap(archivePath)} to the App Store using Xcode. +Your next step is to submit the archive at ${lightCyan.wrap(relativeArchivePath)} to the App Store using Xcode. You can open the archive in Xcode by running: - ${lightCyan.wrap('open $archivePath')} + ${lightCyan.wrap('open $relativeArchivePath')} ${styleBold.wrap('Make sure to uncheck "Manage Version and Build Number", or else shorebird will not work.')} '''); diff --git a/packages/shorebird_cli/test/src/commands/release/release_ios_command_test.dart b/packages/shorebird_cli/test/src/commands/release/release_ios_command_test.dart index 1f03ef5e..73e1f42b 100644 --- a/packages/shorebird_cli/test/src/commands/release/release_ios_command_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/release_ios_command_test.dart @@ -371,7 +371,6 @@ flutter: expect(result, equals(ExitCode.success.code)); final archivePath = p.join( - tempDir.path, 'build', 'ios', 'archive', @@ -675,7 +674,7 @@ error: exportArchive: No signing certificate "iOS Distribution" found any( that: stringContainsInOrder( [ - 'Your next step is to upload the ipa to App Store Connect.', + 'Your next step is to upload your app to App Store Connect.', p.join('build', 'ios', 'ipa', 'Runner.ipa'), ], ), @@ -748,7 +747,7 @@ flavors: any( that: stringContainsInOrder( [ - 'Your next step is to upload the ipa to App Store Connect.', + 'Your next step is to upload your app to App Store Connect.', p.join('build', 'ios', 'ipa', 'Runner.ipa'), ], ),