gym 1.4.0 → 1.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbcb824805c7ee57886bb0a000719352b185e540
4
- data.tar.gz: 8a61ea32da66fd658dd42fd19af16b8ff869ca7c
3
+ metadata.gz: 9fe3879a8123332988ecd29815ef12bbedb1d59a
4
+ data.tar.gz: bdf77254d90621d1fe30917b8d9d90a5cdbfbc9b
5
5
  SHA512:
6
- metadata.gz: 4a833a0ddf354e75da612a6a834e2aa08346901af5b556faf8db5117fa693d693964cd7ff197915504e134f9e8222aff7f8ce8b5f94f4ae52dc39bbdd0097451
7
- data.tar.gz: 6c3471f5ae11c9e5dfedbea0e9834d374a4730bda2e29f080d49544ba363fc0e704a5147affec28b0a3530d1584a775ba81c8e421012165d42cdb6d2f0537b54
6
+ metadata.gz: eb81ff95220d37fd96a521822a0b93cd3f33bcb708f44bd74e942daaf659e5bac5abf816b6af5cade11160c354a9fe8af7726b9e30261effe051ab3ca0ea64e6
7
+ data.tar.gz: d6dc93ddea1e7d0b9a203c93b8c10cd5578347fc8b0a6b73c452142071bf92dfeac2e51f5df423d2f67808e4b3143c900715d2540ff892d521fda93657655667
data/README.md CHANGED
@@ -253,6 +253,9 @@ Download and install the [Provisioning Plugin](https://github.com/chockenberry/P
253
253
  # Need help?
254
254
  Please submit an issue on GitHub and provide information about your setup
255
255
 
256
+ # Code of Conduct
257
+ Help us keep `gym` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
258
+
256
259
  # License
257
260
  This project is licensed under the terms of the MIT license. See the LICENSE file.
258
261
 
@@ -6,6 +6,7 @@ HighLine.track_eof = false
6
6
  module Gym
7
7
  class CommandsGenerator
8
8
  include Commander::Methods
9
+ UI = FastlaneCore::UI
9
10
 
10
11
  FastlaneCore::CommanderGenerator.new.generate(Gym::Options.available_options)
11
12
 
@@ -48,7 +49,7 @@ module Gym
48
49
  c.action do |_args, options|
49
50
  containing = (File.directory?("fastlane") ? 'fastlane' : '.')
50
51
  path = File.join(containing, Gym.gymfile_name)
51
- raise "Gymfile already exists".yellow if File.exist?(path)
52
+ UI.user_error! "Gymfile already exists" if File.exist?(path)
52
53
  template = File.read("#{Helper.gem_path('gym')}/lib/assets/GymfileTemplate")
53
54
  File.write(path, template)
54
55
  UI.success "Successfully created '#{path}'. Open the file using a code editor."
@@ -42,7 +42,7 @@ module Gym
42
42
  if profiles.count == 1
43
43
  profile = File.expand_path(profiles.last)
44
44
  elsif profiles.count > 1
45
- puts "Found more than one provisioning profile in the project directory:"
45
+ UI.message "Found more than one provisioning profile in the project directory:"
46
46
  profile = choose(*(profiles))
47
47
  end
48
48
 
@@ -62,7 +62,13 @@ module Gym
62
62
  # Is it an iOS device or a Mac?
63
63
  def self.detect_platform
64
64
  return if Gym.config[:destination]
65
- platform = Gym.project.mac? ? "OS X" : "iOS" # either `iOS` or `OS X`
65
+ platform = if Gym.project.mac?
66
+ "OS X"
67
+ elsif Gym.project.tvos?
68
+ "tvOS"
69
+ else
70
+ "iOS"
71
+ end
66
72
 
67
73
  Gym.config[:destination] = "generic/platform=#{platform}"
68
74
  end
@@ -99,7 +99,7 @@ module Gym
99
99
  print "For more information visit https://developer.apple.com/library/ios/technotes/tn2215/_index.html"
100
100
  print "Also, make sure to have a valid code signing identity and provisioning profile installed"
101
101
  print "Follow this guide to setup code signing https://github.com/fastlane/fastlane/blob/master/docs/CodeSigning.md"
102
- raise "Archive invalid"
102
+ UI.user_error!("Archive invalid")
103
103
  end
104
104
 
105
105
  def find_standard_output_path(output)
@@ -1,3 +1,5 @@
1
+ require 'shellwords'
2
+
1
3
  module Gym
2
4
  # Responsible for building the fully working xcodebuild command
3
5
  class BuildCommandGenerator
@@ -23,7 +25,7 @@ module Gym
23
25
  def project_path_array
24
26
  proj = Gym.project.xcodebuild_parameters
25
27
  return proj if proj.count > 0
26
- raise "No project/workspace found"
28
+ UI.user_error!("No project/workspace found")
27
29
  end
28
30
 
29
31
  def options
@@ -36,6 +38,8 @@ module Gym
36
38
  options << "-destination '#{config[:destination]}'" if config[:destination]
37
39
  options << "-xcconfig '#{config[:xcconfig]}'" if config[:xcconfig]
38
40
  options << "-archivePath '#{archive_path}'"
41
+ options << "-derivedDataPath '#{config[:derived_data_path]}'" if config[:derived_data_path]
42
+ options << "-resultBundlePath '#{result_bundle_path}'" if config[:result_bundle]
39
43
  options << config[:xcargs] if config[:xcargs]
40
44
 
41
45
  options
@@ -59,7 +63,7 @@ module Gym
59
63
 
60
64
  def pipe
61
65
  pipe = []
62
- pipe << "| tee '#{xcodebuild_log_path}' | xcpretty"
66
+ pipe << "| tee #{xcodebuild_log_path.shellescape} | xcpretty"
63
67
  pipe << "--no-color" if Helper.colors_disabled?
64
68
  pipe << "> /dev/null" if Gym.config[:suppress_xcode_output]
65
69
 
@@ -97,6 +101,13 @@ module Gym
97
101
  end
98
102
  return Gym.cache[:archive_path]
99
103
  end
104
+
105
+ def result_bundle_path
106
+ unless Gym.cache[:result_bundle_path]
107
+ Gym.cache[:result_bundle_path] = File.join(Gym.config[:output_directory], Gym.config[:output_name]) + ".result"
108
+ end
109
+ return Gym.cache[:result_bundle_path]
110
+ end
100
111
  end
101
112
  end
102
113
  end
@@ -18,9 +18,9 @@ module Gym
18
18
  description: "Path the workspace file",
19
19
  verify_block: proc do |value|
20
20
  v = File.expand_path(value.to_s)
21
- raise "Workspace file not found at path '#{v}'".red unless File.exist?(v)
22
- raise "Workspace file invalid".red unless File.directory?(v)
23
- raise "Workspace file is not a workspace, must end with .xcworkspace".red unless v.include?(".xcworkspace")
21
+ UI.user_error!("Workspace file not found at path '#{v}'") unless File.exist?(v)
22
+ UI.user_error!("Workspace file invalid") unless File.directory?(v)
23
+ UI.user_error!("Workspace file is not a workspace, must end with .xcworkspace") unless v.include?(".xcworkspace")
24
24
  end),
25
25
  FastlaneCore::ConfigItem.new(key: :project,
26
26
  short_option: "-p",
@@ -29,9 +29,9 @@ module Gym
29
29
  description: "Path the project file",
30
30
  verify_block: proc do |value|
31
31
  v = File.expand_path(value.to_s)
32
- raise "Project file not found at path '#{v}'".red unless File.exist?(v)
33
- raise "Project file invalid".red unless File.directory?(v)
34
- raise "Project file is not a project file, must end with .xcodeproj".red unless v.include?(".xcodeproj")
32
+ UI.user_error!("Project file not found at path '#{v}'") unless File.exist?(v)
33
+ UI.user_error!("Project file invalid") unless File.directory?(v)
34
+ UI.user_error!("Project file is not a project file, must end with .xcodeproj") unless v.include?(".xcodeproj")
35
35
  end),
36
36
  FastlaneCore::ConfigItem.new(key: :scheme,
37
37
  short_option: "-s",
@@ -103,7 +103,7 @@ module Gym
103
103
  optional: true,
104
104
  verify_block: proc do |value|
105
105
  av = %w(app-store ad-hoc package enterprise development developer-id)
106
- raise "Unsupported export_method, must be: #{av}" unless av.include?(value)
106
+ UI.user_error!("Unsupported export_method, must be: #{av}") unless av.include?(value)
107
107
  end),
108
108
 
109
109
  # Very optional
@@ -112,6 +112,17 @@ module Gym
112
112
  env_name: "GYM_ARCHIVE_PATH",
113
113
  description: "The directory in which the archive file should be stored in",
114
114
  optional: true),
115
+ FastlaneCore::ConfigItem.new(key: :derived_data_path,
116
+ short_option: "-f",
117
+ env_name: "GYM_DERIVED_DATA_PATH",
118
+ description: "The directory where build products and other derived data will go",
119
+ optional: true),
120
+ FastlaneCore::ConfigItem.new(key: :result_bundle,
121
+ short_option: "-u",
122
+ env_name: "GYM_RESULT_BUNDLE",
123
+ is_string: false,
124
+ description: "Produce the result bundle describing what occurred will be placed",
125
+ optional: true),
115
126
  FastlaneCore::ConfigItem.new(key: :buildlog_path,
116
127
  short_option: "-l",
117
128
  env_name: "GYM_BUILDLOG_PATH",
@@ -128,7 +139,7 @@ module Gym
128
139
  description: "The path to the provisioning profile (optional)",
129
140
  optional: true,
130
141
  verify_block: proc do |value|
131
- raise "Provisioning profile not found at path '#{File.expand_path(value)}'".red unless File.exist?(value)
142
+ UI.user_error!("Provisioning profile not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
132
143
  end),
133
144
  FastlaneCore::ConfigItem.new(key: :destination,
134
145
  short_option: "-d",
@@ -151,7 +162,7 @@ module Gym
151
162
  description: "Use an extra XCCONFIG file to build your app",
152
163
  optional: true,
153
164
  verify_block: proc do |value|
154
- raise "File not found at path '#{File.expand_path(value)}'".red unless File.exist?(value)
165
+ UI.user_error!("File not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
155
166
  end),
156
167
  FastlaneCore::ConfigItem.new(key: :suppress_xcode_output,
157
168
  short_option: "-r",
@@ -8,10 +8,6 @@ module Gym
8
8
  def run
9
9
  clear_old_files
10
10
 
11
- if Gym.project.tvos?
12
- UI.user_error!("gym doesn't suppoort tvOS projects yet, we're working on adding this feature!")
13
- end
14
-
15
11
  build_app
16
12
  verify_archive
17
13
 
@@ -24,7 +20,7 @@ module Gym
24
20
  move_ipa
25
21
  elsif Gym.project.mac?
26
22
  compress_and_move_dsym
27
- move_mac_app
23
+ copy_mac_app
28
24
  end
29
25
  end
30
26
 
@@ -139,12 +135,12 @@ module Gym
139
135
  ipa_path
140
136
  end
141
137
 
142
- # Move the .app from the archive into the output directory
143
- def move_mac_app
138
+ # Copies the .app from the archive into the output directory
139
+ def copy_mac_app
144
140
  app_path = Dir[File.join(BuildCommandGenerator.archive_path, "Products/Applications/*.app")].last
145
141
  UI.crash!("Couldn't find application in '#{BuildCommandGenerator.archive_path}'") unless app_path
146
142
 
147
- FileUtils.mv(app_path, File.expand_path(Gym.config[:output_directory]), force: true)
143
+ FileUtils.cp_r(app_path, File.expand_path(Gym.config[:output_directory]), remove_destination: true)
148
144
  app_path = File.join(Gym.config[:output_directory], File.basename(app_path))
149
145
 
150
146
  UI.success "Successfully exported the .app file:"
@@ -1,4 +1,4 @@
1
1
  module Gym
2
- VERSION = "1.4.0"
2
+ VERSION = "1.5.0"
3
3
  DESCRIPTION = "Building your iOS apps has never been easier"
4
4
  end
@@ -20,7 +20,7 @@ module Gym
20
20
  # If that location changes, search it using xcrun --sdk iphoneos -f PackageApplication
21
21
  package_application_path = "#{Xcode.xcode_path}/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication"
22
22
 
23
- raise "Unable to patch the `PackageApplication` script bundled in XCode. This is not supported." unless expected_md5 == Digest::MD5.file(package_application_path).hexdigest
23
+ UI.crash!("Unable to patch the `PackageApplication` script bundled in Xcode. This is not supported.") unless expected_md5 == Digest::MD5.file(package_application_path).hexdigest
24
24
 
25
25
  # Duplicate PackageApplication script to PackageApplication4Gym
26
26
  FileUtils.copy_file(package_application_path, @patched_package_application_path)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gym
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.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: 2016-01-12 00:00:00.000000000 Z
11
+ date: 2016-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.32.1
19
+ version: 0.36.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.32.1
29
+ version: 0.36.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0
@@ -132,16 +132,16 @@ dependencies:
132
132
  name: rubocop
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ">="
135
+ - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '0'
137
+ version: 0.35.1
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ">="
142
+ - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '0'
144
+ version: 0.35.1
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: rspec
147
147
  requirement: !ruby/object:Gem::Requirement