fastlane: [pilot] The resource 'betaAppReviewSubmissions' does not allow 'DELETE'
New Issue Checklist
- Updated fastlane to the latest version
- I read the Contribution Guidelines
- I read docs.fastlane.tools
- I searched for existing GitHub issues
Issue Description
While submitting a binary to App Store Connect, running our deploy
lane, an error occurs:
The resource 'betaAppReviewSubmissions' does not allow 'DELETE'
Which causes everything to halt.
Command executed
While "moving" an existing item in Beta Testing to Submission "DELETE" command fails.
[β ] π [β ] π [β Ή] π [β Έ] π [β Ό] π [β ΄] π [β ¦] π [β §] π [β ] π [β ] π [β ] π [β ] π [β Ή] π [β Έ] π [β Ό] π [β] π
[01:15:03]: Loading from './fastlane/.env.release'
+-------------------------------------------+---------+---------------------------------+
| Used plugins |
+-------------------------------------------+---------+---------------------------------+
| Plugin | Version | Action |
+-------------------------------------------+---------+---------------------------------+
| fastlane-plugin-unzip | 1.0.1 | unzip |
| fastlane-plugin-redacted-compa | 0.1.0 | get_github_pr_numbers |
| | | get_version_number |
| | | create_github_milestone |
| | | verify_jira_ticket_status |
| | | jira_tickets_from_git |
| | | |
| fastlane-plugin-firebase_app_distribution | 0.2.4 | firebase_app_distribution_login |
| | | firebase_app_distribution |
| fastlane-plugin-ios_dependency_parser | 1.0.0 | ios_dependency_parser |
+-------------------------------------------+---------+---------------------------------+
[01:15:05]: Sending anonymous analytics information
[01:15:05]: Learn more at https://docs.fastlane.tools/#metrics
[01:15:05]: No personal or sensitive data is sent.
[01:15:05]: You can disable this by adding `opt_out_usage` at the top of your Fastfile
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:05]: ----------------------------------------
[01:15:05]: --- Step: Verifying fastlane version ---
[01:15:05]: ----------------------------------------
[01:15:05]: Your fastlane version 2.177.0 matches the minimum requirement of 1.105.2 β
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:05]: ------------------------------
[01:15:05]: --- Step: default_platform ---
[01:15:05]: ------------------------------
[01:15:05]: Driving the lane 'ios deploy' π
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:05]: -------------------
[01:15:05]: --- Step: is_ci ---
[01:15:05]: -------------------
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:05]: ---------------------------------------
[01:15:05]: --- Step: app_store_connect_api_key ---
[01:15:05]: ---------------------------------------
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:06]: ----------------------
[01:15:06]: --- Step: download ---
[01:15:06]: ----------------------
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:07]: -----------------------------
[01:15:07]: --- Step: setup_circle_ci ---
[01:15:07]: -----------------------------
[01:15:07]: Skipping Log Path setup as FL_OUTPUT_DIR is unset
[01:15:07]: Creating temporary keychain: "fastlane_tmp_keychain".
[01:15:07]: $ security list-keychains -d user
[01:15:07]: βΈ "/Users/distiller/Library/Keychains/fastlane_tmp_keychain-db"
[01:15:07]: Found keychain '/Users/distiller/Library/Keychains/fastlane_tmp_keychain-db' in list-keychains, adding to search list skipped
[01:15:07]: Enabling match readonly mode.
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:07]: --------------------------------------------------
[01:15:07]: --- Step: Switch to ios sync_certificates lane ---
[01:15:07]: --------------------------------------------------
[01:15:07]: Cruising over to lane 'ios sync_certificates' π
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:07]: -------------------
[01:15:07]: --- Step: match ---
[01:15:07]: -------------------
+--------------------------------+-------------------------------------------------------------------------------------------+
| Summary for match 2.177.0 |
+--------------------------------+-------------------------------------------------------------------------------------------+
| app_identifier | ["com.companyname.projectarino", "com.companyname.notificationserviceextension"] |
| api_key | ******** |
| type | appstore |
| readonly | true |
| generate_apple_certs | true |
| skip_provisioning_profiles | false |
| username | *********************** |
| storage_mode | git |
| git_url | git@github.com:secret/git/repo/url |
| git_branch | master |
| shallow_clone | false |
| clone_branch_directly | false |
| keychain_name | fastlane_tmp_keychain |
| force | false |
| force_for_new_devices | false |
| skip_confirmation | false |
| skip_docs | false |
| platform | ios |
| derive_catalyst_app_identifier | false |
| fail_on_name_taken | false |
| skip_certificate_matching | false |
| skip_set_partition_list | false |
| verbose | false |
+--------------------------------+-------------------------------------------------------------------------------------------+
[01:15:07]: Cloning remote git repo...
[01:15:07]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[01:15:09]: Checking out branch master...
[01:15:09]: π Successfully decrypted certificates repo
[01:15:09]: Installing certificate...
[01:15:10]: There are no local code signing identities found.
You can run `security find-identity -v -p codesigning fastlane_tmp_keychain` to get this output.
This Stack Overflow thread has more information: https://stackoverflow.com/q/35390072/774.
(Check in Keychain Access for an expired WWDR certificate: https://stackoverflow.com/a/35409835/774 has more info.)
[01:15:10]: Setting key partition list... (this can take a minute if there are a lot of keys installed)
[01:15:10]: security: SecItemCopyMatching: The specified item could not be found in the keychain.
[01:15:10]: Setting key partition list... (this can take a minute if there are a lot of keys installed)
<PROVISIONING PROFILES>
[01:15:10]: All required keys, certificates and provisioning profiles are installed π
[01:15:10]: Setting Provisioning Profile type to 'app-store'
[01:15:10]: Cruising back to lane 'ios deploy' π
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
[01:15:10]: -----------------
[01:15:10]: --- Step: gym ---
[01:15:10]: -----------------
[01:15:11]: Resolving Swift Package Manager dependencies...
<REDACTED GYM OUTPUT>
[01:15:55]: $ set -o pipefail && xcodebuild -workspace ./Project.xcworkspace -scheme SCHEME -configuration Release -destination 'generic/platform=iOS' -archivePath /Users/distiller/Library/Developer/Xcode/Archives/2021-03-17/<REDACTED>\ 2021-03-17\ 01.15.55.xcarchive archive | tee /Users/distiller/Library/Logs/gym/REDACTED.log | xcpretty
<COMPILING SOURCE>
[01:36:54]: βΈ Linking <REDACTED>
<COMPILING XIB>
[01:39:02]: βΈ Processing Info.plist
[01:39:02]: βΈ Copying /Users/distiller/Library/Developer/Xcode/DerivedData/dfbufodpnqqnnwfesbguxqdynefb/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/NotificationServiceExtension.appex
[01:39:02]: βΈ skipping copy phase strip, binary is code signed: /Users/distiller/Library/Developer/Xcode/DerivedData/dfbufodpnqqnnwfesbguxqdynefb/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/NotificationServiceExtension.appex/NotificationServiceExtension
[01:39:02]: βΈ Generating 'App.app.dSYM'
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/googlemac_iPhone_iOSGuard_iosguard_no_breakpad-34VQINNO1FFNQ.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/googlemac_iPhone_recaptcha_recaptcha_error-2FAJP848PPJ5M.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/googlemac_iPhone_recaptcha_twofactor_objc_proto-3DU2DBDTLP9YI.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/FBLPromises-3HC5GVPSKGZUV.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/googlemac_iPhone_recaptcha_recaptcha_action_type-YVJER5KSKNA0.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/googlemac_iPhone_recaptcha_mobile_client_objc_proto-2JVL16YUET3CC.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/third_party_objective_c_gtm_session_fetcher_GTMSessionFetcher_Core-1LH56LXRRJ90J.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/Foundation-OIF36D0ZWUYU.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/Dispatch-2MAX3VAF9W7SL.pcm: No such file or directory
[01:39:11]: βΈ /var/netboot/workspace/a68a29d8cae284340117191cc0abc9da81a5_550541_24179/tmp/swift_module_cache.uxUxVS/38F4VT292GLJO/UIKit-3STJALP8S84YZ.pcm: No such file or directory
<REDACTED>
[01:39:38]: βΈ Touching <REDACTED>.app
[01:39:40]: βΈ Archive Succeeded
[01:39:40]: Generated plist file with the following values:
<REDACTED>
[01:39:40]: $ /usr/bin/xcrun /Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/6y/gy9gggt14379c_k39vwb50lc0000gn/T/gym_config20210317-700-v120nd.plist' -archivePath /Users/distiller/Library/Developer/Xcode/Archives/2021-03-17/<REDACTED>\ 2021-03-17\ 01.15.55.xcarchive -exportPath '/var/folders/6y/gy9gggt14379c_k39vwb50lc0000gn/T/gym_output20210317-700-1awv5qm'
[01:40:46]: Mapping dSYM(s) using generated BCSymbolMaps
<REDACTED>
[01:41:02]: Compressing 9 dSYM(s)
<REDACTED>
[01:41:10]: Successfully exported and compressed dSYM file
[01:41:10]: Successfully exported and signed the ipa file:
[01:41:10]: /Users/distiller/project/APP.ipa
[01:41:10]: ----------------------------------------------------
[01:41:10]: --- Step: Switch to ios create_release_note lane ---
[01:41:10]: ----------------------------------------------------
[01:41:10]: Cruising over to lane 'ios create_release_note' π
[01:41:11]: ------------------------
[01:41:11]: --- Step: git_branch ---
[01:41:11]: ------------------------
[01:41:11]: ----------------------------------------
[01:41:11]: --- Step: changelog_from_git_commits ---
[01:41:11]: ----------------------------------------
[01:41:11]: Collecting the last few Git commits...
[01:41:11]: Cruising back to lane 'ios deploy' π
[01:41:11]: -------------------
[01:41:11]: --- Step: pilot ---
[01:41:11]: -------------------
[01:41:11]: Creating authorization token for App Store Connect API
[01:41:17]: Ready to upload new build to TestFlight....
[01:41:21]: Going to upload updated app to App Store Connect
[01:41:21]: This might take a few minutes. Please don't interrupt the script.
[01:43:06]: iTunes Transporter successfully finished its job
[01:43:06]: --------------------------------------------------------------------
[01:43:06]: Successfully uploaded package to App Store Connect. It might take a few minutes until it's visible online.
[01:43:06]: --------------------------------------------------------------------
[01:43:06]: Successfully uploaded the new binary to App Store Connect
[01:43:06]: If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option
[01:43:06]: Note that if `skip_waiting_for_build_processing` is used but a `changelog` is supplied, this process will wait for the build to appear on AppStoreConnect, update the changelog and then skip the remaining of the processing steps.
[01:43:06]: Waiting for processing on... <REDACTED VERSION INFO>
[01:43:06]: Read more information on why this build isn't showing up yet - https://github.com/fastlane/fastlane/issues/14997
[01:43:06]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:43:37]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:44:08]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:44:38]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:45:09]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:45:39]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:46:10]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:46:40]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:47:11]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:47:41]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:48:12]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:48:43]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:49:13]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:49:44]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:50:14]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:50:45]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:51:16]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:51:46]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:52:16]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:52:47]: Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)
[01:53:17]: Waiting for App Store Connect to finish processing the new build
[01:53:49]: Waiting for App Store Connect to finish processing the new build
[01:54:20]: Waiting for App Store Connect to finish processing the new build
[01:54:51]: Waiting for App Store Connect to finish processing the new build
[01:55:22]: Waiting for App Store Connect to finish processing the new build
[01:55:53]: Waiting for App Store Connect to finish processing the new build
[01:56:24]: Waiting for App Store Connect to finish processing the new build
[01:56:54]: Waiting for App Store Connect to finish processing the new build
[01:57:25]: Waiting for App Store Connect to finish processing the new build
[01:57:57]: Waiting for App Store Connect to finish processing the new build
[01:58:28]: Waiting for App Store Connect to finish processing the new build
[01:58:58]: Waiting for App Store Connect to finish processing the new build
[01:59:29]: Waiting for App Store Connect to finish processing the new build
[02:00:00]: Waiting for App Store Connect to finish processing the new build
[02:00:31]: Waiting for App Store Connect to finish processing the new build
[02:01:03]: Waiting for App Store Connect to finish processing the new build
[02:01:33]: Waiting for App Store Connect to finish processing the new build
[02:02:04]: Waiting for App Store Connect to finish processing the new build
[02:02:36]: Waiting for App Store Connect to finish processing the new build
[02:03:06]: Waiting for App Store Connect to finish processing the new build
[02:03:37]: Waiting for App Store Connect to finish processing the new build
[02:04:09]: Waiting for App Store Connect to finish processing the new build
[02:04:40]: Waiting for App Store Connect to finish processing the new build
[02:05:11]: Waiting for App Store Connect to finish processing the new build
[02:05:42]: Waiting for App Store Connect to finish processing the new build
[02:06:13]: Waiting for App Store Connect to finish processing the new build
[02:06:45]: Waiting for App Store Connect to finish processing the new build
[02:07:16]: Waiting for App Store Connect to finish processing the new build
[02:07:47]: Waiting for App Store Connect to finish processing the new build
[02:08:18]: Waiting for App Store Connect to finish processing the new build
[02:08:49]: Waiting for App Store Connect to finish processing the new build
[02:09:20]: Waiting for App Store Connect to finish processing the new build
[02:09:51]: Waiting for App Store Connect to finish processing the new build
[02:10:22]: Waiting for App Store Connect to finish processing the new build
[02:10:54]: Waiting for App Store Connect to finish processing the new build
[02:11:25]: Waiting for App Store Connect to finish processing the new build
[02:11:56]: Waiting for App Store Connect to finish processing the new build
[02:12:27]: Waiting for App Store Connect to finish processing the new build
[02:12:58]: Waiting for App Store Connect to finish processing the new build
[02:13:29]: Waiting for App Store Connect to finish processing the new build
[02:14:00]: Waiting for App Store Connect to finish processing the new build
[02:14:31]: Waiting for App Store Connect to finish processing the new build
[02:15:02]: Waiting for App Store Connect to finish processing the new build
[02:15:33]: Waiting for App Store Connect to finish processing the new build
[02:16:04]: Waiting for App Store Connect to finish processing the new build
[02:16:35]: Waiting for App Store Connect to finish processing the new build
[02:17:06]: Waiting for App Store Connect to finish processing the new build
[02:17:37]: Waiting for App Store Connect to finish processing the new build
[02:18:08]: Waiting for App Store Connect to finish processing the new build
[02:18:39]: Waiting for App Store Connect to finish processing the new build
[02:19:10]: Successfully finished processing the build
[02:19:11]: Successfully set the changelog for build
[02:19:13]: Another build is already in review. Going to remove that build and submit the new one.
[02:19:13]: Deleting beta app review submission for build: WXYZ
[02:19:27]: Error raised while executing lane: deploy, exception: The given operation is not allowed - The resource 'betaAppReviewSubmissions' does not allow 'DELETE'. Allowed operations are: GET_COLLECTION, GET_INSTANCE, CREATE
[02:19:27]: -------------------
[02:19:27]: --- Step: is_ci ---
[02:19:27]: -------------------
[02:19:27]: ------------------------
[02:19:27]: --- Step: git_branch ---
[02:19:27]: ------------------------
[02:19:27]: -------------------
[02:19:27]: --- Step: slack ---
[02:19:27]: -------------------
[02:19:27]: Successfully sent Slack notification
Looking for related GitHub issues on fastlane/fastlane...
β‘οΈ Running xcrun extractLocStrings as part of Fastlane causes crash for duplicated high-codepoint unicode localisable strings
https://github.com/fastlane/fastlane/issues/15153 [open] 42 π¬
a day ago
β‘οΈ failed on flutter project
https://github.com/fastlane/fastlane/issues/16085 [closed] 2 π¬
07 Jun 2020
β‘οΈ Upload to Crashlytics doesn't work cause of invalid byte sequence
https://github.com/fastlane/fastlane/issues/14176 [closed] 11 π¬
10 Sep 2019
and 41 more at: https://github.com/fastlane/fastlane/search?q=invalid%20byte%20sequence%20in%20UTF-8&type=Issues&utf8=β
π You can β + double-click on links to open them directly in your browser.
+---------------------------+--------------+----------------+
| Plugin updates available |
+---------------------------+--------------+----------------+
| Plugin | Your Version | Latest Version |
+---------------------------+--------------+----------------+
| firebase_app_distribution | 0.2.4 | 0.2.5 |
+---------------------------+--------------+----------------+
[02:19:28]: To update all plugins, just run
[02:19:28]: $ bundle exec fastlane update_plugins
#######################################################################
# fastlane 2.178.0 is available. You are on 2.177.0.
# You should use the latest version.
# Please update using `bundle update fastlane`.
#######################################################################
2.178.0 Improvements
* [spaceship] add testers to other group (#18382) via Eric Wu
* [action] create_xcframework - delete .xcframework if already exists (#18345) via Nemanja Filipovic
* [action] github_api action - 'headers' param improvements (#18347) via Manish Rathi
* [action] app_store_connect_api_key - add validation to session duration. (#18346) via Roger Oba
* [action] add skip_info_plist parameter to increment_build_number to avoid updating Info.plist (#18372) via Maarten Billemont
* [fastlane_core] fix package upload after two-step rescue. (#18373) via Maarten Billemont
* [pilot] do not update app beta details if not needed (#18289) via Albert Casademont
* [fastlane_core][pilot][deliver] Improved transporter logging to pilot (#12259) via Alex Delong
* [Ruby 3.0] fix Ruby 2.7's deprecation warnings (#18021) via Satoshi Namai
* [action] github_api - enhance Github Actions token support (#18044) via David Cacenabes
Please update using `bundle update fastlane`
bundler: failed to load command: fastlane (/Users/distiller/project/Bundler/ruby/2.7.0/bin/fastlane)
ArgumentError: [!] invalid byte sequence in UTF-8
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb:51:in `split'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb:51:in `lines'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/cell.rb:71:in `value_for_column_width_recalc'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:204:in `block (2 levels) in recalc_column_widths'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:203:in `each'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:203:in `block in recalc_column_widths'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:201:in `each'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:201:in `recalc_column_widths'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:339:in `column_widths'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:97:in `column_width'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb:7:in `block in render'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb:6:in `map'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb:6:in `render'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:142:in `block in render'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:142:in `map'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/terminal-table-1.8.0/lib/terminal-table/table.rb:142:in `render'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/lane_manager_base.rb:74:in `puts'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/lane_manager_base.rb:74:in `puts'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/lane_manager_base.rb:74:in `print_lane_context'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/lane_manager.rb:57:in `rescue in cruise_lane'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/lane_manager.rb:46:in `cruise_lane'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/fastlane/lib/fastlane/cli_tools_distributor.rb:122:in `take_off'
/Users/distiller/project/Bundler/ruby/2.7.0/gems/fastlane-2.177.0/bin/fastlane:23:in `<top (required)>'
/Users/distiller/project/Bundler/ruby/2.7.0/bin/fastlane:23:in `load'
/Users/distiller/project/Bundler/ruby/2.7.0/bin/fastlane:23:in `<top (required)>'
Exited with code exit status 1
Environment
NB: Private info removed.
π« fastlane environment π«
Stack
Key | Value |
---|---|
OS | 10.15.7 |
Ruby | 2.7.2 |
Bundler? | true |
Git | git version 2.26.2 |
Installation Source | ~/Desktop/WORK/PROJECTS/<PROJECT>/Bundler/ruby/2.7.0/bin/fastlane |
Host | Mac OS X 10.15.7 (19H114) |
Ruby Lib Dir | ~/.rbenv/versions/2.7.2/lib |
OpenSSL Version | OpenSSL 1.1.1i 8 Dec 2020 |
Is contained | false |
Is homebrew | false |
Is installed via Fabric.app | false |
Xcode Path | /Applications/Xcode_12_1.app/Contents/Developer/ |
Xcode Version | 12.1 |
System Locale
Error |
---|
No Locale with UTF8 found π« |
fastlane files:
`./fastlane/Fastfile`
default_platform :ios
PROJECT_ROOT = File.expand_path(File.dirname(__FILE__), '..').freeze
FASTLANE_ROOT = File.join(PROJECT_ROOT, 'fastlane').freeze
platform :ios do
# Hooks
before_all do |lane, options|
next unless is_ci
app_store_connect_api_key
update_assets if [:test, :deploy].include?(lane)
if [:deploy].include?(lane)
setup_circle_ci
sync_certificates
end
end
after_all do |lane, options|
next unless is_ci
if lane == :test
run_danger
sh 'curl -s https://codecov.io/bash | bash'
if sha1 = ENV['CIRCLE_SHA1']
github_api(
http_method: 'POST',
body: {
state: 'success',
target_url: circleci_artifacts_url(path: 'fastlane/test_output/build_products.zip'),
description: 'Simulator binary is available.',
context: 'fastlane/artifacts',
},
path: "repos/#{ENV['GITHUB_REPOSITORY_NAME']}/statuses/#{sha1}",
)
end
end
end
error do |lane, exception, options|
UI.error("Error raised while executing lane: #{lane}, exception: #{exception}")
next unless is_ci
run_danger if lane == :test
next unless git_branch == 'master' || !ENV['CIRCLE_TAG'].to_s.empty?
payload = {}
payload['Job'] = ENV['CIRCLE_BUILD_URL'] if ENV['CIRCLE_BUILD_URL']
payload['Workflow'] = "https://circleci.com/workflow-run/#{ENV['CIRCLE_WORKFLOW_ID']}" if ENV['CIRCLE_WORKFLOW_ID']
payload['PR'] = ENV['CIRCLE_PULL_REQUEST'] if ENV['CIRCLE_PULL_REQUEST'] && !ENV['CIRCLE_PULL_REQUEST'].empty?
payload['Author'] = ENV['CIRCLE_USERNAME'] if ENV['CIRCLE_USERNAME'] && !ENV['CIRCLE_USERNAME'].empty?
payload['Environment'] = lane_context[SharedValues::ENVIRONMENT] if lane_context[SharedValues::ENVIRONMENT]
payload['Exception'] = exception
slack_options = {
success: false,
payload: payload,
default_payloads: [:lane, :git_branch],
}
slack_options[:pretext] = ENV['ERROR_NOTIF_PRETEXT'] if ENV['ERROR_NOTIF_PRETEXT']
slack(slack_options)
end
# Lanes
desc 'Submit the app for review'
lane :submit do
version = prompt(
text: 'Which version?',
ci_input: ENV['CIRCLE_TAG'],
)
build_number = prompt(
text: 'Which build number?',
ci_input: get_project_build_number,
)
dsym_check_count = 0
loop do
build_details = build_details(version: version, build_number: build_number)
break if build_details.dsym_url
dsym_check_count += 1
UI.user_error!("Could not find any dSYM for #{version} (#{build_number})") if dsym_check_count >= 20
UI.message('Waiting for dSYM file to appear...')
sleep(30)
end
deliver(
force: is_ci,
submit_for_review: true,
app_version: version,
build_number: build_number,
skip_binary_upload: true,
phased_release: true,
submission_information: {
add_id_info_uses_idfa: true,
add_id_info_serves_ads: false,
add_id_info_tracks_action: true,
add_id_info_tracks_install: true,
add_id_info_limits_tracking: true,
},
precheck_include_in_app_purchases: false,
)
end
desc 'Release the app'
lane :release do
authorize_connect_api(use_legacy: true)
require 'spaceship'
version = Spaceship::ConnectAPI::App
.find(ENV['DELIVER_APP_IDENTIFIER'])
.get_pending_release_app_store_version
version_text = "#{version.version_string} (#{version.build.version})"
next unless is_ci || prompt(text: "Release #{version_text}?", boolean: true)
version.create_app_store_version_release_request
slack(
channel: ENV['DBL_RELEASE_NOTIF_CHANNEL'],
default_payloads: [],
pretext: "iOS `#{version_text}` phased release started!",
)
end
desc 'Rollout the app to all users'
lane :rollout do
authorize_connect_api(use_legacy: true)
require 'spaceship'
version = Spaceship::ConnectAPI::App
.find(ENV['DELIVER_APP_IDENTIFIER'])
.get_live_app_store_version
version_text = "#{version.version_string} (#{version.build.version})"
next unless is_ci || prompt(text: "Release #{version_text} to all users?", boolean: true)
end
desc 'Set GitHub release note'
lane :set_github_release_note do
version = prompt(
text: 'Which version do you want to set GitHub release note?',
ci_input: ENV['CIRCLE_TAG'],
)
build_number = app_store_build_number(
live: false,
version: version,
)
build_details = build_details(
version: version,
build_number: build_number,
)
compressed_size = build_details.size_in_bytes
description = []
description << "Build number: #{build_number}"
description << "Workflow: https://circleci.com/workflow-run/#{ENV['CIRCLE_WORKFLOW_ID']}" if ENV['CIRCLE_WORKFLOW_ID']
if compressed_size.nil?
UI.error('Failed to fetch compressed ipa size. Skipping.')
else
# Follow Apple Store Connect calculation and avoid 1,024
compressed_size_in_mb = (compressed_size / 1000.0 / 1000.0).round(2)
description << "Compressed ipa size: #{compressed_size_in_mb}MB"
end
description << create_release_note(version: version)
repo_name = ENV['DBL_GITHUB_REPOSITORY_NAME']
release = get_github_release(
url: repo_name,
version: version,
)
if release.nil?
set_github_release(
repository_name: repo_name,
tag_name: version,
name: '',
description: description.join("\n"),
)
next
end
github_api(
http_method: 'PATCH',
body: { body: description.join("\n") },
path: "repos/#{repo_name}/releases/#{release['id']}",
)
end
desc 'Post submission log to BigQuery'
lane :post_submission_log_to_bigquery do
version = prompt(
text: 'Which version do you want to send submission log for?',
ci_input: ENV['CIRCLE_TAG'],
)
build_number = app_store_build_number(
live: false,
version: version,
)
build_details = build_details(
version: version,
build_number: build_number,
)
data = [
{
binary_size: build_details.size_in_bytes,
binary_sizes: build_details.sizes_in_bytes.to_json,
platform: 'ios',
app_display_version: version,
app_build_version: build_number,
uploaded_at: Time.at(build_details.upload_date / 1000),
},
]
post_to_bigquery(dataset_id: 'mobile', table_id: 'submission_log', data: data)
end
desc 'Run tests'
lane :test do
scan(
scheme: 'UnitTests',
skip_slack: true,
)
end
desc 'Build the app and upload to TestFlight / Firebase'
lane :deploy do
export_options = {}
if ENV['GYM_EXPORT_METHOD'] != 'app-store'
# Disable re-compile since it takes relatively long
export_options[:compileBitcode] = false
end
gym(export_options: export_options)
notes = create_release_note(
version: get_info_plist_value(
path: File.join(PROJECT_ROOT, 'Double/Double/Info.plist'),
key: 'CFBundleShortVersionString',
),
)
case ENV['DBL_IPA_DEPLOYMENT_DESTINATION']
when 'TestFlight'
beta_app_review_info = {
contact_email: ENV['BETA_CONTACT_EMAIL'],
contact_first_name: ENV['BETA_CONTACT_FIRST_NAME'],
contact_last_name: ENV['BETA_CONTACT_LAST_NAME'],
contact_phone: ENV['BETA_CONTACT_PHONE'],
demo_account_name: ENV['BETA_DEMO_ACCOUNT_NAME'],
demo_account_password: ENV['BETA_DEMO_ACCOUNT_PASSWORD'],
}
pilot(beta_app_review_info: beta_app_review_info, changelog: notes)
when 'Beta'
firebase_app_distribution(release_notes: notes)
else
UI.user_error!('Unsupported deployment destination')
end
end
desc 'Update build number'
lane :update_build_number do
number = prompt(
text: 'Please enter build number:',
ci_input: (ENV['CIRCLE_BUILD_NUM'].to_i + 6000).to_s,
)
increment_build_number(
build_number: number,
xcodeproj: File.join(PROJECT_ROOT, 'Double/Double.xcodeproj'),
)
end
desc 'Update version number'
lane :update_version_number do
version = prompt(
text: 'Please enter version number:',
ci_input: ENV['CIRCLE_TAG'] || get_dbl_version_number,
)
(['APP'] + ENV['APP_EXTENSION_NAMES'].split(',')).each do |target_name|
update_plist(
plist_path: File.join(PROJECT_ROOT, "Double/#{target_name.strip}/Info.plist"),
block: lambda { |plist|
plist['CFBundleShortVersionString'] = version
},
)
end
end
desc 'Download dsyms from App Store Connect and upload to Crashlytics'
lane :sync_dsyms do
authorize_connect_api(use_legacy: true)
require 'spaceship'
min_version = Spaceship::ConnectAPI
.get_app_store_versions(
app_id: Spaceship::ConnectAPI::App.find(ENV['DOWNLOAD_DSYMS_APP_IDENTIFIER']).id,
limit: 2,
)
.to_models
.min_by { |v| Gem::Version.new(v.version_string) }
download_dsyms(min_version: min_version.version_string)
upload_symbols_to_crashlytics(
gsp_path: File.join(PROJECT_ROOT, 'Double/Double/Supporting Files/Firebase/GoogleService-Info.plist'),
dsym_worker_threads: `sysctl -n hw.ncpu`.to_i,
)
end
desc 'Sync certificates or renew as needed'
lane :sync_certificates do
base_identifier = ENV['APP_IDENTIFIER']
app_identifier = [base_identifier] + ENV['APP_EXTENSION_NAMES'].split(',').map do |name|
base_identifier + ".#{name.strip.downcase}"
end
match(app_identifier: app_identifier)
end
desc 'Post outdated dependencies on Slack'
lane :post_outdated_dependencies do
parse_pod_dependencies
pods = lane_context[SharedValues::POD_ANALYZER_RESULTS]
texts = pods.map { |p| "`#{p.pod_name}`, current: `#{p.current_version}`, latest: `#{p.latest}`" }
slack(
channel: ENV['OUTDATED_NOTIF_CHANNEL'],
success: false,
pretext: "Outdated dependencies: `#{texts.count}`",
message: texts.join("\n"),
default_payloads: [],
)
end
# Private
<REDACTED INTERNAL PRIVATE LANES>
private_lane :authorize_connect_api do |params|
require 'spaceship'
if lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] && !params[:use_legacy]
Spaceship::ConnectAPI.token = Spaceship::ConnectAPI::Token.create(lane_context[SharedValues::APP_STORE_CONNECT_API_KEY])
else
Spaceship::ConnectAPI.login(use_portal: false)
end
end
end
No Appfile found
fastlane gems
Gem | Version | Update-Status |
---|---|---|
fastlane | 2.177.0 | π« Update available |
Loaded fastlane plugins:
Plugin | Version | Update-Status |
---|---|---|
fastlane-plugin-unzip | 1.0.1 | β Up-To-Date |
fastlane-plugin-INTERNAL-CAN-IGNORE-THIS | 0.1.0 | π₯ Check failed |
fastlane-plugin-INTERNAL-UPDATE-NOT-NEEDED | 0.2.4 | π« Update available |
fastlane-plugin-ios_dependency_parser | 1.0.0 | β Up-To-Date |
Loaded gems
Gem | Version |
---|---|
did_you_mean | 1.4.0 |
bundler | 2.1.4 |
uri | 0.10.0 |
rake | 13.0.3 |
CFPropertyList | 3.0.3 |
concurrent-ruby | 1.1.8 |
i18n | 1.8.9 |
minitest | 5.14.3 |
thread_safe | 0.3.6 |
tzinfo | 1.2.9 |
activesupport | 5.2.4.5 |
public_suffix | 4.0.6 |
addressable | 2.7.0 |
httpclient | 2.8.3 |
json | 2.5.1 |
algoliasearch | 1.27.5 |
artifactory | 3.0.15 |
ast | 2.4.1 |
atomos | 0.1.3 |
attr_extras | 4.6.0 |
aws-eventstream | 1.1.1 |
aws-partitions | 1.431.1 |
aws-sigv4 | 1.2.3 |
jmespath | 1.4.0 |
aws-sdk-core | 3.112.1 |
aws-sdk-kms | 1.42.0 |
aws-sdk-s3 | 1.90.0 |
descendants_tracker | 0.0.4 |
ice_nine | 0.11.2 |
axiom-types | 0.1.1 |
babosa | 1.0.4 |
claide | 1.0.3 |
colored2 | 3.1.2 |
cork | 0.3.0 |
nap | 1.1.0 |
open4 | 1.3.4 |
claide-plugins | 0.9.2 |
fuzzy_match | 2.0.4 |
netrc | 0.11.0 |
ffi | 1.14.2 |
ethon | 0.12.0 |
typhoeus | 1.4.0 |
cocoapods-core | 1.10.1 |
cocoapods-deintegrate | 1.0.4 |
cocoapods-downloader | 1.4.0 |
cocoapods-plugins | 1.0.0 |
cocoapods-search | 1.0.0 |
cocoapods-trunk | 1.5.0 |
cocoapods-try | 1.2.0 |
escape | 0.0.4 |
fourflusher | 2.3.1 |
gh_inspector | 1.1.3 |
molinillo | 0.6.6 |
ruby-macho | 1.4.0 |
nanaimo | 0.3.0 |
xcodeproj | 1.19.0 |
cocoapods | 1.10.1 |
cocoapods-check | 1.1.0 |
coercible | 1.0.0 |
colored | 1.2 |
highline | 1.7.10 |
commander-fastlane | 4.4.6 |
faraday-net_http | 1.0.1 |
multipart-post | 2.0.0 |
ruby2_keywords | 0.0.4 |
faraday | 1.3.0 |
faraday-http-cache | 2.2.0 |
rchardet | 1.8.0 |
git | 1.7.0 |
rexml | 3.2.4 |
kramdown | 2.3.0 |
kramdown-parser-gfm | 1.1.0 |
no_proxy_fix | 0.1.2 |
sawyer | 0.8.2 |
octokit | 4.20.0 |
unicode-display_width | 1.7.0 |
terminal-table | 1.8.0 |
danger | 8.2.1 |
danger-plugin-api | 1.0.0 |
danger-iblinter | 0.0.5 |
parallel | 1.20.1 |
parser | 3.0.0.0 |
rainbow | 3.0.0 |
regexp_parser | 2.0.3 |
rubocop-ast | 1.3.0 |
ruby-progressbar | 1.10.1 |
rubocop | 1.7.0 |
danger-rubocop | 0.9.3 |
thor | 0.20.3 |
danger-swiftlint | 0.24.5 |
danger-xcode_summary | 0.5.2 |
declarative | 0.0.20 |
declarative-option | 0.1.0 |
digest-crc | 0.6.3 |
unf_ext | 0.0.7.7 |
unf | 0.1.4 |
domain_name | 0.5.20190701 |
dotenv | 2.7.6 |
emoji_regex | 3.2.2 |
equalizer | 0.0.11 |
events | 0.9.8 |
excon | 0.79.0 |
http-cookie | 1.0.3 |
faraday-cookie_jar | 0.0.7 |
faraday_middleware | 1.0.0 |
fastimage | 2.2.3 |
jwt | 2.2.2 |
memoist | 0.16.2 |
multi_json | 1.15.0 |
os | 1.1.1 |
signet | 0.15.0 |
googleauth | 0.16.0 |
mini_mime | 1.0.2 |
uber | 0.1.0 |
representable | 3.0.4 |
retriable | 3.1.2 |
google-api-client | 0.38.0 |
webrick | 1.7.0 |
google-apis-core | 0.3.0 |
google-apis-iamcredentials_v1 | 0.2.0 |
google-apis-storage_v1 | 0.3.0 |
google-cloud-env | 1.5.0 |
google-cloud-errors | 1.0.1 |
google-cloud-core | 1.5.0 |
google-cloud-storage | 1.30.0 |
mini_magick | 4.11.0 |
naturally | 2.2.1 |
plist | 3.6.0 |
rubyzip | 2.3.0 |
security | 0.1.3 |
simctl | 1.6.8 |
slack-notifier | 2.3.2 |
terminal-notifier | 2.0.0 |
tty-screen | 0.8.1 |
tty-cursor | 0.7.1 |
tty-spinner | 0.9.3 |
word_wrap | 1.0.0 |
rouge | 2.0.7 |
xcpretty | 0.3.0 |
xcpretty-travis-formatter | 1.0.1 |
google-cloud-bigquery | 1.21.2 |
oauth | 0.5.4 |
jira-ruby | 1.5.0 |
virtus | 1.0.5 |
pr_log | 0.2.0 |
xcpretty-json-formatter | 0.1.1 |
generated on: 2021-03-17
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 16
- Comments: 42 (2 by maintainers)
Commits related to this issue
- Fastlane: skip external submission if another build is in review `reject_build_waiting_for_review` option does not work anymore. See https://github.com/fastlane/fastlane/issues/18408 — committed to SRGSSR/playsrg-apple by pyby 3 years ago
- Fastlane: skip external submission if another build is in review `reject_build_waiting_for_review` option does not work anymore. See https://github.com/fastlane/fastlane/issues/18408 — committed to SRGSSR/playsrg-apple by pyby 3 years ago
I donβt understand why this issue is closed ? I think we should re-open it. The problem is still here.
@jonathanlu813 yes it would be nice if no error was thrown when
reject_build_waiting_for_review
isfalse
. We work around it with this code:This is also an issue for us after switching from logging in with username/password to the App Store Connect API key.
There hasnβt been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest
fastlane
version and check if that solves the issue. Let us know if that works for you by adding a comment πFriendly reminder: contributions are always welcome! Check out CONTRIBUTING.md for more information on how to help with
fastlane
and feel free to tackle this issue yourself πͺThis issue will be auto-closed if there is no reply within 1 month.
Oh! Ummmβ¦ we donβt but I can reach out to the team to see what we can do! Brb π
I can confirm I can reproduce that as well when the
reject_build_waiting_for_review
flag is set and a beta build is already under reviewThis issue still exists. The delete API for
betaAppReviewSubmissions
seems to not exist (anymore?). My workaround for this is toexpire
the builds inWAITING_FOR_REVIEW
before submitting new build for review.But, it is not just that. The filter condition on which build to remove from submission/expire should also be updated to ensure that only the build hindering the new build is removed.
TestFlight allows multiple builds in review as long their version names are different.
Still facing same issue uploading build to testflight and is in review.
@danl3v Thanks for the workaround! Just tried an works perfectly.
I have a feeling that the problem can be easily solved by changing one line in
spaceship/lib/spaceship/connect_api/testflight/testflight.rb:120
test_flight_request_client.delete("betaAppReviewSubmissions/#{beta_app_review_submission_id}", params)
totest_flight_request_client.delete("reviewSubmissionItems/#{beta_app_review_submission_id}", params)
Iβm also facing this error. I think the App Store Connect API might not support this operation.
Still experiencing this issue in fastlane (2.196.0, 2.191.0, 2.186.0, 2.184.1, 2.181.0, 2.180.1, 2.174.0).
Iβm still getting this issue too.