fastlane 2.67.0.beta.20171128010003 → 2.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/fastlane/lib/.DS_Store +0 -0
- data/fastlane/lib/fastlane/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/.DS_Store +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/.DS_Store +0 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +29 -1
- data/gym/lib/gym/code_signing_mapping.rb +1 -31
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +14 -1
- data/spaceship/lib/spaceship/portal/portal_client.rb +15 -9
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -1
- metadata +22 -16
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 023dc8370b008bcf99703bb1543fd2ca6a2a32bd
         | 
| 4 | 
            +
              data.tar.gz: eabea283aefde2fe8620c719d292fe6fd4da83bc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0f5c751c1a9873841c6ea8acfe70eb32e744007567089f1e983ee6b841c3d702981991e501c795dd92498084282f32c54cf593e567b6a68894e1f63564aa4953
         | 
| 7 | 
            +
              data.tar.gz: df0ab4ebf116d631014475ad025c6173b7e71ccd1af77d41650363eda71e5cc1b59fbfd1da66accb072556a6df99da97f0c1196c775c8b47a752797f4c9bf6c5
         | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            module Fastlane
         | 
| 2 | 
            -
              VERSION = '2.67.0 | 
| 2 | 
            +
              VERSION = '2.67.0'.freeze
         | 
| 3 3 | 
             
              DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
         | 
| 4 4 | 
             
              MINIMUM_XCODE_RELEASE = "7.0".freeze
         | 
| 5 5 | 
             
              RUBOCOP_REQUIREMENT = '0.49.1'.freeze
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            module FastlaneCore
         | 
| 2 2 | 
             
              # Represents an Xcode project
         | 
| 3 | 
            -
              class Project
         | 
| 3 | 
            +
              class Project # rubocop:disable Metrics/ClassLength
         | 
| 4 4 | 
             
                class << self
         | 
| 5 5 | 
             
                  # Project discovery
         | 
| 6 6 | 
             
                  def detect_projects(config)
         | 
| @@ -457,6 +457,34 @@ module FastlaneCore | |
| 457 457 | 
             
                  return result
         | 
| 458 458 | 
             
                end
         | 
| 459 459 |  | 
| 460 | 
            +
                # Array of paths to all project files
         | 
| 461 | 
            +
                # (might be multiple, because of workspaces)
         | 
| 462 | 
            +
                def project_paths
         | 
| 463 | 
            +
                  return @_project_paths if @_project_paths
         | 
| 464 | 
            +
                  if self.workspace?
         | 
| 465 | 
            +
                    # Find the xcodeproj file, as the information isn't included in the workspace file
         | 
| 466 | 
            +
                    # We have a reference to the workspace, let's find the xcodeproj file
         | 
| 467 | 
            +
                    # For some reason the `plist` gem can't parse the content file
         | 
| 468 | 
            +
                    # so we'll use a regex to find all group references
         | 
| 469 | 
            +
             | 
| 470 | 
            +
                    workspace_data_path = File.join(path, "contents.xcworkspacedata")
         | 
| 471 | 
            +
                    workspace_data = File.read(workspace_data_path)
         | 
| 472 | 
            +
                    @_project_paths = workspace_data.scan(/\"group:(.*)\"/).collect do |current_match|
         | 
| 473 | 
            +
                      # It's a relative path from the workspace file
         | 
| 474 | 
            +
                      File.join(File.expand_path("..", path), current_match.first)
         | 
| 475 | 
            +
                    end.find_all do |current_match|
         | 
| 476 | 
            +
                      # We're not interested in a `Pods` project, as it doesn't contain any relevant
         | 
| 477 | 
            +
                      # information about code signing
         | 
| 478 | 
            +
                      !current_match.end_with?("Pods/Pods.xcodeproj")
         | 
| 479 | 
            +
                    end
         | 
| 480 | 
            +
             | 
| 481 | 
            +
                    return @_project_paths
         | 
| 482 | 
            +
                  else
         | 
| 483 | 
            +
                    # Return the path as an array
         | 
| 484 | 
            +
                    return @_project_paths = [path]
         | 
| 485 | 
            +
                  end
         | 
| 486 | 
            +
                end
         | 
| 487 | 
            +
             | 
| 460 488 | 
             
                private
         | 
| 461 489 |  | 
| 462 490 | 
             
                def parsed_info
         | 
| @@ -4,8 +4,6 @@ module Gym | |
| 4 4 | 
             
              class CodeSigningMapping
         | 
| 5 5 | 
             
                attr_accessor :project
         | 
| 6 6 |  | 
| 7 | 
            -
                attr_accessor :project_paths
         | 
| 8 | 
            -
             | 
| 9 7 | 
             
                def initialize(project: nil)
         | 
| 10 8 | 
             
                  self.project = project
         | 
| 11 9 | 
             
                end
         | 
| @@ -72,34 +70,6 @@ module Gym | |
| 72 70 | 
             
                  return str.to_s.gsub("-", "").gsub(" ", "").gsub("InHouse", "enterprise").downcase.include?(contains.to_s.gsub("-", "").gsub(" ", "").downcase)
         | 
| 73 71 | 
             
                end
         | 
| 74 72 |  | 
| 75 | 
            -
                # Array of paths to all project files
         | 
| 76 | 
            -
                # (might be multiple, because of workspaces)
         | 
| 77 | 
            -
                def project_paths
         | 
| 78 | 
            -
                  return @_project_paths if @_project_paths
         | 
| 79 | 
            -
                  if self.project.workspace?
         | 
| 80 | 
            -
                    # Find the xcodeproj file, as the information isn't included in the workspace file
         | 
| 81 | 
            -
                    # We have a reference to the workspace, let's find the xcodeproj file
         | 
| 82 | 
            -
                    # For some reason the `plist` gem can't parse the content file
         | 
| 83 | 
            -
                    # so we'll use a regex to find all group references
         | 
| 84 | 
            -
             | 
| 85 | 
            -
                    workspace_data_path = File.join(self.project.path, "contents.xcworkspacedata")
         | 
| 86 | 
            -
                    workspace_data = File.read(workspace_data_path)
         | 
| 87 | 
            -
                    @_project_paths = workspace_data.scan(/\"group:(.*)\"/).collect do |current_match|
         | 
| 88 | 
            -
                      # It's a relative path from the workspace file
         | 
| 89 | 
            -
                      File.join(File.expand_path("..", self.project.path), current_match.first)
         | 
| 90 | 
            -
                    end.find_all do |current_match|
         | 
| 91 | 
            -
                      # We're not interested in a `Pods` project, as it doesn't contain any relevant
         | 
| 92 | 
            -
                      # information about code signing
         | 
| 93 | 
            -
                      !current_match.end_with?("Pods/Pods.xcodeproj")
         | 
| 94 | 
            -
                    end
         | 
| 95 | 
            -
             | 
| 96 | 
            -
                    return @_project_paths
         | 
| 97 | 
            -
                  else
         | 
| 98 | 
            -
                    # Return the path as an array
         | 
| 99 | 
            -
                    return @_project_paths = [self.project.path]
         | 
| 100 | 
            -
                  end
         | 
| 101 | 
            -
                end
         | 
| 102 | 
            -
             | 
| 103 73 | 
             
                def test_target?(build_settings)
         | 
| 104 74 | 
             
                  return (!build_settings["TEST_TARGET_NAME"].nil? || !build_settings["TEST_HOST"].nil?)
         | 
| 105 75 | 
             
                end
         | 
| @@ -123,7 +93,7 @@ module Gym | |
| 123 93 | 
             
                  provisioning_profile_mapping = {}
         | 
| 124 94 | 
             
                  specified_configuration = Gym.config[:configuration] || Gym.project.default_build_settings(key: "CONFIGURATION")
         | 
| 125 95 |  | 
| 126 | 
            -
                  self.project_paths.each do |project_path|
         | 
| 96 | 
            +
                  self.project.project_paths.each do |project_path|
         | 
| 127 97 | 
             
                    UI.verbose("Parsing project file '#{project_path}' to find selected provisioning profiles")
         | 
| 128 98 | 
             
                    UI.verbose("Finding provision profiles for '#{specified_configuration}'") if specified_configuration
         | 
| 129 99 |  | 
| @@ -170,7 +170,7 @@ module Gym | |
| 170 170 | 
             
                    # xcodebuild will not use provisioning profiles
         | 
| 171 171 | 
             
                    # if we don't specify signingStyle as manual
         | 
| 172 172 | 
             
                    if Helper.xcode_at_least?("9.0") && hash[:provisioningProfiles]
         | 
| 173 | 
            -
                      hash[:signingStyle] =  | 
| 173 | 
            +
                      hash[:signingStyle] = signing_style
         | 
| 174 174 | 
             
                    end
         | 
| 175 175 |  | 
| 176 176 | 
             
                    hash[:teamID] = Gym.config[:export_team_id] if Gym.config[:export_team_id]
         | 
| @@ -189,6 +189,19 @@ module Gym | |
| 189 189 | 
             
                    to_plist(hash)
         | 
| 190 190 | 
             
                  end
         | 
| 191 191 |  | 
| 192 | 
            +
                  def signing_style
         | 
| 193 | 
            +
                    projects = Gym.project.project_paths
         | 
| 194 | 
            +
                    project = projects.first
         | 
| 195 | 
            +
                    xcodeproj = Xcodeproj::Project.open(project)
         | 
| 196 | 
            +
                    xcodeproj.root_object.attributes["TargetAttributes"].each do |target, sett|
         | 
| 197 | 
            +
                      return sett["ProvisioningStyle"].to_s.downcase
         | 
| 198 | 
            +
                    end
         | 
| 199 | 
            +
                  rescue => e
         | 
| 200 | 
            +
                    UI.verbose(e.to_s)
         | 
| 201 | 
            +
                    UI.error("Unable to read provisioning style from .pbxproj file.")
         | 
| 202 | 
            +
                    return "automatic"
         | 
| 203 | 
            +
                  end
         | 
| 204 | 
            +
             | 
| 192 205 | 
             
                  # Avoids a Hash#to_plist conflict between CFPropertyList and plist gems
         | 
| 193 206 | 
             
                  def to_plist(hash)
         | 
| 194 207 | 
             
                    Plist::Emit.dump(hash, true)
         | 
| @@ -439,7 +439,11 @@ module Spaceship | |
| 439 439 | 
             
                      sort: 'name=asc',
         | 
| 440 440 | 
             
                      includeRemovedDevices: include_disabled
         | 
| 441 441 | 
             
                    })
         | 
| 442 | 
            -
                    parse_response(r, 'devices')
         | 
| 442 | 
            +
                    result = parse_response(r, 'devices')
         | 
| 443 | 
            +
             | 
| 444 | 
            +
                    csrf_cache[Spaceship::Device] = self.csrf_tokens
         | 
| 445 | 
            +
             | 
| 446 | 
            +
                    result
         | 
| 443 447 | 
             
                  end
         | 
| 444 448 | 
             
                end
         | 
| 445 449 |  | 
| @@ -558,7 +562,11 @@ module Spaceship | |
| 558 562 | 
             
                      onlyCountLists: true
         | 
| 559 563 | 
             
                    })
         | 
| 560 564 |  | 
| 561 | 
            -
                    parse_response(req, 'provisioningProfiles')
         | 
| 565 | 
            +
                    result = parse_response(req, 'provisioningProfiles')
         | 
| 566 | 
            +
             | 
| 567 | 
            +
                    csrf_cache[Spaceship::ProvisioningProfile] = self.csrf_tokens
         | 
| 568 | 
            +
             | 
| 569 | 
            +
                    result
         | 
| 562 570 | 
             
                  end
         | 
| 563 571 | 
             
                end
         | 
| 564 572 |  | 
| @@ -577,7 +585,11 @@ module Spaceship | |
| 577 585 | 
             
                    }
         | 
| 578 586 | 
             
                  end
         | 
| 579 587 |  | 
| 580 | 
            -
                  parse_response(req, 'provisioningProfiles')
         | 
| 588 | 
            +
                  result = parse_response(req, 'provisioningProfiles')
         | 
| 589 | 
            +
             | 
| 590 | 
            +
                  csrf_cache[Spaceship::ProvisioningProfile] = self.csrf_tokens
         | 
| 591 | 
            +
             | 
| 592 | 
            +
                  result
         | 
| 581 593 | 
             
                end
         | 
| 582 594 |  | 
| 583 595 | 
             
                def provisioning_profile_details(provisioning_profile_id: nil, mac: false)
         | 
| @@ -734,12 +746,6 @@ module Spaceship | |
| 734 746 | 
             
                  # we don't have a valid csrf token, that's why we have to do at least one request
         | 
| 735 747 | 
             
                  block_given? ? yield : klass.all
         | 
| 736 748 |  | 
| 737 | 
            -
                  # Update 18th August 2016
         | 
| 738 | 
            -
                  # For some reason, we have to query the resource twice to actually get a valid csrf_token
         | 
| 739 | 
            -
                  # I couldn't find out why, the first response does have a valid Set-Cookie header
         | 
| 740 | 
            -
                  # But it still needs this second request
         | 
| 741 | 
            -
                  block_given? ? yield : klass.all
         | 
| 742 | 
            -
             | 
| 743 749 | 
             
                  csrf_cache[klass] = self.csrf_tokens
         | 
| 744 750 | 
             
                end
         | 
| 745 751 |  | 
| @@ -1202,7 +1202,10 @@ module Spaceship | |
| 1202 1202 | 
             
                    }.to_json
         | 
| 1203 1203 | 
             
                    req.headers['Content-Type'] = 'application/json'
         | 
| 1204 1204 | 
             
                  end
         | 
| 1205 | 
            -
                  parse_response(r, 'data') | 
| 1205 | 
            +
                  response_object = parse_response(r, 'data')
         | 
| 1206 | 
            +
                  errors = response_object['sectionErrorKeys']
         | 
| 1207 | 
            +
                  raise ITunesConnectError, errors.join(' ') unless errors.empty?
         | 
| 1208 | 
            +
                  response_object['user']
         | 
| 1206 1209 | 
             
                end
         | 
| 1207 1210 |  | 
| 1208 1211 | 
             
                def delete_sandbox_testers!(tester_class, emails)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fastlane
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.67.0 | 
| 4 | 
            +
              version: 2.67.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Felix Krause
         | 
| @@ -828,6 +828,7 @@ files: | |
| 828 828 | 
             
            - deliver/lib/deliver/upload_price_tier.rb
         | 
| 829 829 | 
             
            - deliver/lib/deliver/upload_screenshots.rb
         | 
| 830 830 | 
             
            - fastlane/README.md
         | 
| 831 | 
            +
            - fastlane/lib/.DS_Store
         | 
| 831 832 | 
             
            - fastlane/lib/assets/ActionDetails.md.erb
         | 
| 832 833 | 
             
            - fastlane/lib/assets/Actions.md.erb
         | 
| 833 834 | 
             
            - fastlane/lib/assets/AppfileTemplate
         | 
| @@ -845,8 +846,10 @@ files: | |
| 845 846 | 
             
            - fastlane/lib/assets/s3_plist_template.erb
         | 
| 846 847 | 
             
            - fastlane/lib/assets/s3_version_template.erb
         | 
| 847 848 | 
             
            - fastlane/lib/fastlane.rb
         | 
| 849 | 
            +
            - fastlane/lib/fastlane/.DS_Store
         | 
| 848 850 | 
             
            - fastlane/lib/fastlane/action.rb
         | 
| 849 851 | 
             
            - fastlane/lib/fastlane/action_collector.rb
         | 
| 852 | 
            +
            - fastlane/lib/fastlane/actions/.DS_Store
         | 
| 850 853 | 
             
            - fastlane/lib/fastlane/actions/README.md
         | 
| 851 854 | 
             
            - fastlane/lib/fastlane/actions/actions_helper.rb
         | 
| 852 855 | 
             
            - fastlane/lib/fastlane/actions/adb.rb
         | 
| @@ -891,6 +894,8 @@ files: | |
| 891 894 | 
             
            - fastlane/lib/fastlane/actions/deliver.rb
         | 
| 892 895 | 
             
            - fastlane/lib/fastlane/actions/deploygate.rb
         | 
| 893 896 | 
             
            - fastlane/lib/fastlane/actions/device_grid/README.md
         | 
| 897 | 
            +
            - fastlane/lib/fastlane/actions/docs/.DS_Store
         | 
| 898 | 
            +
            - fastlane/lib/fastlane/actions/docs/assets/.DS_Store
         | 
| 894 899 | 
             
            - fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif
         | 
| 895 900 | 
             
            - fastlane/lib/fastlane/actions/docs/assets/MacExample.png
         | 
| 896 901 | 
             
            - fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif
         | 
| @@ -1504,24 +1509,24 @@ metadata: | |
| 1504 1509 | 
             
            post_install_message: 
         | 
| 1505 1510 | 
             
            rdoc_options: []
         | 
| 1506 1511 | 
             
            require_paths:
         | 
| 1507 | 
            -
            -  | 
| 1508 | 
            -
            -  | 
| 1512 | 
            +
            - cert/lib
         | 
| 1513 | 
            +
            - credentials_manager/lib
         | 
| 1514 | 
            +
            - deliver/lib
         | 
| 1515 | 
            +
            - fastlane/lib
         | 
| 1516 | 
            +
            - fastlane_core/lib
         | 
| 1517 | 
            +
            - frameit/lib
         | 
| 1518 | 
            +
            - gym/lib
         | 
| 1509 1519 | 
             
            - match/lib
         | 
| 1520 | 
            +
            - pem/lib
         | 
| 1521 | 
            +
            - pilot/lib
         | 
| 1510 1522 | 
             
            - precheck/lib
         | 
| 1511 | 
            -
            - sigh/lib
         | 
| 1512 1523 | 
             
            - produce/lib
         | 
| 1513 1524 | 
             
            - scan/lib
         | 
| 1514 | 
            -
            -  | 
| 1525 | 
            +
            - screengrab/lib
         | 
| 1526 | 
            +
            - sigh/lib
         | 
| 1515 1527 | 
             
            - snapshot/lib
         | 
| 1516 | 
            -
            - frameit/lib
         | 
| 1517 | 
            -
            - fastlane/lib
         | 
| 1518 | 
            -
            - cert/lib
         | 
| 1519 | 
            -
            - pilot/lib
         | 
| 1520 1528 | 
             
            - spaceship/lib
         | 
| 1521 | 
            -
            -  | 
| 1522 | 
            -
            - deliver/lib
         | 
| 1523 | 
            -
            - fastlane_core/lib
         | 
| 1524 | 
            -
            - pem/lib
         | 
| 1529 | 
            +
            - supply/lib
         | 
| 1525 1530 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 1526 1531 | 
             
              requirements:
         | 
| 1527 1532 | 
             
              - - ">="
         | 
| @@ -1529,14 +1534,15 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 1529 1534 | 
             
                  version: 2.0.0
         | 
| 1530 1535 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 1531 1536 | 
             
              requirements:
         | 
| 1532 | 
            -
              - - " | 
| 1537 | 
            +
              - - ">="
         | 
| 1533 1538 | 
             
                - !ruby/object:Gem::Version
         | 
| 1534 | 
            -
                  version:  | 
| 1539 | 
            +
                  version: '0'
         | 
| 1535 1540 | 
             
            requirements: []
         | 
| 1536 1541 | 
             
            rubyforge_project: 
         | 
| 1537 | 
            -
            rubygems_version: 2. | 
| 1542 | 
            +
            rubygems_version: 2.6.8
         | 
| 1538 1543 | 
             
            signing_key: 
         | 
| 1539 1544 | 
             
            specification_version: 4
         | 
| 1540 1545 | 
             
            summary: The easiest way to automate beta deployments and releases for your iOS and
         | 
| 1541 1546 | 
             
              Android apps
         | 
| 1542 1547 | 
             
            test_files: []
         | 
| 1548 | 
            +
            has_rdoc: 
         |