New Regression Checklist
Regression Information
- Breaking version: [e.g.
2.210.1]
- Last working version: [e.g.
2.210.1]
Regression Description
upload_to_testflight fails with “could not find a provider public id” error - was working before.
Bear in mind: I use
before_all do |_lane, options|
ENV["FASTLANE_ITUNES_TRANSPORTER_USE_SHELL_SCRIPT"]="1"
ENV["FASTLANE_ITUNES_TRANSPORTER_PATH"]="/Applications/Transporter.app/Contents/itms"
end
and not altool. We can’t use altool since we rely on fastlane’s app specific password prompts and altool requires app specific password to be supplied via an environment variable.
Complete output when running fastlane, including the stack trace and command used
$ be fastlane ios beta
[✔] 🚀
+------------------------------------+---------+--------------------------------------------------------------------+
| Used plugins |
+------------------------------------+---------+--------------------------------------------------------------------+
| Plugin | Version | Action |
+------------------------------------+---------+--------------------------------------------------------------------+
| fastlane-plugin-yarn | 1.2 | yarn |
| fastlane-plugin-android_versioning | 0.5.5 | get_value_from_build, increment_version_code, set_value_in_build, |
| | | get_version_name, increment_version_name, get_version_code |
| fastlane-plugin-cryptex | 0.1.5 | cryptex, cryptex_generate_keystore |
+------------------------------------+---------+--------------------------------------------------------------------+
[23:29:46]: ----------------------------------------
[23:29:46]: --- Step: Verifying fastlane version ---
[23:29:46]: ----------------------------------------
[23:29:46]: Your fastlane version 2.210.1 matches the minimum requirement of 2.96.1 ✅
[23:29:49]: ------------------------------
[23:29:49]: --- Step: default_platform ---
[23:29:49]: ------------------------------
[23:29:49]: Driving the lane 'ios beta' 🚀
[23:29:49]: ---------------------
[23:29:49]: --- Step: produce ---
[23:29:49]: ---------------------
+----------------+------------------------+
| Summary for produce 2.210.1 |
+----------------+------------------------+
| app_name | My Cool App |
| skip_devcenter | true |
| itc_team_id | 123502906 |
| username | mycoolapp@gmail.com |
| app_identifier | com.mycoolapp |
| sku | 1666150189 |
| platform | ios |
| language | English |
| skip_itc | false |
+----------------+------------------------+
[23:29:54]: App 'com.mycoolapp' already exists (REDACTED), nothing to do on App Store Connect
[23:29:54]: --------------------------------
[23:29:54]: --- Step: get_version_number ---
[23:29:54]: --------------------------------
[23:29:54]: -----------------------------------------------
[23:29:54]: --- Step: Switch to ios code_sign_sync lane ---
[23:29:54]: -----------------------------------------------
[23:29:54]: Cruising over to lane 'ios code_sign_sync' 🚖
[23:29:54]: -----------------------------
[23:29:54]: --- Step: unlock_keychain ---
[23:29:54]: -----------------------------
[23:29:54]: Unlocking keychain at path: /Users/ilia/Library/Keychains/appstore.keychain-db
[23:29:54]: -------------------------------
[23:29:54]: --- Step: sync_code_signing ---
[23:29:54]: -------------------------------
+----------------------------------------+----------------------------------------------------+
| Summary for match 2.210.1 |
+----------------------------------------+----------------------------------------------------+
| type | appstore |
| storage_mode | git |
| git_branch | REDACTED |
| git_url | git@github.com:mycoolapp/certificates.git |
| team_id | REDACTED |
| username | mycoolapp@gmail.com |
| app_identifier | ["com.mycoolapp"] |
| keychain_name | /Users/ilia/Library/Keychains/appstore.keychain-db |
| keychain_password | ******** |
| readonly | false |
| generate_apple_certs | true |
| skip_provisioning_profiles | false |
| shallow_clone | false |
| clone_branch_directly | false |
| skip_google_cloud_account_confirmation | false |
| force | false |
| force_for_new_devices | false |
| include_all_certificates | false |
| force_for_new_certificates | false |
| skip_confirmation | false |
| safe_remove_certs | 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 |
+----------------------------------------+----------------------------------------------------+
[23:29:54]: Cloning remote git repo...
[23:29:54]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
[23:29:56]: Checking out branch REDACTED...
[23:29:56]: 🔓 Successfully decrypted certificates repo
[23:29:56]: Verifying that the certificate and profile are still valid on the Dev Portal...
[23:29:59]: Installing certificate...
[23:29:59]: $ security find-certificate -a -c 'Apple Worldwide Developer Relations' -p /Users/ilia/Library/Keychains/login.keychain-db
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
[23:29:59]: ▸ -----BEGIN CERTIFICATE-----
[23:29:59]: ▸ REDACTED
[23:29:59]: ▸ -----END CERTIFICATE-----
+-------------------+------------------------------------------------------------------------+
| Installed Certificate |
+-------------------+------------------------------------------------------------------------+
| User ID | REDACTED |
| Common Name | Apple Distribution: My Cool App (REDACTED) |
| Organisation Unit | REDACTED |
| Organisation | My Cool App |
| Country | US |
| Start Datetime | 2022-10-18 15:27:41 UTC |
| End Datetime | 2023-10-18 15:27:40 UTC |
+-------------------+------------------------------------------------------------------------+
[23:30:03]: Installing provisioning profile...
+---------------------+-------------------------------------------------------+------------------------------------------------------------------------+
| Installed Provisioning Profile |
+---------------------+-------------------------------------------------------+------------------------------------------------------------------------+
| Parameter | Environment Variable | Value |
+---------------------+-------------------------------------------------------+------------------------------------------------------------------------+
| App Identifier | | com.mycoolapp |
| Type | | appstore |
| Platform | | ios |
| Profile UUID | sigh_com.mycoolapp_appstore | REDACTED |
| Profile Name | sigh_com.mycoolapp_appstore_profile-name | match AppStore com.mycoolapp |
| Profile Path | sigh_com.mycoolapp_appstore_profile-path | /Users/ilia/Library/MobileDevice/Provisioning |
| | | Profiles/REDACTED.mobileprovision |
| Development Team ID | sigh_com.mycoolapp_appstore_team-id | REDACTED |
| Certificate Name | sigh_com.mycoolapp_appstore_certificate-name | Apple Distribution: My Cool App (REDACTED) |
+---------------------+-------------------------------------------------------+------------------------------------------------------------------------+
[23:30:04]: All required keys, certificates and provisioning profiles are installed 🙌
[23:30:04]: Setting Provisioning Profile type to 'app-store'
[23:30:04]: Cruising back to lane 'ios beta' 🚘
[23:30:04]: ----------------------------------
[23:30:04]: --- Step: upload_to_testflight ---
[23:30:04]: ----------------------------------
[23:30:04]: Login to App Store Connect (mycoolapp@gmail.com)
[23:30:07]: Login successful
[23:30:09]: Ready to upload new build to TestFlight (App: REDACTED)...
[23:30:17]: iTunes Transporter successfully finished its job
[23:30:17]: Going to upload updated app to App Store Connect
[23:30:17]: This might take a few minutes. Please don't interrupt the script.
[23:30:30]: Transporter transfer failed.
[23:30:30]:
[23:30:30]: could not find a provider public id
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:24 EDT] <main> INFO: iTMSTransporter Correlation Key: ca592071-480e-42cb-a551-4fdefdfbc6c3-0001
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:24 EDT] <main> DEBUG: DataCenter: contentdelivery02.itunes.apple.com
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:29 EDT] <main> DBG-X: Apple's web service operation return value:
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:29 EDT] <main> DBG-X: parameter DSToken = **hidden value**
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:29 EDT] <main> DBG-X: parameter DSTokenCookieName = myacinfo
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:30 EDT] <main> ERROR: could not find a provider public id
[23:30:30]: [iTMSTransporter]
[23:30:30]: [iTMSTransporter]
[23:30:30]: [iTMSTransporter]
[23:30:30]: [iTMSTransporter] Package Summary:
[23:30:30]: [iTMSTransporter]
[23:30:30]: [iTMSTransporter] 1 package(s) were not uploaded because they had problems:
[23:30:30]: [iTMSTransporter] /var/folders/96/qqlxlbns5dv0vsp9zgzy0fhm0000gn/T/419f80df-5677-4725-b62a-67e0ae4179ac.ipa - Error Messages:
[23:30:30]: [iTMSTransporter] could not find a provider public id
[23:30:30]: [iTMSTransporter] [2022-10-18 23:30:30 EDT] <main> DBG-X: Returning 1
[23:30:30]: iTunes Transporter output above ^
[23:30:30]: could not find a provider public id
Return status of iTunes Transporter was 1: could not find a provider public id
The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.
[23:30:30]: Could not download/upload from App Store Connect! It's probably related to your password or your internet connection.
+------------------------------------+---------------------------------------------------------------------+
| Lane Context |
+------------------------------------+---------------------------------------------------------------------+
| DEFAULT_PLATFORM | android |
| PLATFORM_NAME | ios |
| LANE_NAME | ios beta |
| PRODUCE_APPLE_ID | REDACTED |
| VERSION_NUMBER | 8.0.61 |
| SIGH_PROFILE_TYPE | app-store |
| MATCH_PROVISIONING_PROFILE_MAPPING | {"com.mycoolapp"=>"match AppStore com.mycoolapp"} |
+------------------------------------+---------------------------------------------------------------------+
[23:30:30]: Error uploading ipa file:
+------+-----------------------------------+-------------+
| fastlane summary |
+------+-----------------------------------+-------------+
| Step | Action | Time (in s) |
+------+-----------------------------------+-------------+
| 1 | Verifying fastlane version | 0 |
| 2 | default_platform | 0 |
| 3 | produce | 4 |
| 4 | get_version_number | 0 |
| 5 | Switch to ios code_sign_sync lane | 0 |
| 6 | unlock_keychain | 0 |
| 7 | sync_code_signing | 9 |
| 💥 | upload_to_testflight | 26 |
+------+-----------------------------------+-------------+
[23:30:30]: fastlane finished with errors
[!] Error uploading ipa file:
Environment
:white_check_mark: fastlane environment :white_check_mark:
Stack
| Key |
Value |
| OS |
12.3.1 |
| Ruby |
2.7.6 |
| Bundler? |
true |
| Git |
git version 2.32.1 (Apple Git-133) |
| Installation Source |
~/.rbenv/versions/2.7.6/bin/fastlane |
| Host |
macOS 12.3.1 (21E258) |
| Ruby Lib Dir |
~/.rbenv/versions/2.7.6/lib |
| OpenSSL Version |
OpenSSL 1.1.1q 5 Jul 2022 |
| Is contained |
false |
| Is homebrew |
false |
| Is installed via Fabric.app |
false |
| Xcode Path |
/Applications/Xcode.app/Contents/Developer/ |
| Xcode Version |
13.4.1 |
| Swift Version |
5.6.1 |
System Locale
| Variable |
Value |
|
| LANG |
en_US.UTF-8 |
✅ |
| LC_ALL |
|
|
| LANGUAGE |
|
|
fastlane files:
`./fastlane/Fastfile`
redacted
No Appfile found
fastlane gems
| Gem |
Version |
Update-Status |
| fastlane |
2.210.1 |
✅ Up-To-Date |
Loaded fastlane plugins:
| Plugin |
Version |
Update-Status |
| fastlane-plugin-yarn |
1.2 |
✅ Up-To-Date |
| fastlane-plugin-android_versioning |
0.5.5 |
✅ Up-To-Date |
| fastlane-plugin-cryptex |
0.1.5 |
✅ Up-To-Date |
Loaded gems
| Gem |
Version |
| did_you_mean |
1.4.0 |
| bundler |
2.3.11 |
| uri |
0.10.0 |
| rake |
13.0.6 |
| rexml |
3.2.5 |
| CFPropertyList |
3.0.5 |
| concurrent-ruby |
1.1.9 |
| i18n |
1.8.10 |
| minitest |
5.14.4 |
| thread_safe |
0.3.6 |
| tzinfo |
1.2.9 |
| activesupport |
5.2.4.3 |
| public_suffix |
4.0.7 |
| addressable |
2.8.1 |
| httpclient |
2.8.3 |
| json |
2.6.2 |
| algoliasearch |
1.27.5 |
| artifactory |
3.0.15 |
| ast |
2.4.2 |
| atomos |
0.1.3 |
| aws-eventstream |
1.2.0 |
| aws-partitions |
1.647.0 |
| aws-sigv4 |
1.5.2 |
| jmespath |
1.6.1 |
| aws-sdk-core |
3.161.0 |
| aws-sdk-kms |
1.58.0 |
| aws-sdk-s3 |
1.114.0 |
| babosa |
1.0.4 |
| byebug |
11.1.3 |
| claide |
1.1.0 |
| fuzzy_match |
2.0.4 |
| nap |
1.1.0 |
| netrc |
0.11.0 |
| ffi |
1.15.4 |
| ethon |
0.12.0 |
| typhoeus |
1.4.0 |
| cocoapods-core |
1.11.2 |
| cocoapods-deintegrate |
1.0.5 |
| cocoapods-downloader |
1.5.1 |
| cocoapods-plugins |
1.0.0 |
| cocoapods-search |
1.0.1 |
| cocoapods-trunk |
1.6.0 |
| cocoapods-try |
1.2.0 |
| colored2 |
3.1.2 |
| escape |
0.0.4 |
| fourflusher |
2.3.1 |
| gh_inspector |
1.1.3 |
| molinillo |
0.8.0 |
| ruby-macho |
2.5.1 |
| nanaimo |
0.3.0 |
| xcodeproj |
1.22.0 |
| cocoapods |
1.11.2 |
| cocoapods-patch |
0.0.9 |
| color |
1.8 |
| colored |
1.2 |
| highline |
2.0.3 |
| commander |
4.6.0 |
| connection_pool |
2.2.5 |
| declarative |
0.0.20 |
| digest-crc |
0.6.4 |
| unf_ext |
0.0.8.2 |
| unf |
0.1.4 |
| domain_name |
0.5.20190701 |
| dotenv |
2.8.1 |
| emoji_regex |
3.2.3 |
| excon |
0.93.0 |
| faraday-em_http |
1.0.0 |
| faraday-em_synchrony |
1.0.0 |
| faraday-excon |
1.1.0 |
| faraday-httpclient |
1.0.1 |
| multipart-post |
2.0.0 |
| faraday-multipart |
1.0.4 |
| faraday-net_http |
1.0.1 |
| faraday-net_http_persistent |
1.2.0 |
| faraday-patron |
1.0.0 |
| faraday-rack |
1.0.0 |
| faraday-retry |
1.0.3 |
| ruby2_keywords |
0.0.5 |
| faraday |
1.10.2 |
| http-cookie |
1.0.5 |
| faraday-cookie_jar |
0.0.7 |
| faraday_middleware |
1.2.0 |
| fastimage |
2.2.6 |
| jwt |
2.5.0 |
| memoist |
0.16.2 |
| multi_json |
1.15.0 |
| os |
1.1.4 |
| signet |
0.17.0 |
| googleauth |
1.3.0 |
| mini_mime |
1.1.2 |
| trailblazer-option |
0.1.2 |
| uber |
0.1.0 |
| representable |
3.2.0 |
| retriable |
3.1.2 |
| webrick |
1.7.0 |
| google-apis-core |
0.9.1 |
| google-apis-androidpublisher_v3 |
0.29.0 |
| google-apis-playcustomapp_v1 |
0.11.0 |
| google-apis-iamcredentials_v1 |
0.15.0 |
| google-apis-storage_v1 |
0.19.0 |
| google-cloud-env |
1.6.0 |
| google-cloud-errors |
1.3.0 |
| google-cloud-core |
1.6.0 |
| google-cloud-storage |
1.43.0 |
| mini_magick |
4.11.0 |
| naturally |
2.2.1 |
| optparse |
0.1.1 |
| plist |
3.6.0 |
| rubyzip |
2.3.2 |
| security |
0.1.3 |
| simctl |
1.6.8 |
| terminal-notifier |
2.0.0 |
| terminal-table |
1.6.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 |
| fastlane-plugin-android_versioning |
0.5.5 |
| fastlane-plugin-cryptex |
0.1.5 |
| fastlane-plugin-yarn |
1.2 |
| hashie |
4.1.0 |
| mime-types-data |
3.2021.0704 |
| mime-types |
3.3.1 |
| multi_xml |
0.6.0 |
| httparty |
0.18.1 |
| imgix |
4.0.3 |
| java-properties |
0.3.0 |
| lefthook |
0.7.6 |
| mini_portile2 |
2.5.3 |
| net-http-persistent |
4.0.1 |
| racc |
1.5.2 |
| nokogiri |
1.11.7 |
| parallel |
1.20.1 |
| parser |
3.0.2.0 |
| rack |
2.2.3 |
| rainbow |
3.0.0 |
| redis |
4.3.1 |
| regexp_parser |
2.1.1 |
| rubocop-ast |
1.8.0 |
| ruby-progressbar |
1.11.0 |
| unicode-display_width |
2.1.0 |
| rubocop |
1.18.3 |
| sidekiq |
6.2.1 |
generated on: 2022-10-18
I have this same problem
For me adding the following ENV solved the error with fastlane pilot upload ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD=true
@Paul-Todd i tried to get the acs_provider by running:
xcrun altool --list-providers -u "username_here"it prompted for my password and then i got a list with the name and short name of the provider
As our deploment is blocked by this error. Here is a workaround we use until it was fixed:
Shortname can be obtained by using the transporter directly.
Returns Long and Short Name.
Add ENV variable to your deployment (or local machine 🥇, or Fastfile directly)
With DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS we can add the “missing” -asc_provider variable.
Just deployed and it works for those who can’t wait.
Or set
itc_providerin theupload_to_testflightaction.I’ve since implemented
ITMSTRANSPORTER_FORCE_ITMS_PACKAGE_UPLOAD=trueand it’s been working much betterI can confirm this also works with the Azure Pipelines task Apple AppStore Release.
Just add the variable:
I just copied
TEAM IDvalue from this page (or fromteam_idvalue from yourAppfileif you have it) and set it toPILOT_ITC_PROVIDERenv variable (also you can set a field inside the functionupload_to_testflight(itc_provider: "YourTeamId")function). It works for me to solve this issue.Source of this solution: https://medium.com/@nickmeehan/fastlane-testflight-and-itc-provider-9233a3c4b5e5
Just an update - I’m experiencing the same issues with all my deployments. Outside from all the workarounds - do we plan to address this in any way in the next update? Thanks!
Hi, Dak0r, What if I don’t have an ability to work with YAML? Do you know how can I add this value from Azure Pipelines UI?
Confirmed the same error, please have a look and fix it. Cheers!
This worked great for us. We do white-label mobile apps so specifying the provider shortname isn’t ideal as it changes based on the client we are building for.
This also fixed our issues using
deliver. Our situation was one of the cases where the “Provider Shortname” was the same as our Team ID, and providing the Team ID toitc_providerdidn’t resolve the “could not find a provider public id” error.Finally worked on our Azure pipelines UI. We had to set the following line in the Apple App Store Release Task -> Advanced -> Additional fastlane arguments field:
--itc_provider YourShortNameThis worked for me. Thanks @danilvalov
thanks @kamimi01 finally works for me.
I’ve switched back to
altooland setitc_providerin theupload_to_testflightaction and it worked for me. 🎉IMPORTANT: make sure you deleted
FASTLANE_ITUNES_TRANSPORTER_USE_SHELL_SCRIPTandFASTLANE_ITUNES_TRANSPORTER_PATHfrom bothFastfileand~/.zshrc. I wasted a lot of time testing onlyFastfilechanges not realising I had the env variables set in~/.zshrc.Side note: I believe this fix won’t work for everyone.
itc_providerandasc_providerare sometimes different, so if you’re unlucky you may still experience this issue even after settingitc_providerinupload_to_testflight. Fastlane maintainers should expose a separateasc_providerinupload_to_testflight! 🙂However, using that exact
ProviderShortName(which is the same as the auto-detected Team ID inAppFile) as the value foritc_providerinupload_to_testflightdoes the trick. Have just tested!@kopax-polyconseil I found this even easier since it didn’t rely on iTMSTransporter:
xcrun altool --list-providers -u USERNAMEIf you are using AzureDevops for app deployment via the ‘Apple App Store Release’ task in a release pipeline, the workaround is to just add a Pipeline Variable scoped to the release key:
DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERSvalue:-asc_provider YourShortNameI had the same error when I ran
upload_to_app_storeaction and I’ve solved it by adding the environment variable as @MGX47Storai mentioned. Thank you. Then I looked into this variable and found helpful comments in fastlane sourcecode. Let me share.https://github.com/fastlane/fastlane/blob/950bb820237d52e15690408083e328f739ac0ef3/fastlane_core/lib/fastlane_core/itunes_transporter.rb#L737-L742
The solution for me was:
First,
xcrun altool --list-providers -u "username_here", (notice there is no space between-andu, one of the above answers has this typo)This will prompt you for your App-specific password. (This password is is referenced in: https://appleid.apple.com/account/manage --> App-specific passwords. You cannot see it, if you have lost it you will need to regenerate it and update any references to it.)
Enter that and you will see a table containing your information. Find your “ProviderShortname”.
In fastlane use:
upload_to_testflight(itc_provider: 'ProviderShortname')I have the same issue as @gunap. My team’s short name is the same as the Team ID.
I’ve tried using iTMSTransporter bundled in the Transporter app directly like this:
But it always says “ERROR: could not find a provider public id”.
This is interesting, because I have been able to upload my IPA with the Transporter app…
In My case, I have two different accounts. For one account, value for ProviderShortname and WWDRTeamID is same. For another account, value for ProviderShortname and WWDRTeamID are different. Account with different values for ProviderShortname and WWDRTeamID, ipa upload working fine. For another account, where same value is used for ProviderShortname and WWDRTeamID, ipa upload not working. Below is the error, getting. “could not find a provider public id”
Any thoughts?
Since iTMSTransporter is not shipped anymore, any suggestions on how to get the long and short names?
I had the same problem, so I checked and
itc_providerworks indeed 👍