Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[deliver][pilot] use altool instead of using iTMSTransporter for Xcode 14 #20631

Merged
merged 69 commits into from Sep 15, 2022

Conversation

freddi-kit
Copy link
Contributor

@freddi-kit freddi-kit commented Sep 7, 2022

Checklist

  • I've run bundle exec rspec from the root directory to see all new and existing tests pass
  • I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
  • I see several green ci/circleci builds in the "All checks have passed" section of my PR (connect CircleCI to GitHub if not)
  • I've read the Contribution Guidelines
  • I've updated the documentation if necessary.

Motivation and Context

Resolves #20371

ITMSTransporter is officially removed from Xcode 14 beta and now it is only available on Transporter.app.
Apple recommends to use altool instead.

Description

Implemlemented

  • Use altool if fastlane tries to upload ipa from Xcode 14

Tested

  • deliver and pilot action

Testing Steps

  • Update Gemfile to 👇 and run bundle install, bundle update fastlane, or bundle update
gem "fastlane", :git => "https://github.com/freddi-kit/fastlane.git", :branch => "altool-upload"

I tested by pure project with below fastfile

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :custom_lane do
    xcode_select("/Applications/Xcode_14.app")
    # add actions here: https://docs.fastlane.tools/actions
    build_app(
      scheme: "EmptyTestApp",
      configuration: "Release",
      export_options: {
        provisioningProfiles: {
          "com.freddi.testapp.EmptyTestApp" => "release",
        },
      },
      silent: true,
      clean: true
    )
    deliver(
      submit_for_review: false,
      automatic_release: false,
      force: true, # Skip HTMl report verification
      skip_metadata: true,
      skip_screenshots: true,
      skip_binary_upload: false
    )
    # pilot(
    #  username: "test@test.com"
    # )
  end
end

TODOs (In other PR)

@google-cla
Copy link

google-cla bot commented Sep 7, 2022

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@giginet giginet self-requested a review September 8, 2022 07:21
Copy link
Collaborator

@giginet giginet left a comment

Choose a reason for hiding this comment

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

Care nils in some situations and Could you add test cases?

deliver/lib/deliver/runner.rb Outdated Show resolved Hide resolved
when "osx"
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
app_id: Deliver.cache[:app].id,
pkg_path: pkg_path,
package_path: "/tmp",
platform: platform
)
result = transporter.upload(package_path: package_path, asset_path: pkg_path)
result = transporter.upload(package_path: package_path, asset_path: pkg_pat, platform: "macos")
Copy link
Collaborator

Choose a reason for hiding this comment

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

typo

Suggested change
result = transporter.upload(package_path: package_path, asset_path: pkg_pat, platform: "macos")
result = transporter.upload(package_path: package_path, asset_path: pkg_path, platform: "macos")

Copy link
Collaborator

Choose a reason for hiding this comment

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

Can't you pass platform instead?
Is it necessary to pass macos ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

since altool needs a option -t and it accepts ios, macos or appletvos. osx cannot be passed so I convert it here. but it may be better to do it inside build command construction function. let me fix it

def execute(command, hide_output)
if Helper.test?
yield(nil) if block_given?
return command
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
return command
command

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I found it is necessary for test case, so I reverted

fastlane_core/lib/fastlane_core/itunes_transporter.rb Outdated Show resolved Hide resolved
fastlane_core/lib/fastlane_core/itunes_transporter.rb Outdated Show resolved Hide resolved
end

def file_upload_option(source)
return "-f #{source.shellescape}"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
return "-f #{source.shellescape}"
"-f #{source.shellescape}"

fastlane_core/lib/fastlane_core/itunes_transporter.rb Outdated Show resolved Hide resolved
@@ -490,7 +613,14 @@ def initialize(user = nil, password = nil, use_shell_script = false, provider_sh

@jwt = jwt

@transporter_executor = use_shell_script ? ShellScriptTransporterExecutor.new : JavaTransporterExecutor.new
if !use_shell_script && upload && !Helper.user_defined_itms_path? && Helper.mac? && Helper.xcode_at_least?(14)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you place these conditions on another instance method? lile should_use_altool?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done!

@@ -657,6 +787,12 @@ def provider_ids

TWO_FACTOR_ENV_VARIABLE = "FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"

# Returns whether altool should be used or ItunesTransporter should be used
def should_use_altool(upload, use_shell_script)
Copy link
Collaborator

Choose a reason for hiding this comment

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

In Ruby convention, methods return boolean should end with ?. like should_use_altool?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done!
5bd7d3f

@freddi-kit freddi-kit marked this pull request as ready for review September 9, 2022 10:55
Copy link
Member

@crazymanish crazymanish left a comment

Choose a reason for hiding this comment

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

Nice work @freddi-kit please see the attached crash when i am using this PR using pilot+api_key
I also updated this PR description to test this PR by others and provide us valuable feedbacks

i will test and review more...

("API_PRIVATE_KEYS_DIR=#{api_key[:key_filepath]}" if api_key),
"xcrun altool",
"--upload-app",
("-u #{username.shellescape}" unless api_key),
Copy link
Member

Choose a reason for hiding this comment

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

Hi @freddi-kit

Nice work! i am just testing this PR and it got crashed in this line shellescape
Also, the username is indeed nil in my case because i am using API-Key inside pilot so technially this line should not even execute. i think, maybe we are not passing the api_key correct way in this method....

3: from /Users/distiller/project/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-ed28c906445c/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in `run'
	 2: from /Users/distiller/project/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-ed28c906445c/pilot/lib/pilot/build_manager.rb:50:in `upload'
	 1: from /Users/distiller/project/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-ed28c906445c/fastlane_core/lib/fastlane_core/itunes_transporter.rb:697:in `upload'
/Users/distiller/project/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-ed28c906445c/fastlane_core/lib/fastlane_core/itunes_transporter.rb:242:in `build_upload_command': undefined method `shellescape' for nil:NilClass (NoMethodError)

Copy link
Member

Choose a reason for hiding this comment

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

btw, pilot + username(apple-id), password is working well 🚀

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh Thank you for reviewing!

in my environment, pilot+api_key works. and here is my example Fastfile.
How is mine and your Fastfile different?

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :custom_lane do
    xcode_select("/Applications/Xcode_14 beta 6.app")
    api_key = app_store_connect_api_key(
      key_id: "XXXXXX",
      issuer_id: "XXX-XXX-XXXX",
      key_filepath: "./AuthKey_XXXX.p8",
      duration: 1200,
      in_house: false
    )    
    
    pilot(api_key: api_key)
  end
end

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah... sorry I may found there is a issue to check password is available or not, please wait a moment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I noticed this is simple issue comes from my less experience Ruby 🙇 I can fix it soon

Choose a reason for hiding this comment

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

Hi @freddi-kit! Thank you so much for working on that.

I second @raid5 comment. I believe there's an unhandled case when using api_key_path (instead of api_key):

fastlane_core/lib/fastlane_core/itunes_transporter.rb:241:in build_upload_command': undefined method shellescape' for nil:NilClass (NoMethodError)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I just investigated and it is bug, and it requires a little more changes to support it api_key_path. I'm happy if you wait for it 🙇

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed! 22cfcec

Copy link

Choose a reason for hiding this comment

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

Awesome this works great! I was able to successfully upload to TestFlight now.

Choose a reason for hiding this comment

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

Same! Thank you so much @freddi-kit. As others said:

Some heroes don't wear capes, @freddi-kit 😁

@@ -568,9 +690,11 @@ def upload(app_id = nil, dir = nil, package_path: nil, asset_path: nil)

password_placeholder = @jwt.nil? ? 'YourPassword' : nil
jwt_placeholder = @jwt.nil? ? nil : 'YourJWT'
api_key_plaseholder = nil unless @api_key.nil?
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
api_key_plaseholder = nil unless @api_key.nil?
api_key_placeholder = nil unless @api_key.nil?

please fix this spell in other places too...

@freddi-kit freddi-kit restored the altool-upload branch September 15, 2022 09:11
@azilbershtein
Copy link

@freddi-kit Thanks and Great job!
One issue I got into is this: (I'm using master on my Gemfile)
bundler: failed to load command: fastlane (~/vendor/bundle/ruby/2.7.0/bin/fastlane)
~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/itunes_transporter.rb:876:in api_key_with_p8_file_path': \e[31m[!] private method clone' called for #Hash:0x00007f9338ab0108\e[0m (NoMethodError)

I'm using the pilot method with api_key
{key: "****, "issuer_id": ***, "key_id: **}
Did anyone get this error?

@freddi-kit
Copy link
Contributor Author

freddi-kit commented Sep 15, 2022

Oh, thank you for reporting 🙇 Let me investigate it @azilbershtein

@freddi-kit
Copy link
Contributor Author

@azilbershtein could you share me detailed stack trace?

@azilbershtein
Copy link

bundler: failed to load command: fastlane (~/vendor/bundle/ruby/2.7.0/bin/fastlane) [599](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L599)~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/itunes_transporter.rb:876:in api_key_with_p8_file_path': \e[31m[!] private method clone' called for #<Hash:0x00007f9338ab0108>\e[0m (NoMethodError) [600](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L600) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/itunes_transporter.rb:769:in upload'
601 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/pilot/lib/pilot/build_manager.rb:50:in upload' [602](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L602) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in run'
603 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:263:in block (2 levels) in execute_action' [604](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L604) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/actions/actions_helper.rb:69:in execute_action'
605 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:255:in block in execute_action' [606](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L606) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:229:in chdir'
607 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:229:in execute_action' [608](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L608) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name'
609 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/fast_file.rb:159:in method_missing' [610](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L610) from Fastfile:107:in block (2 levels) in parsing_binding'
611 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/lane.rb:33:in call' [612](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L612) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:49:in block in execute'
613 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:45:in chdir' [614](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L614) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:45:in execute'
615 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/lane_manager.rb:47:in cruise_lane' [616](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L616) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/command_line_handler.rb:36:in handle'
617 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:110:in block (2 levels) in run' [618](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L618) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/command.rb:187:in call'
619 from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/command.rb:157:in run' [620](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L620) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in run_active_command'
621 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in run!' [622](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L622) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in run!'
623 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:354:in run' [624](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L624) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:43:in start'
625 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in take_off' [626](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L626) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/bin/fastlane:23:in <top (required)>'
627 from ~/vendor/bundle/ruby/2.7.0/bin/fastlane:25:in load' [628](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L628) from ~/vendor/bundle/ruby/2.7.0/bin/fastlane:25:in <top (required)>'
629 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:63:in load' [630](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L630) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:63:in kernel_load'
631 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:28:in run' [632](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L632) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:494:in exec'
633 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run' [634](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L634) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command'
635 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch' [636](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L636) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:30:in dispatch'
637 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' [638](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L638) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:24:in start'
639 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/exe/bundle:49:in block in <top (required)>' [640](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L640) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/friendly_errors.rb:130:in with_friendly_errors'
641 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/exe/bundle:37:in <top (required)>' [642](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L642) from /usr/local/opt/ruby@2.7/bin/bundle:23:in load'
643 from /usr/local/opt/ruby@2.7/bin/bundle:23:in <main>' [644](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L644)~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/itunes_transporter.rb:876:in api_key_with_p8_file_path': private method clone' called for #<Hash:0x00007f9338ab0108> (NoMethodError) [645](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L645) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/itunes_transporter.rb:769:in upload'
646 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/pilot/lib/pilot/build_manager.rb:50:in upload' [647](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L647) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in run'
648 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:263:in block (2 levels) in execute_action' [649](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L649) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/actions/actions_helper.rb:69:in execute_action'
650 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:255:in block in execute_action' [651](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L651) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:229:in chdir'
652 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:229:in execute_action' [653](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L653) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name'
654 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/fast_file.rb:159:in method_missing' [655](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L655) from Fastfile:107:in block (2 levels) in parsing_binding'
656 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/lane.rb:33:in call' [657](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L657) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:49:in block in execute'
658 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:45:in chdir' [659](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L659) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/runner.rb:45:in execute'
660 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/lane_manager.rb:47:in cruise_lane' [661](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L661) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/command_line_handler.rb:36:in handle'
662 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:110:in block (2 levels) in run' [663](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L663) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/command.rb:187:in call'
664 from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/command.rb:157:in run' [665](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L665) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in run_active_command'
666 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in run!' [667](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L667) from ~/vendor/bundle/ruby/2.7.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in run!'
668 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:354:in run' [669](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L669) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/commands_generator.rb:43:in start'
670 from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in take_off' [671](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L671) from ~/vendor/bundle/ruby/2.7.0/bundler/gems/fastlane-b4070a8d9a70/bin/fastlane:23:in <top (required)>'
672 from ~/vendor/bundle/ruby/2.7.0/bin/fastlane:25:in load' [673](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L673) from ~/vendor/bundle/ruby/2.7.0/bin/fastlane:25:in <top (required)>'
674 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:63:in load' [675](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L675) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:63:in kernel_load'
676 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli/exec.rb:28:in run' [677](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L677) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:494:in exec'
678 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run' [679](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L679) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command'
680 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch' [681](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L681) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:30:in dispatch'
682 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' [683](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L683) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/cli.rb:24:in start'
684 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/exe/bundle:49:in block in <top (required)>' [685](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L685) from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/lib/bundler/friendly_errors.rb:130:in with_friendly_errors'
686 from /usr/local/Cellar/ruby@2.7/2.7.6_1/lib/ruby/gems/2.7.0/gems/bundler-2.2.4/exe/bundle:37:in <top (required)>' [687](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L687) from /usr/local/opt/ruby@2.7/bin/bundle:23:in load'
688 from /usr/local/opt/ruby@2.7/bin/bundle:23:in <main>' [689](https://gitlab.com/chegginc/learning-services/mobile/ios/sox/ios-chegg/-/jobs/3032569275#L689)make: *** [upload-to-store] Error 1

@freddi-kit
Copy link
Contributor Author

@azilbershtein could you share me the detail Fastfile around upload_to_testflight

@azilbershtein
Copy link

@freddi-kit Thanks!

json_api_key = JSON.parse(api_key, symbolize_names: true)

#The json_api_key is the format of {key: "****, "issuer_id": ***, "key_id: **}

pilot(
  api_key: json_api_key,
  app_identifier: BUNDLE_IDENTIFIER_APPSTORE,
  apple_id: APP_ID,
  ipa: ipa_path,
  team_id: TEAM_ID,
  team_name: TEAM_NAME,
  dev_portal_team_id: DEV_PORTAL_TEAM_ID,
  notify_external_testers: false,
  skip_waiting_for_build_processing: true,
  skip_submission: true
)

@AliSoftware
Copy link
Contributor

AliSoftware commented Sep 15, 2022

Since we don't need a deep copy of the Hash — as we're only adding a key at the root level of the Hash and not changing anything at deeper levels — I think we could consider replacing .clone with .dup (which does a shallow-copy, but it's ok in our case) on this line which seems to be the culprit.

That being said, I'd expect some_hash.clone to work and to not be a private method, so not sure why it crashes here and I'd still be curious to understand why it does in that particular case. But maybe dup (which seems more common in ruby?) hopefully won't crash like clone does, so it might be worth a try.

@freddi-kit
Copy link
Contributor Author

freddi-kit commented Sep 15, 2022

@azilbershtein

gem "fastlane", :git => "https://github.com/freddi-kit/fastlane.git", :branch => "pilot-apikey-dup"

could you try this branch? I updated fixing recommended by #20631 (comment)

@Kiruel
Copy link

Kiruel commented Sep 15, 2022

Hi ! I just use your branch and got the same result:

Logs /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in `user_error!': [!] Could not find transporter at /Applications/Xcode.app/Contents/Developer/. Please make sure you set the correct path to your Xcode installation. (FastlaneCore::Interface::FastlaneError) from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/helper.rb:244:in `itms_path' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/itunes_transporter.rb:447:in `execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/itunes_transporter.rb:576:in `upload' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/pilot/lib/pilot/build_manager.rb:50:in `upload' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in `run' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:229:in `chdir' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:229:in `execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing' from Fastfile:123:in `block (2 levels) in parsing_binding' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/lane.rb:33:in `call' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:49:in `block in execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:45:in `chdir' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:45:in `execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:187:in `call' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:157:in `run' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:354:in `run' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:43:in `start' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/bin/fastlane:23:in `' from /usr/local/bin/fastlane:23:in `load' from /usr/local/bin/fastlane:23:in `' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `load' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `kernel_load' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:23:in `run' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:483:in `exec' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:31:in `dispatch' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:25:in `start' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/exe/bundle:48:in `block in ' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/exe/bundle:36:in `' from /usr/local/bin/bundle:23:in `load' from /usr/local/bin/bundle:23:in `' /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in `user_error!': Could not find transporter at /Applications/Xcode.app/Contents/Developer/. Please make sure you set the correct path to your Xcode installation. (FastlaneCore::Interface::FastlaneError) from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/helper.rb:244:in `itms_path' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/itunes_transporter.rb:447:in `execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/itunes_transporter.rb:576:in `upload' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/pilot/lib/pilot/build_manager.rb:50:in `upload' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/actions/upload_to_testflight.rb:34:in `run' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:229:in `chdir' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:229:in `execute_action' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing' from Fastfile:123:in `block (2 levels) in parsing_binding' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/lane.rb:33:in `call' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:49:in `block in execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:45:in `chdir' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/runner.rb:45:in `execute' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:110:in `block (2 levels) in run' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:187:in `call' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/command.rb:157:in `run' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/runner.rb:444:in `run_active_command' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:124:in `run!' from /Library/Ruby/Gems/2.6.0/gems/commander-4.6.0/lib/commander/delegates.rb:18:in `run!' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:354:in `run' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/commands_generator.rb:43:in `start' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/fastlane/lib/fastlane/cli_tools_distributor.rb:123:in `take_off' from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.209.1/bin/fastlane:23:in `' from /usr/local/bin/fastlane:23:in `load' from /usr/local/bin/fastlane:23:in `' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `load' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `kernel_load' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:23:in `run' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:483:in `exec' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:31:in `dispatch' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/cli.rb:25:in `start' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/exe/bundle:48:in `block in ' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors' from /Library/Ruby/Gems/2.6.0/gems/bundler-2.3.14/exe/bundle:36:in `' from /usr/local/bin/bundle:23:in `load' from /usr/local/bin/bundle:23:in `'

@freddi-kit
Copy link
Contributor Author

freddi-kit commented Sep 15, 2022

@Kiruel it is not same result. It looks fastlane tries to find old transporter and it fails. I'm expecting your fastlane still old one

@freddi-kit
Copy link
Contributor Author

@Kiruel please wait for official gem update.

Copy link

@fastlane-bot fastlane-bot left a comment

Choose a reason for hiding this comment

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

Congratulations! 🎉 This was released as part of fastlane 2.210.0 🚀

@freddi-kit
Copy link
Contributor Author

freddi-kit commented Sep 15, 2022

@Kiruel please try official 2.210.0 version instead of master/freddi-kit branch

@azilbershtein
Copy link

@freddi-kit It works with
gem "fastlane", :git => "https://github.com/freddi-kit/fastlane.git", :branch => "pilot-apikey-dup"
Thank you!

@freddi-kit
Copy link
Contributor Author

@azilbershtein cool, let me create patch later

@freddi-kit
Copy link
Contributor Author

@AliSoftware @giginet
since @azilbershtein confirmed dup works, i wanna ask you review this PR, could you take a look? #20662

@Kiruel
Copy link

Kiruel commented Sep 15, 2022

I will test in couple hours a new version with the new fastlane version. Just a question the api_key_path works on this version ?

@freddi-kit
Copy link
Contributor Author

@Kiruel yep

@Kiruel
Copy link

Kiruel commented Sep 15, 2022

Amazing job thanks @freddi-kit :) !

@vadimbelyaev
Copy link

vadimbelyaev commented Sep 15, 2022

Just tested my CI pipeline with Fastlane 2.210.0 and Xcode 14, it all worked like a charm, no configuration changes needed. Truly amazing work, thank you @freddi-kit and all the contributors! 🚀

crazymanish added a commit that referenced this pull request Sep 15, 2022
* master:
  Version bump to 2.210.0 (#20660)
  [deliver][pilot] use altool instead of using iTMSTransporter for Xcode 14 (#20631)

# Conflicts:
#	fastlane_core/spec/helper_spec.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to upload to testflight using Xcode 14 beta