produce 0.2.1 → 0.3.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/bin/produce +1 -2
- data/lib/produce/config.rb +7 -5
- data/lib/produce/developer_center.rb +24 -38
- data/lib/produce/itunes_connect.rb +4 -1
- data/lib/produce/version.rb +1 -1
- metadata +19 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cdd87fbc197ac08bfa19d4530ea62f6611a24d9f
         | 
| 4 | 
            +
              data.tar.gz: 88863487d9583382d07d1152ff1c955241587b1e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: de9f3100f2ceeddb02a49bb039a99fbe7b20df43deffceb5ecabf977a4dd2a50fc376ff76d97fabd4ca3e8ec14985c0eb04c7974ea6bb22c5004a53fe766a573
         | 
| 7 | 
            +
              data.tar.gz: 243616f71df1b02073ecdf9ae157a108310454ab313a2486e32fa3d8721a50647e1d590d4f773727c2a682edc86b9a85f69ccfe7024df0afe9d79b9142daadd9
         | 
    
        data/bin/produce
    CHANGED
    
    | @@ -4,7 +4,6 @@ $:.push File.expand_path("../../lib", __FILE__) | |
| 4 4 |  | 
| 5 5 | 
             
            require 'produce'
         | 
| 6 6 | 
             
            require 'commander'
         | 
| 7 | 
            -
            require 'credentials_manager/password_manager'
         | 
| 8 7 | 
             
            require 'credentials_manager/appfile_config'
         | 
| 9 8 |  | 
| 10 9 | 
             
            HighLine.track_eof = false
         | 
| @@ -18,7 +17,7 @@ class ProduceApplication | |
| 18 17 | 
             
                program :help, 'Author', 'Felix Krause <produce@krausefx.com>'
         | 
| 19 18 | 
             
                program :help, 'Website', 'https://fastlane.tools'
         | 
| 20 19 | 
             
                program :help, 'GitHub', 'https://github.com/krausefx/produce'
         | 
| 21 | 
            -
                 | 
| 20 | 
            +
                program :help_formatter, :compact
         | 
| 22 21 |  | 
| 23 22 | 
             
                always_trace!
         | 
| 24 23 |  | 
    
        data/lib/produce/config.rb
    CHANGED
    
    | @@ -6,7 +6,8 @@ module Produce | |
| 6 6 | 
             
                  app_name: "App Name: ",
         | 
| 7 7 | 
             
                  version: "Initial version number (e.g. '1.0'): ",
         | 
| 8 8 | 
             
                  sku: "SKU Number (e.g. '1234'): ",
         | 
| 9 | 
            -
                  primary_language: "Primary Language (e.g. 'English', 'German'): "
         | 
| 9 | 
            +
                  primary_language: "Primary Language (e.g. 'English', 'German'): ",
         | 
| 10 | 
            +
                  company_name: "Company name (Leave blank to leave the current one): "
         | 
| 10 11 | 
             
                }
         | 
| 11 12 |  | 
| 12 13 | 
             
                # Left to prevent fastlane from crashing. Should be removed upon version bump.
         | 
| @@ -42,7 +43,7 @@ module Produce | |
| 42 43 | 
             
                        q.validate = lambda { |val| is_valid_language?(val) }
         | 
| 43 44 | 
             
                        q.responses[:not_valid] = "Please enter one of available languages: #{AvailableDefaultLanguages.all_languages}"
         | 
| 44 45 | 
             
                      else
         | 
| 45 | 
            -
                        q.validate = lambda { |val| !val.empty? }
         | 
| 46 | 
            +
                        q.validate = lambda { |val| !val.empty? } unless key == :company_name
         | 
| 46 47 | 
             
                        q.responses[:not_valid] = "#{key.to_s.gsub('_', ' ').capitalize} can't be blank"
         | 
| 47 48 | 
             
                      end
         | 
| 48 49 | 
             
                    end
         | 
| @@ -67,11 +68,12 @@ module Produce | |
| 67 68 | 
             
                    bundle_identifier_suffix: ENV['PRODUCE_APP_IDENTIFIER_SUFFIX'],
         | 
| 68 69 | 
             
                    app_name: ENV['PRODUCE_APP_NAME'],
         | 
| 69 70 | 
             
                    version: ENV['PRODUCE_VERSION'],
         | 
| 70 | 
            -
                    sku: ENV['PRODUCE_SKU'],
         | 
| 71 | 
            +
                    sku: ENV['PRODUCE_SKU'] || Time.now.to_i.to_s,
         | 
| 71 72 | 
             
                    skip_itc: is_truthy?(ENV['PRODUCE_SKIP_ITC']),
         | 
| 72 73 | 
             
                    skip_devcenter: is_truthy?(ENV['PRODUCE_SKIP_DEVCENTER']),
         | 
| 73 74 | 
             
                    team_id: ENV['PRODUCE_TEAM_ID'],
         | 
| 74 | 
            -
                    team_name: ENV['PRODUCE_TEAM_NAME']
         | 
| 75 | 
            +
                    team_name: ENV['PRODUCE_TEAM_NAME'],
         | 
| 76 | 
            +
                    company_name: ENV['PRODUCE_COMPANY_NAME']
         | 
| 75 77 | 
             
                  }
         | 
| 76 78 |  | 
| 77 79 | 
             
                  if ENV['PRODUCE_LANGUAGE']
         | 
| @@ -113,4 +115,4 @@ module Produce | |
| 113 115 | 
             
                end
         | 
| 114 116 |  | 
| 115 117 | 
             
              end
         | 
| 116 | 
            -
            end
         | 
| 118 | 
            +
            end
         | 
| @@ -1,18 +1,18 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require 'spaceship'
         | 
| 2 | 
            +
            require 'babosa'
         | 
| 2 3 |  | 
| 3 4 | 
             
            module Produce
         | 
| 4 | 
            -
              class DeveloperCenter | 
| 5 | 
            -
                APPS_URL = "https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action"
         | 
| 6 | 
            -
                CREATE_APP_URL = "https://developer.apple.com/account/ios/identifiers/bundle/bundleCreate.action"
         | 
| 5 | 
            +
              class DeveloperCenter
         | 
| 7 6 |  | 
| 8 7 | 
             
                def run(config)
         | 
| 9 8 | 
             
                  @config = config
         | 
| 9 | 
            +
                  login
         | 
| 10 10 | 
             
                  create_new_app
         | 
| 11 | 
            -
                rescue => ex
         | 
| 12 | 
            -
                  error_occured(ex)
         | 
| 13 11 | 
             
                end
         | 
| 14 12 |  | 
| 15 13 | 
             
                def create_new_app
         | 
| 14 | 
            +
                  ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
         | 
| 15 | 
            +
             | 
| 16 16 | 
             
                  if app_exists?
         | 
| 17 17 | 
             
                    Helper.log.info "App '#{@config[:app_name]}' already exists, nothing to do on the Dev Center".green
         | 
| 18 18 | 
             
                    ENV["CREATED_NEW_APP_ID"] = nil
         | 
| @@ -20,29 +20,15 @@ module Produce | |
| 20 20 | 
             
                  else
         | 
| 21 21 | 
             
                    app_name = valid_name_for(@config[:app_name])
         | 
| 22 22 | 
             
                    Helper.log.info "Creating new app '#{app_name}' on the Apple Dev Center".green
         | 
| 23 | 
            -
                     | 
| 24 | 
            -
                     | 
| 25 | 
            -
             | 
| 26 | 
            -
                    click_next
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                    sleep 5 # sometimes this takes a while and we don't want to timeout
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                    if all(".form-error").count > 0
         | 
| 31 | 
            -
                      error = all(".form-error").collect { |a| a.text }.join("\n")
         | 
| 32 | 
            -
                      raise error.red
         | 
| 33 | 
            -
                    end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                    wait_for_elements("form[name='bundleSubmit']") # this will show the summary of the given information
         | 
| 36 | 
            -
                    click_next
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                    sleep 5 # sometimes this takes a while and we don't want to timeout
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                    wait_for_elements(".ios.bundles.confirmForm.complete")
         | 
| 41 | 
            -
                    click_on "Done"
         | 
| 23 | 
            +
                    
         | 
| 24 | 
            +
                    app = Spaceship.app.create!(bundle_id: @config[:bundle_identifier].to_s, 
         | 
| 25 | 
            +
                                                     name: app_name)
         | 
| 42 26 |  | 
| 43 | 
            -
                     | 
| 27 | 
            +
                    Helper.log.info "Created app #{app}"
         | 
| 28 | 
            +
                    
         | 
| 29 | 
            +
                    raise "Something went wrong when creating the new app - it's not listed in the apps list" unless app_exists?
         | 
| 44 30 |  | 
| 45 | 
            -
                    ENV["CREATED_NEW_APP_ID"] = Time.now.to_s
         | 
| 31 | 
            +
                    ENV["CREATED_NEW_APP_ID"] = Time.now.to_i.to_s
         | 
| 46 32 |  | 
| 47 33 | 
             
                    Helper.log.info "Finished creating new app '#{app_name}' on the Dev Center".green
         | 
| 48 34 | 
             
                  end
         | 
| @@ -50,22 +36,22 @@ module Produce | |
| 50 36 | 
             
                  return true
         | 
| 51 37 | 
             
                end
         | 
| 52 38 |  | 
| 39 | 
            +
                def valid_name_for(input)
         | 
| 40 | 
            +
                  latinazed = input.to_slug.transliterate.to_s # remove accents
         | 
| 41 | 
            +
                  latinazed.gsub(/[^0-9A-Za-z\d\s]/, '') # remove non-valid characters
         | 
| 42 | 
            +
                end
         | 
| 53 43 |  | 
| 54 44 | 
             
                private
         | 
| 55 45 | 
             
                  def app_exists?
         | 
| 56 | 
            -
                     | 
| 57 | 
            -
             | 
| 58 | 
            -
                    wait_for_elements("td[aria-describedby='grid-table_identifier']").each do |app|
         | 
| 59 | 
            -
                      identifier = app['title']
         | 
| 60 | 
            -
             | 
| 61 | 
            -
                      return true if identifier.to_s == @config[:bundle_identifier].to_s
         | 
| 62 | 
            -
                    end
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                    false
         | 
| 46 | 
            +
                    Spaceship.app.find(@config[:bundle_identifier].to_s) != nil
         | 
| 65 47 | 
             
                  end
         | 
| 66 48 |  | 
| 67 | 
            -
                  def  | 
| 68 | 
            -
                     | 
| 49 | 
            +
                  def login
         | 
| 50 | 
            +
                    user = ENV["CERT_USERNAME"] || ENV["DELIVER_USER"] || CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
         | 
| 51 | 
            +
                    manager = CredentialsManager::PasswordManager.shared_manager(user)
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    Spaceship.login(user, manager.password)
         | 
| 54 | 
            +
                    Spaceship.select_team
         | 
| 69 55 | 
             
                  end
         | 
| 70 56 | 
             
              end
         | 
| 71 57 | 
             
            end
         | 
| @@ -74,11 +74,14 @@ module Produce | |
| 74 74 |  | 
| 75 75 | 
             
                def initial_create
         | 
| 76 76 | 
             
                  open_new_app_popup
         | 
| 77 | 
            -
             | 
| 77 | 
            +
             | 
| 78 78 | 
             
                  # Fill out the initial information
         | 
| 79 79 | 
             
                  wait_for_elements("input[ng-model='createAppDetails.newApp.name.value']").first.set @config[:app_name]
         | 
| 80 80 | 
             
                  wait_for_elements("input[ng-model='createAppDetails.versionString.value']").first.set @config[:version]
         | 
| 81 81 | 
             
                  wait_for_elements("input[ng-model='createAppDetails.newApp.vendorId.value']").first.set @config[:sku]
         | 
| 82 | 
            +
                  if not @config[:company_name].to_s.empty?
         | 
| 83 | 
            +
                    wait_for_elements("input[ng-model='createAppDetails.companyName.value']", true).first.set @config[:company_name]
         | 
| 84 | 
            +
                  end
         | 
| 82 85 |  | 
| 83 86 | 
             
                  all(:xpath, "//option[text()='#{@config[:primary_language]}']").first.select_option
         | 
| 84 87 | 
             
                  wait_for_elements("option[value='#{@config[:bundle_identifier]}']").first.select_option
         | 
    
        data/lib/produce/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: produce
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Felix Krause
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015- | 
| 11 | 
            +
            date: 2015-06-15 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: fastlane_core
         | 
| @@ -16,14 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - '>='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 0. | 
| 19 | 
            +
                    version: 0.7.2
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - '>='
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 0. | 
| 26 | 
            +
                    version: 0.7.2
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: spaceship
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - '>='
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: 0.0.10
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - '>='
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: 0.0.10
         | 
| 27 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 42 | 
             
              name: bundler
         | 
| 29 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -162,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 162 176 | 
             
                  version: '0'
         | 
| 163 177 | 
             
            requirements: []
         | 
| 164 178 | 
             
            rubyforge_project: 
         | 
| 165 | 
            -
            rubygems_version: 2. | 
| 179 | 
            +
            rubygems_version: 2.4.7
         | 
| 166 180 | 
             
            signing_key: 
         | 
| 167 181 | 
             
            specification_version: 4
         | 
| 168 182 | 
             
            summary: Create new iOS apps on iTunes Connect and Dev Portal using the command line
         |