fastlane 2.7.0 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/cert/README.md +1 -1
  4. data/credentials_manager/lib/credentials_manager/appfile_config.rb +1 -1
  5. data/deliver/README.md +1 -1
  6. data/deliver/lib/deliver/options.rb +1 -0
  7. data/fastlane/README.md +1 -1
  8. data/fastlane/lib/fastlane/actions/register_device.rb +99 -0
  9. data/fastlane/lib/fastlane/actions/slack.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/zip.rb +1 -1
  11. data/fastlane/lib/fastlane/lane_manager.rb +7 -4
  12. data/fastlane/lib/fastlane/version.rb +1 -1
  13. data/fastlane_core/README.md +1 -1
  14. data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
  15. data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
  16. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  17. data/frameit/README.md +1 -1
  18. data/frameit/lib/frameit/screenshot.rb +1 -1
  19. data/gym/README.md +1 -1
  20. data/gym/lib/assets/package_application_patches/0002_no_strict_parameter_patch.diff +1 -1
  21. data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +1 -1
  22. data/gym/lib/gym/generators/package_command_generator.rb +1 -1
  23. data/gym/lib/gym/generators/package_command_generator_legacy.rb +1 -1
  24. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +1 -1
  25. data/gym/lib/gym/xcodebuild_fixes/swift_fix.rb +1 -1
  26. data/match/README.md +1 -1
  27. data/pem/README.md +1 -1
  28. data/pilot/README.md +1 -1
  29. data/produce/README.md +1 -1
  30. data/produce/lib/produce/developer_center.rb +30 -0
  31. data/produce/lib/produce/options.rb +16 -0
  32. data/scan/README.md +1 -1
  33. data/screengrab/README.md +2 -2
  34. data/sigh/README.md +1 -1
  35. data/snapshot/README.md +1 -1
  36. data/spaceship/README.md +1 -1
  37. data/spaceship/lib/spaceship/portal/app.rb +2 -2
  38. data/spaceship/lib/spaceship/portal/portal_client.rb +4 -3
  39. data/supply/README.md +1 -1
  40. metadata +4 -7
  41. data/fastlane/lib/.DS_Store +0 -0
  42. data/fastlane/lib/fastlane/.DS_Store +0 -0
  43. data/fastlane/lib/fastlane/actions/.DS_Store +0 -0
  44. data/match/lib/.DS_Store +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 807ab696886b26b22e27a6c0d5650b22bfc0cbd0
4
- data.tar.gz: c4795c30d5084f137482dc494386c358e95d2ec0
3
+ metadata.gz: a01f86153968aa09f75cf08ab2e3547cfe4dbaa7
4
+ data.tar.gz: b61fd005bfba0b24cb996622d771b33f0602db09
5
5
  SHA512:
6
- metadata.gz: f34da0506145ec8a74198c557f9759b4cab7331ff4f4fcdb411e499d58f726ae3264a7f7cce3ce6880a663e8e754e8fd4cfddbf1b30934412fcad096990f9ba2
7
- data.tar.gz: 9e40712f3b21d2353609963c834c0943e294a1cfe06fd0237546151e8338e10b4ea87e2be83884ce554a1d2f3d2cf07a5fc5820c94e75b9fd8f94d7a492c4f5e
6
+ metadata.gz: cb871e3db897643d058a8516a7de6ca83736ef91a0413ca777759c7f0aa843bdb5669d6607dfbe849c54ad4ef6c3e890ce54582321cb3cf22013df2c0c229ada
7
+ data.tar.gz: bb156b36b1cd1b065e3671cb4939279fa7eb13bd23c4debf69116dab460d06ae6770209896183a5324489fcde0c890385d29d9cbef2ac9cb6418ed34bc162144
data/README.md CHANGED
@@ -7,7 +7,7 @@ fastlane
7
7
 
8
8
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
9
9
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/LICENSE)
10
- [![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](http://rubygems.org/gems/fastlane)
10
+ [![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](https://rubygems.org/gems/fastlane)
11
11
  [![Build Status](https://img.shields.io/circleci/project/fastlane/fastlane/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
12
12
 
13
13
  #### ✨ Check out [docs.fastlane.tools](https://docs.fastlane.tools) on how to get started with fastlane ✨
@@ -31,7 +31,7 @@ cert
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/fastlanetools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/cert/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/cert.svg?style=flat)](http://rubygems.org/gems/cert)
34
+ [![Gem](https://img.shields.io/gem/v/cert.svg?style=flat)](https://rubygems.org/gems/cert)
35
35
 
36
36
  ###### Automatically create and maintain iOS code signing certificates.
37
37
 
@@ -73,7 +73,7 @@ module CredentialsManager
73
73
  end
74
74
 
75
75
  def fallback_to_default_values
76
- data[:apple_id] ||= ENV["FASTLANE_USER"] || ENV["DELIVER_USER"]
76
+ data[:apple_id] ||= ENV["FASTLANE_USER"] || ENV["DELIVER_USER"] || ENV["DELIVER_USERNAME"]
77
77
  end
78
78
 
79
79
  def data
@@ -31,7 +31,7 @@ deliver
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/deliver/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/deliver.svg?style=flat)](http://rubygems.org/gems/deliver)
34
+ [![Gem](https://img.shields.io/gem/v/deliver.svg?style=flat)](https://rubygems.org/gems/deliver)
35
35
 
36
36
  ###### Upload screenshots, metadata and your app to the App Store using a single command
37
37
 
@@ -6,6 +6,7 @@ module Deliver
6
6
  def self.available_options
7
7
  user = CredentialsManager::AppfileConfig.try_fetch_value(:itunes_connect_id)
8
8
  user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
9
+ user ||= ENV["DELIVER_USER"]
9
10
 
10
11
  [
11
12
  FastlaneCore::ConfigItem.new(key: :username,
@@ -23,7 +23,7 @@ fastlane
23
23
 
24
24
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
25
25
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/fastlane/LICENSE)
26
- [![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](http://rubygems.org/gems/fastlane)
26
+ [![Gem](https://img.shields.io/gem/v/fastlane.svg?style=flat)](https://rubygems.org/gems/fastlane)
27
27
 
28
28
  ######*fastlane* lets you define and run your deployment pipelines for different environments. It helps you unify your apps release process and automate the whole process. fastlane connects all fastlane tools and third party tools, like [CocoaPods](https://cocoapods.org/) and [Slack](https://slack.com).
29
29
 
@@ -0,0 +1,99 @@
1
+ require 'credentials_manager'
2
+
3
+ module Fastlane
4
+ module Actions
5
+ class RegisterDeviceAction < Action
6
+ UDID_REGEXP = /^\h{40}$/
7
+
8
+ def self.is_supported?(platform)
9
+ platform == :ios
10
+ end
11
+
12
+ def self.run(params)
13
+ require 'spaceship'
14
+
15
+ name = params[:name]
16
+ udid = params[:udid]
17
+
18
+ credentials = CredentialsManager::AccountManager.new(user: params[:username])
19
+ Spaceship.login(credentials.user, credentials.password)
20
+ Spaceship.select_team
21
+
22
+ UI.user_error!("Passed invalid UDID: #{udid} for device: #{name}") unless UDID_REGEXP =~ udid
23
+ Spaceship::Device.create!(name: name, udid: udid)
24
+
25
+ UI.success("Successfully registered new device")
26
+ return udid
27
+ end
28
+
29
+ def self.description
30
+ "Registers a new device to the Apple Dev Portal"
31
+ end
32
+
33
+ def self.available_options
34
+ user = CredentialsManager::AppfileConfig.try_fetch_value(:apple_dev_portal_id)
35
+ user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
36
+
37
+ [
38
+ FastlaneCore::ConfigItem.new(key: :name,
39
+ env_name: "FL_REGISTER_DEVICE_NAME",
40
+ description: "Provide the name of the device to register as"),
41
+ FastlaneCore::ConfigItem.new(key: :udid,
42
+ env_name: "FL_REGISTER_DEVICE_UDID",
43
+ description: "Provide the UDID of the device to register as"),
44
+ FastlaneCore::ConfigItem.new(key: :team_id,
45
+ env_name: "REGISTER_DEVICE_TEAM_ID",
46
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
47
+ description: "The ID of your Developer Portal team if you're in multiple teams",
48
+ optional: true,
49
+ verify_block: proc do |value|
50
+ ENV["FASTLANE_TEAM_ID"] = value.to_s
51
+ end),
52
+ FastlaneCore::ConfigItem.new(key: :team_name,
53
+ env_name: "REGISTER_DEVICE_TEAM_NAME",
54
+ description: "The name of your Developer Portal team if you're in multiple teams",
55
+ optional: true,
56
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_name),
57
+ verify_block: proc do |value|
58
+ ENV["FASTLANE_TEAM_NAME"] = value.to_s
59
+ end),
60
+ FastlaneCore::ConfigItem.new(key: :username,
61
+ env_name: "DELIVER_USER",
62
+ description: "Optional: Your Apple ID",
63
+ default_value: user)
64
+ ]
65
+ end
66
+
67
+ def self.details
68
+ [
69
+ "This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles.",
70
+ "This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center.",
71
+ "The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `username` option."
72
+ ].join("\n")
73
+ end
74
+
75
+ def self.author
76
+ "pvinis"
77
+ end
78
+
79
+ def self.example_code
80
+ [
81
+ 'register_device(
82
+ name: "Luka iPhone 6",
83
+ udid: "1234567890123456789012345678901234567890"
84
+ ) # Simply provide the name and udid of the device',
85
+ 'register_device(
86
+ name: "Luka iPhone 6",
87
+ udid: "1234567890123456789012345678901234567890",
88
+ team_id: "XXXXXXXXXX", # Optional, if you"re a member of multiple teams, then you need to pass the team ID here.
89
+ username: "luka@goonbee.com" # Optional, lets you override the Apple Member Center username.
90
+ )'
91
+ ]
92
+ end
93
+
94
+ def self.category
95
+ :code_signing
96
+ end
97
+ end
98
+ end
99
+ end
@@ -230,7 +230,7 @@ module Fastlane
230
230
  deep_merge(slack_attachment, options[:attachment_properties])
231
231
  end
232
232
 
233
- # Adapted from http://stackoverflow.com/a/30225093/158525
233
+ # Adapted from https://stackoverflow.com/a/30225093/158525
234
234
  def self.deep_merge(a, b)
235
235
  merger = proc do |key, v1, v2|
236
236
  Hash === v1 && Hash === v2 ?
@@ -56,7 +56,7 @@ module Fastlane
56
56
  )',
57
57
  'zip(
58
58
  path: "MyApp.app",
59
- output_path: "Latest.app.zip"
59
+ output_path: "Latest.app.zip",
60
60
  verbose: false
61
61
  )'
62
62
  ]
@@ -162,25 +162,28 @@ module Fastlane
162
162
  end
163
163
 
164
164
  def self.load_dot_env(env)
165
- return if Dir.glob("**/*.env*", File::FNM_DOTMATCH).count == 0
165
+ base_path = FastlaneCore::FastlaneFolder.path || '.'
166
+ return if Dir.glob(File.join(base_path, '*.env*'), File::FNM_DOTMATCH).count == 0
166
167
  require 'dotenv'
167
168
 
168
169
  Actions.lane_context[Actions::SharedValues::ENVIRONMENT] = env if env
169
170
 
170
171
  # Making sure the default '.env' and '.env.default' get loaded
171
- env_file = File.join(FastlaneCore::FastlaneFolder.path || "", '.env')
172
- env_default_file = File.join(FastlaneCore::FastlaneFolder.path || "", '.env.default')
172
+ env_file = File.join(base_path, '.env')
173
+ env_default_file = File.join(base_path, '.env.default')
173
174
  Dotenv.load(env_file, env_default_file)
174
175
 
175
176
  # Loads .env file for the environment passed in through options
176
177
  if env
177
- env_file = File.join(FastlaneCore::FastlaneFolder.path || "", ".env.#{env}")
178
+ env_file = File.join(base_path, ".env.#{env}")
178
179
  UI.success "Loading from '#{env_file}'"
179
180
  Dotenv.overload(env_file)
180
181
  end
181
182
  end
182
183
 
183
184
  def self.print_lane_context
185
+ return if Actions.lane_context.empty?
186
+
184
187
  if $verbose
185
188
  UI.important 'Lane Context:'.yellow
186
189
  UI.message Actions.lane_context
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.7.0'.freeze
2
+ VERSION = '2.8.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -27,7 +27,7 @@ FastlaneCore
27
27
 
28
28
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
29
29
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/fastlane_core/LICENSE)
30
- [![Gem](https://img.shields.io/gem/v/fastlane_core.svg?style=flat)](http://rubygems.org/gems/fastlane_core)
30
+ [![Gem](https://img.shields.io/gem/v/fastlane_core.svg?style=flat)](https://rubygems.org/gems/fastlane_core)
31
31
 
32
32
  All shared code of the fastlane tools is stored in this repository.
33
33
 
@@ -24,8 +24,8 @@ module FastlaneCore
24
24
  UI.error([
25
25
  "There are no local code signing identities found.",
26
26
  "You can run `security find-identity -v -p codesigning` to get this output.",
27
- "This Stack Overflow thread has more information: http://stackoverflow.com/q/35390072/774.",
28
- "(Check in Keychain Access for an expired WWDR certificate: http://stackoverflow.com/a/35409835/774 has more info.)"
27
+ "This Stack Overflow thread has more information: https://stackoverflow.com/q/35390072/774.",
28
+ "(Check in Keychain Access for an expired WWDR certificate: https://stackoverflow.com/a/35409835/774 has more info.)"
29
29
  ].join(' '))
30
30
  end
31
31
 
@@ -7,7 +7,7 @@ module FastlaneCore
7
7
  #
8
8
  # which('ruby') #=> /usr/bin/ruby
9
9
  #
10
- # Derived from http://stackoverflow.com/a/5471032/3005
10
+ # Derived from https://stackoverflow.com/a/5471032/3005
11
11
  def which(cmd)
12
12
  # PATHEXT contains the list of file extensions that Windows considers executable, semicolon separated.
13
13
  # e.g. ".COM;.EXE;.BAT;.CMD"
@@ -71,7 +71,7 @@ module FastlaneCore
71
71
  end
72
72
 
73
73
  def self.windows?
74
- # taken from: http://stackoverflow.com/a/171011/1945875
74
+ # taken from: https://stackoverflow.com/a/171011/1945875
75
75
  (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
76
76
  end
77
77
 
@@ -31,7 +31,7 @@ frameit
31
31
 
32
32
  [![Twitter: @KauseFx](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/frameit/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/frameit.svg?style=flat)](http://rubygems.org/gems/frameit)
34
+ [![Gem](https://img.shields.io/gem/v/frameit.svg?style=flat)](https://rubygems.org/gems/frameit)
35
35
 
36
36
  ###### Quickly put your screenshots into the right device frames
37
37
 
@@ -60,7 +60,7 @@ module Frameit
60
60
  end
61
61
 
62
62
  def mac?
63
- return device_name == 'Mac'
63
+ return device_name == 'MacBook'
64
64
  end
65
65
 
66
66
  # The name of the orientation of a screenshot. Used to find the correct template
@@ -31,7 +31,7 @@ gym
31
31
 
32
32
  [![Twitter: @KauseFx](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/gym/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/gym.svg?style=flat)](http://rubygems.org/gems/gym)
34
+ [![Gem](https://img.shields.io/gem/v/gym.svg?style=flat)](https://rubygems.org/gems/gym)
35
35
 
36
36
  ###### Building your app has never been easier
37
37
 
@@ -9,7 +9,7 @@ will be fixed). To workaround the problem, please save a copy and modify
9
9
  PackageApplication to pass “—no-strict” to codesign, you can locate PackageApplication
10
10
  by running the following:- xcrun -sdk iphoneos -f PackageApplication
11
11
 
12
- See http://stackoverflow.com/questions/26008449/xcodebuild-codesign-vvvv-saysresource-envelope-is-obsolete
12
+ See https://stackoverflow.com/questions/26008449/xcodebuild-codesign-vvvv-saysresource-envelope-is-obsolete
13
13
 
14
14
  ---
15
15
  PackageApplication4Gym | 4 ++--
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash --login
2
2
 
3
- # Originally from, http://stackoverflow.com/questions/33041109
3
+ # Originally from, https://stackoverflow.com/questions/33041109
4
4
  # Modified to work in RVM and non RVM environments
5
5
  #
6
6
  # Xcode 7 (incl. 7.0.1) seems to have a dependency on the system ruby.
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- # from http://stackoverflow.com/a/9857493/445598
2
+ # from https://stackoverflow.com/a/9857493/445598
3
3
  # because of
4
4
  # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
5
5
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- # from http://stackoverflow.com/a/9857493/445598
2
+ # from https://stackoverflow.com/a/9857493/445598
3
3
  # because of
4
4
  # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
5
5
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- # from http://stackoverflow.com/a/9857493/445598
2
+ # from https://stackoverflow.com/a/9857493/445598
3
3
  # because of
4
4
  # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
5
5
 
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- # from http://stackoverflow.com/a/9857493/445598
2
+ # from https://stackoverflow.com/a/9857493/445598
3
3
  # because of
4
4
  # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
5
5
  require 'zip'
@@ -31,7 +31,7 @@ match
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/match/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/match.svg?style=flat)](http://rubygems.org/gems/match)
34
+ [![Gem](https://img.shields.io/gem/v/match.svg?style=flat)](https://rubygems.org/gems/match)
35
35
 
36
36
  ###### Easily sync your certificates and profiles across your team using git
37
37
 
@@ -31,7 +31,7 @@ pem
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/pem/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/pem.svg?style=flat)](http://rubygems.org/gems/pem)
34
+ [![Gem](https://img.shields.io/gem/v/pem.svg?style=flat)](https://rubygems.org/gems/pem)
35
35
 
36
36
  ###### Automatically generate and renew your push notification profiles
37
37
 
@@ -30,7 +30,7 @@ Pilot
30
30
  ============
31
31
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
32
32
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/pilot/LICENSE)
33
- [![Gem](https://img.shields.io/gem/v/pilot.svg?style=flat)](http://rubygems.org/gems/pilot)
33
+ [![Gem](https://img.shields.io/gem/v/pilot.svg?style=flat)](https://rubygems.org/gems/pilot)
34
34
 
35
35
 
36
36
  ###### The best way to manage your TestFlight testers and builds from your terminal
@@ -31,7 +31,7 @@ produce
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/produce/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/produce.svg?style=flat)](http://rubygems.org/gems/produce)
34
+ [![Gem](https://img.shields.io/gem/v/produce.svg?style=flat)](https://rubygems.org/gems/produce)
35
35
 
36
36
  ###### Create new iOS apps on iTunes Connect and Dev Portal using your command line
37
37
 
@@ -18,8 +18,38 @@ module Produce
18
18
  app_name = Produce.config[:app_name]
19
19
  UI.message "Creating new app '#{app_name}' on the Apple Dev Center"
20
20
 
21
+ app_service = Spaceship.app_service
22
+ enabled_clean_options = {}
23
+ Produce.config[:enabled_features].each do |k, v|
24
+ if k == :data_protection
25
+ case v
26
+ when "complete"
27
+ enabled_clean_options[app_service.data_protection.complete.service_id] = app_service.data_protection.complete.on
28
+ when "unlessopen"
29
+ enabled_clean_options[app_service.data_protection.unlessopen.service_id] = app_service.data_protection.unlessopen.on
30
+ when "untilfirstauth"
31
+ enabled_clean_options[app_service.data_protection.untilfirstauth.service_id] = app_service.data_protection.untilfirstauth.on
32
+ end
33
+ elsif k == :icloud
34
+ case v
35
+ when "legacy"
36
+ enabled_clean_options[app_service.icloud.on.service_id] = app_service.icloud.on
37
+ enabled_clean_options[app_service.cloud_kit.xcode5_compatible.service_id] = app_service.cloud_kit.xcode5_compatible
38
+ when "cloudkit"
39
+ enabled_clean_options[app_service.icloud.on.service_id] = app_service.icloud.on
40
+ enabled_clean_options[app_service.cloud_kit.cloud_kit.service_id] = app_service.cloud_kit.cloud_kit
41
+ end
42
+ else
43
+ if v == "on"
44
+ enabled_clean_options[app_service.send(k.to_s).on.service_id] = app_service.send(k.to_s).on
45
+ else
46
+ enabled_clean_options[app_service.send(k.to_s).off.service_id] = app_service.send(k.to_s).off
47
+ end
48
+ end
49
+ end
21
50
  app = Spaceship.app.create!(bundle_id: app_identifier,
22
51
  name: app_name,
52
+ enabled_features: enabled_clean_options,
23
53
  mac: Produce.config[:platform] == "osx")
24
54
 
25
55
  if app.name != Produce.config[:app_name]
@@ -65,6 +65,22 @@ module Produce
65
65
  description: "Skip the creation of the app on iTunes Connect",
66
66
  is_string: false,
67
67
  default_value: false),
68
+
69
+ FastlaneCore::ConfigItem.new(key: :enabled_features,
70
+ short_option: "-P",
71
+ env_name: "PRODUCE_ENABLED_FEATURES",
72
+ description: "Array with Spaceship App Features",
73
+ is_string: false,
74
+ default_value: {},
75
+ verify_block: proc do |value|
76
+ allowed_keys = [:app_group, :apple_pay, :associated_domains, :data_protection, :game_center, :health_kit, :home_kit,
77
+ :wireless_accessory, :icloud, :in_app_purchase, :inter_app_audio, :passbook, :push_notification, :siri_kit, :vpn_configuration]
78
+ UI.user_error!("enabled_features has to be of type Hash") unless value.kind_of?(Hash)
79
+ value.each do |key, v|
80
+ UI.user_error!("The key: '#{key}' is not supported in `enabled_features' - following keys are available: [#{allowed_keys.join(',')}]") unless allowed_keys.include? key.to_sym
81
+ end
82
+ end),
83
+
68
84
  FastlaneCore::ConfigItem.new(key: :skip_devcenter,
69
85
  short_option: "-d",
70
86
  env_name: "PRODUCE_SKIP_DEVCENTER",
@@ -31,7 +31,7 @@ scan
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/scan/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/scan.svg?style=flat)](http://rubygems.org/gems/scan)
34
+ [![Gem](https://img.shields.io/gem/v/scan.svg?style=flat)](https://rubygems.org/gems/scan)
35
35
 
36
36
  ###### The easiest way to run tests of your iOS and Mac app
37
37
 
@@ -31,7 +31,7 @@ screengrab
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/screengrab/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/screengrab.svg?style=flat)](http://rubygems.org/gems/screengrab)
34
+ [![Gem](https://img.shields.io/gem/v/screengrab.svg?style=flat)](https://rubygems.org/gems/screengrab)
35
35
 
36
36
  ###### Automated localized screenshots of your Android app on every device
37
37
 
@@ -58,7 +58,7 @@ sudo gem install fastlane
58
58
  androidTestCompile 'tools.fastlane:screengrab:x.x.x'
59
59
  ```
60
60
 
61
- The latest version can be determined by visiting the [screengrab RubyGems page](https://rubygems.org/gems/screengrab)
61
+ The latest version is [ ![Download](https://api.bintray.com/packages/fastlane/fastlane/screengrab/images/download.svg) ](https://bintray.com/fastlane/fastlane/screengrab/_latestVersion)
62
62
 
63
63
  ##### Configuring your Manifest Permissions
64
64
  Ensure that the following permissions exist in your **src/debug/AndroidManifest.xml**
@@ -31,7 +31,7 @@ sigh
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/sigh/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/sigh.svg?style=flat)](http://rubygems.org/gems/sigh)
34
+ [![Gem](https://img.shields.io/gem/v/sigh.svg?style=flat)](https://rubygems.org/gems/sigh)
35
35
 
36
36
  ###### Because you would rather spend your time building stuff than fighting provisioning
37
37
 
@@ -31,7 +31,7 @@ snapshot
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/snapshot/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/snapshot.svg?style=flat)](http://rubygems.org/gems/snapshot)
34
+ [![Gem](https://img.shields.io/gem/v/snapshot.svg?style=flat)](https://rubygems.org/gems/snapshot)
35
35
 
36
36
  ###### Automate taking localized screenshots of your iOS and tvOS apps on every device
37
37
 
@@ -29,7 +29,7 @@
29
29
 
30
30
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
31
31
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/spaceship/LICENSE)
32
- [![Gem](https://img.shields.io/gem/v/spaceship.svg?style=flat)](http://rubygems.org/gems/spaceship)
32
+ [![Gem](https://img.shields.io/gem/v/spaceship.svg?style=flat)](https://rubygems.org/gems/spaceship)
33
33
 
34
34
  `spaceship` exposes both the Apple Developer Center and the iTunes Connect API. This fast and powerful API powers parts of fastlane, and can be leveraged for more advanced fastlane features. Scripting your Developer Center workflow has never been easier!
35
35
 
@@ -87,14 +87,14 @@ module Spaceship
87
87
  # @param name [String] the name of the App
88
88
  # @param mac [Bool] is this a Mac app?
89
89
  # @return (App) The app you just created
90
- def create!(bundle_id: nil, name: nil, mac: false)
90
+ def create!(bundle_id: nil, name: nil, mac: false, enabled_features: {})
91
91
  if bundle_id.end_with?('*')
92
92
  type = :wildcard
93
93
  else
94
94
  type = :explicit
95
95
  end
96
96
 
97
- new_app = client.create_app!(type, name, bundle_id, mac: mac)
97
+ new_app = client.create_app!(type, name, bundle_id, mac: mac, enabled_features: enabled_features)
98
98
  self.new(new_app)
99
99
  end
100
100
 
@@ -144,7 +144,7 @@ module Spaceship
144
144
  latinized
145
145
  end
146
146
 
147
- def create_app!(type, name, bundle_id, mac: false)
147
+ def create_app!(type, name, bundle_id, mac: false, enabled_features: {})
148
148
  # We moved the ensure_csrf to the top of this method
149
149
  # as we got some users with issues around creating new apps
150
150
  # https://github.com/fastlane/fastlane/issues/5813
@@ -170,9 +170,10 @@ module Spaceship
170
170
  name: valid_name_for(name),
171
171
  teamId: team_id
172
172
  }
173
-
174
173
  params.merge!(ident_params)
175
-
174
+ enabled_features.each do |k, v|
175
+ params[v.service_id.to_sym] = v.value
176
+ end
176
177
  r = request(:post, "account/#{platform_slug(mac)}/identifiers/addAppId.action", params)
177
178
  parse_response(r, 'appId')
178
179
  end
@@ -31,7 +31,7 @@ supply
31
31
 
32
32
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
33
  [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/supply/LICENSE)
34
- [![Gem](https://img.shields.io/gem/v/supply.svg?style=flat)](http://rubygems.org/gems/supply)
34
+ [![Gem](https://img.shields.io/gem/v/supply.svg?style=flat)](https://rubygems.org/gems/supply)
35
35
 
36
36
  ###### Command line tool for updating Android apps and their metadata on the Google Play Store
37
37
 
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.7.0
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-01-09 00:00:00.000000000 Z
17
+ date: 2017-01-12 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: slack-notifier
@@ -733,7 +733,6 @@ files:
733
733
  - deliver/lib/deliver/upload_price_tier.rb
734
734
  - deliver/lib/deliver/upload_screenshots.rb
735
735
  - fastlane/README.md
736
- - fastlane/lib/.DS_Store
737
736
  - fastlane/lib/assets/Actions.md.erb
738
737
  - fastlane/lib/assets/AppfileTemplate
739
738
  - fastlane/lib/assets/AppfileTemplateAndroid
@@ -750,10 +749,8 @@ files:
750
749
  - fastlane/lib/assets/s3_plist_template.erb
751
750
  - fastlane/lib/assets/s3_version_template.erb
752
751
  - fastlane/lib/fastlane.rb
753
- - fastlane/lib/fastlane/.DS_Store
754
752
  - fastlane/lib/fastlane/action.rb
755
753
  - fastlane/lib/fastlane/action_collector.rb
756
- - fastlane/lib/fastlane/actions/.DS_Store
757
754
  - fastlane/lib/fastlane/actions/README.md
758
755
  - fastlane/lib/fastlane/actions/actions_helper.rb
759
756
  - fastlane/lib/fastlane/actions/adb.rb
@@ -867,6 +864,7 @@ files:
867
864
  - fastlane/lib/fastlane/actions/puts.rb
868
865
  - fastlane/lib/fastlane/actions/read_podspec.rb
869
866
  - fastlane/lib/fastlane/actions/recreate_schemes.rb
867
+ - fastlane/lib/fastlane/actions/register_device.rb
870
868
  - fastlane/lib/fastlane/actions/register_devices.rb
871
869
  - fastlane/lib/fastlane/actions/reset_git_repo.rb
872
870
  - fastlane/lib/fastlane/actions/reset_simulator_contents.rb
@@ -1082,7 +1080,6 @@ files:
1082
1080
  - gym/lib/gym/xcodebuild_fixes/watchkit2_fix.rb
1083
1081
  - gym/lib/gym/xcodebuild_fixes/watchkit_fix.rb
1084
1082
  - match/README.md
1085
- - match/lib/.DS_Store
1086
1083
  - match/lib/assets/MatchfileTemplate
1087
1084
  - match/lib/assets/READMETemplate.md
1088
1085
  - match/lib/match.rb
@@ -1288,7 +1285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1288
1285
  version: '0'
1289
1286
  requirements: []
1290
1287
  rubyforge_project:
1291
- rubygems_version: 2.6.8
1288
+ rubygems_version: 2.5.1
1292
1289
  signing_key:
1293
1290
  specification_version: 4
1294
1291
  summary: The easiest way to automate beta deployments and releases for your iOS and
Binary file
Binary file