fastlane 2.42.0 → 2.43.0.beta.20170629010015

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: ca921083cf228537a4c3986df050549c4b5834a9
4
- data.tar.gz: b9cd79f18b5c99a3f49ea02b8e3bc646e7919873
3
+ metadata.gz: 3e4ae66159f3544c063527f89087b2f4233f7aa0
4
+ data.tar.gz: 4916ef06ab21011ae37ad106bb7faf6a8360ed63
5
5
  SHA512:
6
- metadata.gz: 63d0b9499642fd240ba31bf30f49f6006d1da76ea52241bb51011014dc06800d2b426ca31f09a37e59cd6df5c96f34dc43b199c2adadcee5f36d0936721f776b
7
- data.tar.gz: 857df33bd8f3c27dbf2ca0042a6714f37e1f938e3c01fea19c5aa9243ca523a0f41ddeb8dd9756c0b60c6b12a6272e3baa1befdf3c421fb14eca4652944494ef
6
+ metadata.gz: cfef9394fa9471d5a728c722af5c2dcb0ef2167f24bf648a0732788f52fed5ee7a47a4446787c1488f078453ae37ba698c457ba8b8c40d5b6e4cd78f336f1b86
7
+ data.tar.gz: 3fccdfe1ad1594465a243d4e4feb740fd4ce0a8c440b95e43e5c6f60bf7697de1cfc06a1415a40ff24390cb4f38cb49da592e692bb8a8b13fdaa8ffe0541cc4b
@@ -9,13 +9,6 @@ module Fastlane
9
9
  def self.run(values)
10
10
  require 'gym'
11
11
 
12
- should_use_legacy_api = values[:use_legacy_build_api] || Gym::Xcode.pre_7?
13
-
14
- if values[:provisioning_profile_path].to_s.length.zero? && should_use_legacy_api
15
- sigh_path = Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] || ENV["SIGH_PROFILE_PATH"]
16
- values[:provisioning_profile_path] = File.expand_path(sigh_path) if sigh_path
17
- end
18
-
19
12
  values[:export_method] ||= Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE]
20
13
 
21
14
  if Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING]
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.42.0'.freeze
2
+ VERSION = '2.43.0.beta.20170629010015'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
data/gym/README.md CHANGED
@@ -254,18 +254,6 @@ Using this method there are no workarounds for WatchKit or Swift required, as it
254
254
 
255
255
  Note: the [xcbuild-safe.sh script](https://github.com/fastlane/fastlane/tree/master/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh) wraps around xcodebuild to workaround some incompatibilities.
256
256
 
257
- ### Xcode 6 and below
258
-
259
- ```
260
- /usr/bin/xcrun /path/to/PackageApplication4Gym -v \
261
- '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive/Products/Applications/name.app' -o \
262
- '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName.ipa' \
263
- --sign "identity" --embed "provProfile"
264
- ```
265
-
266
- Note: the official PackageApplication script is replaced by a custom PackageApplication4Gym script. This script is obtained by applying a [set of patches](https://github.com/fastlane/fastlane/tree/master/gym/lib/assets/package_application_patches) on the fly to fix some known issues in the official Xcode PackageApplication script.
267
-
268
- Afterwards the `ipa` file is moved to the output folder. The `dSYM` file is compressed and moved to the output folder as well.
269
257
 
270
258
  # Tips
271
259
  ## [`fastlane`](https://fastlane.tools) Toolchain
data/gym/lib/gym.rb CHANGED
@@ -32,11 +32,7 @@ module Gym
32
32
 
33
33
  def init_libs
34
34
  # Import all the fixes
35
- require 'gym/xcodebuild_fixes/swift_fix'
36
- require 'gym/xcodebuild_fixes/watchkit_fix'
37
- require 'gym/xcodebuild_fixes/watchkit2_fix'
38
35
  require 'gym/xcodebuild_fixes/generic_archive_fix'
39
- require 'gym/xcodebuild_fixes/package_application_fix'
40
36
  end
41
37
  end
42
38
 
@@ -13,20 +13,12 @@ module Gym
13
13
  # Detect the project
14
14
  FastlaneCore::Project.detect_projects(config)
15
15
  Gym.project = FastlaneCore::Project.new(config)
16
- detect_provisioning_profile
17
16
 
18
17
  # Go into the project's folder, as there might be a Gymfile there
19
18
  Dir.chdir(File.expand_path("..", Gym.project.path)) do
20
19
  config.load_configuration_file(Gym.gymfile_name)
21
20
  end
22
21
 
23
- config[:use_legacy_build_api] = true if Xcode.pre_7?
24
-
25
- if config[:use_legacy_build_api]
26
- UI.deprecated("the use_legacy_build_api option is deprecated")
27
- UI.deprecated("it should not be used anymore - e.g.: if you use app-extensions")
28
- end
29
-
30
22
  detect_scheme
31
23
  detect_platform # we can only do that *after* we have the scheme
32
24
  detect_configuration
@@ -62,28 +54,6 @@ module Gym
62
54
  CFPropertyList.native_types(CFPropertyList::List.new(file: path).value)
63
55
  end
64
56
 
65
- def self.detect_provisioning_profile
66
- if Gym.config[:provisioning_profile_path].nil?
67
- return unless Gym.config[:use_legacy_build_api] # we only want to auto-detect the profile when using the legacy build API
68
-
69
- Dir.chdir(File.expand_path("..", Gym.project.path)) do
70
- profiles = Dir["*.mobileprovision"]
71
- if profiles.count == 1
72
- profile = File.expand_path(profiles.last)
73
- elsif profiles.count > 1
74
- UI.message "Found more than one provisioning profile in the project directory:"
75
- profile = choose(*profiles)
76
- end
77
-
78
- Gym.config[:provisioning_profile_path] = profile
79
- end
80
- end
81
-
82
- if Gym.config[:provisioning_profile_path]
83
- FastlaneCore::ProvisioningProfile.install(Gym.config[:provisioning_profile_path])
84
- end
85
- end
86
-
87
57
  def self.detect_scheme
88
58
  Gym.project.select_scheme
89
59
  end
@@ -54,7 +54,6 @@ module Gym
54
54
  print_full_log_path
55
55
  print_xcode_path_instructions
56
56
  print_xcode_version
57
- raise_legacy_build_api_error(output) if Gym.config[:use_legacy_build_api]
58
57
  UI.build_failure!("Error building the application - see the log above", error_info: output)
59
58
  end
60
59
 
@@ -104,15 +103,6 @@ module Gym
104
103
  return File.join(m[1], 'IDEDistribution.standard.log') unless m.nil?
105
104
  end
106
105
 
107
- def raise_legacy_build_api_error(output)
108
- UI.error("You enabled the legacy build API in _gym_")
109
- UI.error("This option has been deprecated for about a year")
110
- UI.error("and was removed with Xcode 8.3")
111
- UI.error("Please update your Fastfile to include the export_method too")
112
- UI.error("more information about how to migrate away: https://github.com/fastlane/fastlane/releases/tag/2.24.0")
113
- UI.build_failure!("Build failed. Please remove the `use_legacy_build_api` option in your Fastfile and try again", error_info: output)
114
- end
115
-
116
106
  private
117
107
 
118
108
  def read_standard_output(output)
@@ -7,7 +7,6 @@
7
7
  require 'shellwords'
8
8
 
9
9
  # The concrete implementations
10
- require 'gym/generators/package_command_generator_legacy'
11
10
  require 'gym/generators/package_command_generator_xcode7'
12
11
 
13
12
  module Gym
@@ -47,12 +46,10 @@ module Gym
47
46
  end
48
47
 
49
48
  # The generator we need to use for the currently used Xcode version
49
+ # Since we dropped Xcode 6 support, it's just this class, but maybe we'll have
50
+ # new classes in the future
50
51
  def generator
51
- if Gym.config[:use_legacy_build_api]
52
- PackageCommandGeneratorLegacy
53
- else
54
- PackageCommandGeneratorXcode7
55
- end
52
+ PackageCommandGeneratorXcode7
56
53
  end
57
54
  end
58
55
  end
@@ -13,9 +13,7 @@ module Gym
13
13
  DEFAULT_EXPORT_METHOD = "app-store"
14
14
 
15
15
  def generate
16
- print_legacy_information
17
-
18
- parts = ["/usr/bin/xcrun #{XcodebuildFixes.wrap_xcodebuild.shellescape} -exportArchive"]
16
+ parts = ["/usr/bin/xcrun #{wrap_xcodebuild.shellescape} -exportArchive"]
19
17
  parts += options
20
18
  parts += pipe
21
19
 
@@ -46,6 +44,12 @@ module Gym
46
44
  Gym.cache[:temporary_output_path] ||= Dir.mktmpdir('gym_output')
47
45
  end
48
46
 
47
+ # Wrap xcodebuild to work-around ipatool dependency to system ruby
48
+ def wrap_xcodebuild
49
+ require 'fileutils'
50
+ @wrapped_xcodebuild_path ||= File.join(Gym::ROOT, "lib/assets/wrap_xcodebuild/xcbuild-safe.sh")
51
+ end
52
+
49
53
  def ipa_path
50
54
  unless Gym.cache[:ipa_path]
51
55
  path = Dir[File.join(temporary_output_path, "*.ipa")].last
@@ -181,14 +185,6 @@ module Gym
181
185
  def to_plist(hash)
182
186
  Plist::Emit.dump(hash, true)
183
187
  end
184
-
185
- def print_legacy_information
186
- return if Gym.config[:provisioning_profile_path].to_s.length == 0
187
-
188
- UI.error "You're using Xcode 7 or above, the `provisioning_profile_path` value will be ignored"
189
- UI.error "Please follow the Code Signing Guide: https://codesigning.guide (for match) or https://docs.fastlane.tools/codesigning/GettingStarted/"
190
- UI.error "This is just a warning, gym will continue running just as expected, but the parameter will be ignored"
191
- end
192
188
  end
193
189
  end
194
190
  end
@@ -9,24 +9,6 @@ module Gym
9
9
  @options = plain_options
10
10
  end
11
11
 
12
- def self.legacy_api_note!
13
- UI.important "Unfortunately the legacy build API was removed with Xcode 8.3."
14
- UI.important "Please make sure to remove use_legacy_build_api from your ./fastlane/Fastfile"
15
- UI.important "and update the gym call to include the export method like this:"
16
- UI.important "== App Store Builds =="
17
- UI.error ' gym(scheme: "MyScheme", export_method: "app-store")'
18
- UI.important "== Ad Hoc Builds =="
19
- UI.error ' gym(scheme: "MyScheme", export_method: "ad-hoc")'
20
- UI.important "== Development Builds =="
21
- UI.error ' gym(scheme: "MyScheme", export_method: "development")'
22
- UI.important "== In-House Enterprise Builds =="
23
- UI.error ' gym(scheme: "MyScheme", export_method: "enterprise")'
24
- UI.important "If you run into a code signing error, please check out our troubleshooting guide for more information on how to solve the most common issues"
25
- UI.error " https://docs.fastlane.tools/codesigning/troubleshooting/ 🚀"
26
- UI.important ""
27
- UI.user_error! "legacy_build_api removed!"
28
- end
29
-
30
12
  def self.plain_options
31
13
  [
32
14
  FastlaneCore::ConfigItem.new(key: :workspace,
@@ -117,20 +99,6 @@ module Gym
117
99
  description: "Should the ipa include bitcode?",
118
100
  is_string: false,
119
101
  optional: true),
120
- FastlaneCore::ConfigItem.new(key: :use_legacy_build_api,
121
- deprecated: "Don't use this option any more, as it's deprecated by Apple",
122
- env_name: "GYM_USE_LEGACY_BUILD_API",
123
- description: "Don't use this option any more, as it's deprecated by Apple",
124
- default_value: false,
125
- is_string: false,
126
- verify_block: proc do |value|
127
- if value
128
- UI.important "Don't use this option any more, as it's deprecated by Apple"
129
- end
130
- if Gym::Xcode.legacy_api_deprecated?
131
- Gym::Options.legacy_api_note!
132
- end
133
- end),
134
102
  FastlaneCore::ConfigItem.new(key: :export_method,
135
103
  short_option: "-j",
136
104
  env_name: "GYM_EXPORT_METHOD",
@@ -146,7 +114,6 @@ module Gym
146
114
  description: "Specifies path to export options plist. User xcodebuild -help to print the full set of available options",
147
115
  is_string: false,
148
116
  optional: true,
149
- conflicting_options: [:use_legacy_build_api],
150
117
  conflict_block: proc do |value|
151
118
  UI.user_error!("'#{value.key}' must be false to use 'export_options'")
152
119
  end),
@@ -154,7 +121,6 @@ module Gym
154
121
  env_name: "GYM_EXPORT_XCARGS",
155
122
  description: "Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
156
123
  optional: true,
157
- conflicting_options: [:use_legacy_build_api],
158
124
  conflict_block: proc do |value|
159
125
  UI.user_error!("'#{value.key}' must be false to use 'export_xcargs'")
160
126
  end,
@@ -200,15 +166,6 @@ module Gym
200
166
  description: "The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a)",
201
167
  optional: true,
202
168
  is_string: false),
203
- FastlaneCore::ConfigItem.new(key: :provisioning_profile_path,
204
- short_option: "-e",
205
- env_name: "GYM_PROVISIONING_PROFILE_PATH",
206
- description: "The path to the provisioning profile (optional)",
207
- optional: true,
208
- deprecated: 'Use target specific provisioning profiles instead',
209
- verify_block: proc do |value|
210
- UI.user_error!("Provisioning profile not found at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
211
- end),
212
169
  FastlaneCore::ConfigItem.new(key: :destination,
213
170
  short_option: "-d",
214
171
  env_name: "GYM_DESTINATION",
@@ -8,7 +8,6 @@ module Gym
8
8
  # @return (String) The path to the resulting ipa
9
9
  def run
10
10
  unless Gym.config[:skip_build_archive]
11
- clear_old_files
12
11
  build_app
13
12
  end
14
13
  verify_archive
@@ -19,7 +18,6 @@ module Gym
19
18
  return BuildCommandGenerator.archive_path if Gym.config[:skip_package_ipa]
20
19
 
21
20
  package_app
22
- fix_package
23
21
  compress_and_move_dsym
24
22
  path = move_ipa
25
23
  move_manifest
@@ -71,25 +69,11 @@ module Gym
71
69
  # @!group The individual steps
72
70
  #####################################################
73
71
 
74
- def clear_old_files
75
- return unless Gym.config[:use_legacy_build_api]
76
- if File.exist?(PackageCommandGenerator.ipa_path)
77
- File.delete(PackageCommandGenerator.ipa_path)
78
- end
79
- end
80
-
81
72
  def fix_generic_archive
82
73
  return unless FastlaneCore::Env.truthy?("GYM_USE_GENERIC_ARCHIVE_FIX")
83
74
  Gym::XcodebuildFixes.generic_archive_fix
84
75
  end
85
76
 
86
- def fix_package
87
- return unless Gym.config[:use_legacy_build_api]
88
- Gym::XcodebuildFixes.swift_library_fix
89
- Gym::XcodebuildFixes.watchkit_fix
90
- Gym::XcodebuildFixes.watchkit2_fix
91
- end
92
-
93
77
  def mark_archive_as_built_by_gym(archive_path)
94
78
  escaped_archive_path = archive_path.shellescape
95
79
  system("xattr -w info.fastlane.generated_by_gym 1 #{escaped_archive_path}")
@@ -239,11 +223,7 @@ module Gym
239
223
  end
240
224
 
241
225
  def find_archive_path
242
- if Gym.config[:use_legacy_build_api]
243
- BuildCommandGenerator.archive_path
244
- else
245
- Dir.glob(File.join(BuildCommandGenerator.build_path, "*.ipa")).last
246
- end
226
+ Dir.glob(File.join(BuildCommandGenerator.build_path, "*.ipa")).last
247
227
  end
248
228
  end
249
229
  end
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.42.0
4
+ version: 2.43.0.beta.20170629010015
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-06-28 00:00:00.000000000 Z
18
+ date: 2017-06-29 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -259,7 +259,7 @@ dependencies:
259
259
  requirements:
260
260
  - - ">="
261
261
  - !ruby/object:Gem::Version
262
- version: 4.4.0
262
+ version: 4.4.5
263
263
  - - "<"
264
264
  - !ruby/object:Gem::Version
265
265
  version: 5.0.0
@@ -269,7 +269,7 @@ dependencies:
269
269
  requirements:
270
270
  - - ">="
271
271
  - !ruby/object:Gem::Version
272
- version: 4.4.0
272
+ version: 4.4.5
273
273
  - - "<"
274
274
  - !ruby/object:Gem::Version
275
275
  version: 5.0.0
@@ -1147,9 +1147,6 @@ files:
1147
1147
  - frameit/lib/frameit/template_finder.rb
1148
1148
  - gym/README.md
1149
1149
  - gym/lib/assets/GymfileTemplate
1150
- - gym/lib/assets/package_application_patches/0001_codesign_args_patch.diff
1151
- - gym/lib/assets/package_application_patches/0002_no_strict_parameter_patch.diff
1152
- - gym/lib/assets/package_application_patches/PackageApplication_MD5
1153
1150
  - gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
1154
1151
  - gym/lib/gym.rb
1155
1152
  - gym/lib/gym/commands_generator.rb
@@ -1158,7 +1155,6 @@ files:
1158
1155
  - gym/lib/gym/generators/README.md
1159
1156
  - gym/lib/gym/generators/build_command_generator.rb
1160
1157
  - gym/lib/gym/generators/package_command_generator.rb
1161
- - gym/lib/gym/generators/package_command_generator_legacy.rb
1162
1158
  - gym/lib/gym/generators/package_command_generator_xcode7.rb
1163
1159
  - gym/lib/gym/manager.rb
1164
1160
  - gym/lib/gym/options.rb
@@ -1166,10 +1162,6 @@ files:
1166
1162
  - gym/lib/gym/xcode.rb
1167
1163
  - gym/lib/gym/xcodebuild_fixes/README.md
1168
1164
  - gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb
1169
- - gym/lib/gym/xcodebuild_fixes/package_application_fix.rb
1170
- - gym/lib/gym/xcodebuild_fixes/swift_fix.rb
1171
- - gym/lib/gym/xcodebuild_fixes/watchkit2_fix.rb
1172
- - gym/lib/gym/xcodebuild_fixes/watchkit_fix.rb
1173
1165
  - match/README.md
1174
1166
  - match/lib/assets/MatchfileTemplate
1175
1167
  - match/lib/assets/READMETemplate.md
@@ -1296,7 +1288,6 @@ files:
1296
1288
  - spaceship/lib/assets/languageMapping.json
1297
1289
  - spaceship/lib/assets/languageMappingReadable.json
1298
1290
  - spaceship/lib/spaceship.rb
1299
- - spaceship/lib/spaceship/.DS_Store
1300
1291
  - spaceship/lib/spaceship/babosa_fix.rb
1301
1292
  - spaceship/lib/spaceship/base.rb
1302
1293
  - spaceship/lib/spaceship/client.rb
@@ -1398,24 +1389,24 @@ metadata:
1398
1389
  post_install_message:
1399
1390
  rdoc_options: []
1400
1391
  require_paths:
1392
+ - snapshot/lib
1393
+ - spaceship/lib
1394
+ - scan/lib
1401
1395
  - cert/lib
1402
- - credentials_manager/lib
1403
- - deliver/lib
1396
+ - pilot/lib
1404
1397
  - fastlane/lib
1405
- - fastlane_core/lib
1406
- - frameit/lib
1398
+ - supply/lib
1407
1399
  - gym/lib
1408
1400
  - match/lib
1409
- - pem/lib
1410
- - pilot/lib
1401
+ - sigh/lib
1411
1402
  - precheck/lib
1412
1403
  - produce/lib
1413
- - scan/lib
1404
+ - credentials_manager/lib
1414
1405
  - screengrab/lib
1415
- - sigh/lib
1416
- - snapshot/lib
1417
- - spaceship/lib
1418
- - supply/lib
1406
+ - pem/lib
1407
+ - fastlane_core/lib
1408
+ - deliver/lib
1409
+ - frameit/lib
1419
1410
  required_ruby_version: !ruby/object:Gem::Requirement
1420
1411
  requirements:
1421
1412
  - - ">="
@@ -1423,15 +1414,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1423
1414
  version: 2.0.0
1424
1415
  required_rubygems_version: !ruby/object:Gem::Requirement
1425
1416
  requirements:
1426
- - - ">="
1417
+ - - ">"
1427
1418
  - !ruby/object:Gem::Version
1428
- version: '0'
1419
+ version: 1.3.1
1429
1420
  requirements: []
1430
1421
  rubyforge_project:
1431
- rubygems_version: 2.2.5
1422
+ rubygems_version: 2.4.5.2
1432
1423
  signing_key:
1433
1424
  specification_version: 4
1434
1425
  summary: The easiest way to automate beta deployments and releases for your iOS and
1435
1426
  Android apps
1436
1427
  test_files: []
1437
- has_rdoc:
@@ -1,38 +0,0 @@
1
- From 13f2c76fd11b0d861ddf205d4d6ccc0c45a0d4b2 Mon Sep 17 00:00:00 2001
2
- From: Fabio Milano
3
- Date: Thu, 13 Aug 2015 15:02:41 +0200
4
- Subject: [PATCH] Fixed codesign_args
5
-
6
- Code signatures made in Mavericks and later do not support altering which files are sealed by a code signature.
7
- The --resource-rules option to codesign isn't supported anymore
8
-
9
- See https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG206
10
-
11
- ---
12
- PackageApplication4Gym | 8 +++++++-
13
- 1 file changed, 7 insertions(+), 1 deletion(-)
14
-
15
- diff --git a/PackageApplication4Gym b/PackageApplication4Gym
16
- index fc4d7de..b97431f 100755
17
- --- a/PackageApplication4Gym
18
- +++ b/PackageApplication4Gym
19
- @@ -152,9 +152,15 @@ if ( defined $opt{sign} ) {
20
- }
21
- }
22
-
23
- - my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
24
- + my @codesign_args;
25
- + if (-e '$destApp/ResourceRules.plist') { # If ResourceRules.plist exists, include it in codesign arguments, for backwards compatability
26
- + @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
27
- "--sign", $opt{sign},
28
- "--resource-rules=$destApp/ResourceRules.plist");
29
- + } else { # If ResourceRules.plist isn't found, don't include it in the codesign arguments
30
- + @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
31
- + "--sign", $opt{sign});
32
- + }
33
-
34
- if ( -e $entitlements_plist ) {
35
- push(@codesign_args, '--entitlements');
36
- --
37
- 2.2.1
38
-
@@ -1,42 +0,0 @@
1
- From 38ea965869a436c4b60e7dbfd5a28d42232d82d6 Mon Sep 17 00:00:00 2001
2
- From: Fabio Milano
3
- Date: Thu, 13 Aug 2015 16:03:26 +0200
4
- Subject: [PATCH] Added no-strict parameter
5
-
6
- The command line tool “codesign” has changed in 10.9.5 and 10.10, you need to
7
- pass “--no-strict” option to the command, (the problem has been reported and
8
- will be fixed). To workaround the problem, please save a copy and modify
9
- PackageApplication to pass “—no-strict” to codesign, you can locate PackageApplication
10
- by running the following:- xcrun -sdk iphoneos -f PackageApplication
11
-
12
- See https://stackoverflow.com/questions/26008449/xcodebuild-codesign-vvvv-saysresource-envelope-is-obsolete
13
-
14
- ---
15
- PackageApplication4Gym | 4 ++--
16
- 1 file changed, 2 insertions(+), 2 deletions(-)
17
-
18
- diff --git a/PackageApplication4Gym b/PackageApplication4Gym
19
- index 3085608..54a4b9e 100755
20
- --- a/PackageApplication4Gym
21
- +++ b/PackageApplication4Gym
22
- @@ -92,7 +92,7 @@ foreach $plugin (@plugins) {
23
- chomp $pluginName;
24
- my $destPlugin = "$destAppDir/$pluginName";
25
-
26
- - my $result = runCmd("/usr/bin/codesign", "--verify", "-vvvv", , $plugin );
27
- + my $result = runCmd("/usr/bin/codesign", "--verify", "--no-strict", "-vvvv", , $plugin );
28
- if ( $result !~ /valid on disk/ ) {
29
- fatal("Codesign check fails : $result\n");
30
- }
31
- @@ -111,7 +111,7 @@ if ( $opt{symbols} ) {
32
-
33
- if ( $opt{verbose} ) {
34
- print "### Checking original app\n";
35
- - my $result = runCmd("/usr/bin/codesign", "--verify", "-vvvv", , $origApp );
36
- + my $result = runCmd("/usr/bin/codesign", "--verify", "--no-strict", "-vvvv", , $origApp );
37
- if ( $result !~ /valid on disk/ ) {
38
- print "Codesign check fails : $result\n";
39
- }
40
- --
41
- 2.2.1
42
-
@@ -1,2 +0,0 @@
1
- a434316d561ce5c4392a8447b58c18e7
2
- 75c29555834c603566a2319c5e4d2838
@@ -1,103 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # from https://stackoverflow.com/a/9857493/445598
4
- # because of
5
- # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
6
-
7
- module Gym
8
- # Responsible for building the fully working xcodebuild command on Xcode < 7
9
- #
10
- # Because of a known bug in PackageApplication Perl script used by Xcode the packaging process is performed with
11
- # a patched version of the script.
12
- class PackageCommandGeneratorLegacy
13
- class << self
14
- def generate
15
- print_legacy_information
16
-
17
- parts = ["/usr/bin/xcrun #{XcodebuildFixes.patch_package_application.shellescape} -v"]
18
- parts += options
19
- parts += pipe
20
-
21
- parts
22
- end
23
-
24
- def options
25
- options = []
26
-
27
- options << Shellwords.escape(appfile_path)
28
- options << "-o '#{ipa_path}'"
29
- options << "exportFormat ipa"
30
-
31
- if Gym.config[:provisioning_profile_path]
32
- options << "--embed '#{Gym.config[:provisioning_profile_path]}'"
33
- end
34
-
35
- if Gym.config[:codesigning_identity]
36
- options << "--sign #{Gym.config[:codesigning_identity].shellescape}"
37
- end
38
-
39
- options
40
- end
41
-
42
- def pipe
43
- [""]
44
- end
45
-
46
- # Place where the IPA file will be created, so it can be safely moved to the destination folder
47
- def temporary_output_path
48
- Gym.cache[:temporary_output_path] ||= Dir.mktmpdir('gym_output')
49
- end
50
-
51
- def appfile_path
52
- path = Dir.glob("#{BuildCommandGenerator.archive_path}/Products/Applications/*.app").first
53
- path ||= Dir[BuildCommandGenerator.archive_path + "/**/*.app"].first
54
-
55
- return path
56
- end
57
-
58
- # We export it to the temporary folder and move it over to the actual output once it's finished and valid
59
- def ipa_path
60
- File.join(temporary_output_path, "#{Gym.config[:output_name]}.ipa")
61
- end
62
-
63
- # The path the the dsym file for this app. Might be nil
64
- def dsym_path
65
- Dir[BuildCommandGenerator.archive_path + "/**/*.app.dSYM"].last
66
- end
67
-
68
- def manifest_path
69
- ""
70
- end
71
-
72
- def app_thinning_path
73
- ""
74
- end
75
-
76
- def app_thinning_size_report_path
77
- ""
78
- end
79
-
80
- def apps_path
81
- ""
82
- end
83
-
84
- def print_legacy_information
85
- if Gym.config[:include_bitcode]
86
- UI.important "Legacy build api is enabled, the `include_bitcode` value will be ignored"
87
- end
88
-
89
- if Gym.config[:include_symbols]
90
- UI.important "Legacy build api is enabled, the `include_symbols` value will be ignored"
91
- end
92
-
93
- if Gym.config[:export_team_id].to_s.length > 0
94
- UI.important "Legacy build api is enabled, the `export_team_id` value will be ignored"
95
- end
96
-
97
- if Gym.config[:export_method].to_s.length > 0
98
- UI.important "Legacy build api is enabled, the `export_method` value will be ignored"
99
- end
100
- end
101
- end
102
- end
103
- end
@@ -1,57 +0,0 @@
1
- module Gym
2
- class XcodebuildFixes
3
- class << self
4
- # Fix PackageApplication Perl script by Xcode to create the IPA from the archive
5
- def patch_package_application
6
- require 'fileutils'
7
-
8
- # Initialization
9
- @patched_package_application_path = File.join("/tmp", "PackageApplication4Gym")
10
-
11
- return @patched_package_application_path if File.exist?(@patched_package_application_path)
12
-
13
- Dir.mktmpdir do |tmpdir|
14
- # Check current set of PackageApplication MD5 hashes
15
- require 'digest'
16
-
17
- path = File.join(Gym::ROOT, "lib/assets/package_application_patches/PackageApplication_MD5")
18
- expected_md5_hashes = File.read(path).split("\n")
19
-
20
- # If that location changes, search it using xcrun --sdk iphoneos -f PackageApplication
21
- package_application_path = "#{Xcode.xcode_path}/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication"
22
-
23
- unless File.exist?(package_application_path)
24
- ErrorHandler.raise_legacy_build_api_error("")
25
- end
26
-
27
- UI.crash!("Unable to patch the `PackageApplication` script bundled in Xcode. This is not supported.") unless expected_md5_hashes.include?(Digest::MD5.file(package_application_path).hexdigest)
28
-
29
- # Duplicate PackageApplication script to PackageApplication4Gym
30
- FileUtils.copy_file(package_application_path, @patched_package_application_path)
31
-
32
- # Apply patches to PackageApplication4Gym from patches folder
33
- Dir[File.join(Gym::ROOT, "lib/assets/package_application_patches/*.diff")].each do |patch|
34
- UI.verbose "Applying Package Application patch: #{File.basename(patch)}"
35
- command = ["patch '#{@patched_package_application_path}' < '#{patch}'"]
36
- Runner.new.print_command(command, "Applying Package Application patch: #{File.basename(patch)}") if FastlaneCore::Globals.verbose?
37
-
38
- FastlaneCore::CommandExecutor.execute(command: command,
39
- print_all: false,
40
- print_command: FastlaneCore::Globals.verbose?,
41
- error: proc do |output|
42
- ErrorHandler.handle_package_error(output)
43
- end)
44
- end
45
- end
46
-
47
- return @patched_package_application_path # Return path to the patched PackageApplication
48
- end
49
-
50
- # Wrap xcodebuild to work-around ipatool dependecy to system ruby
51
- def wrap_xcodebuild
52
- require 'fileutils'
53
- @wrapped_xcodebuild_path ||= File.join(Gym::ROOT, "lib/assets/wrap_xcodebuild/xcbuild-safe.sh")
54
- end
55
- end
56
- end
57
- end
@@ -1,100 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # from https://stackoverflow.com/a/9857493/445598
4
- # because of
5
- # `incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)`
6
- require 'zip'
7
-
8
- module Gym
9
- class XcodebuildFixes
10
- class << self
11
- # Determine whether it is a Swift project and, eventually, include all required libraries to copy from Xcode's toolchain directory.
12
- # Since there's no "xcodebuild" target to do just that, it is done post-build when exporting an archived build.
13
- def swift_library_fix
14
- require 'fileutils'
15
-
16
- return if check_for_swift(PackageCommandGenerator)
17
-
18
- UI.verbose "Packaging up the Swift Framework as the current app is a Swift app"
19
- ipa_swift_frameworks = Dir["#{PackageCommandGenerator.appfile_path}/Frameworks/libswift*"]
20
-
21
- Dir.mktmpdir do |tmpdir|
22
- # Copy all necessary Swift libraries to a temporary "SwiftSupport" directory so that we can
23
- # easily add it to the .ipa later.
24
- swift_support = File.join(tmpdir, "SwiftSupport")
25
-
26
- Dir.mkdir(swift_support)
27
-
28
- ipa_swift_frameworks.each do |path|
29
- framework = File.basename(path)
30
-
31
- begin
32
- toolchain_dir = toolchain_dir_name_for_toolchain(Gym.config[:toolchain])
33
-
34
- from = File.join(Xcode.xcode_path, "Toolchains/#{toolchain_dir}/usr/lib/swift/iphoneos/#{framework}")
35
- to = File.join(swift_support, framework)
36
-
37
- UI.verbose("Copying Swift framework from '#{from}'")
38
- FileUtils.copy_file(from, to)
39
- rescue => ex
40
- UI.error("Error copying over framework file. Please try running gym without the legacy build API enabled")
41
- UI.error("For more information visit https://github.com/fastlane/fastlane/issues/5863")
42
- UI.error("Missing file #{path} inside #{Xcode.xcode_path}")
43
-
44
- if Gym.config[:toolchain].nil?
45
- UI.important("If you're using Swift 2.3, but already updated to Xcode 8")
46
- UI.important("try adding the following parameter to your gym call:")
47
- UI.success("gym(toolchain: :swift_2_3)")
48
- UI.message("or")
49
- UI.success("fastlane gym --toolchain swift_2_3")
50
- end
51
-
52
- UI.user_error!(ex)
53
- end
54
- end
55
-
56
- # Add "SwiftSupport" to the .ipa archive
57
- Dir.chdir(tmpdir) do
58
- command_parts = ["zip --recurse-paths '#{PackageCommandGenerator.ipa_path}' SwiftSupport"]
59
- command_parts << "> /dev/null" unless FastlaneCore::Globals.verbose?
60
-
61
- FastlaneCore::CommandExecutor.execute(command: command_parts,
62
- print_all: false,
63
- print_command: !Gym.config[:silent],
64
- error: proc do |output|
65
- ErrorHandler.handle_package_error(output)
66
- end)
67
- end
68
- end
69
- end
70
-
71
- def toolchain_dir_name_for_toolchain(toolchain)
72
- return "Swift_2.3.xctoolchain" if toolchain == "com.apple.dt.toolchain.Swift_2_3"
73
-
74
- UI.error("No specific folder was found for toolchain #{toolchain}. Using the default toolchain location.") if toolchain
75
- return "XcodeDefault.xctoolchain"
76
- end
77
-
78
- # @param the PackageCommandGenerator
79
- # @return true if swift
80
- def check_for_swift(pcg)
81
- UI.verbose "Checking for Swift framework"
82
- default_swift_libs = "#{pcg.appfile_path}/Frameworks/libswift.*" # note the extra ., this is a string representation of a regexp
83
- zip_entries_matching(pcg.ipa_path, /#{default_swift_libs}/).count > 0
84
- end
85
-
86
- # return the entries (files or directories) in the zip matching the pattern
87
- # @param zipfile a zipfile
88
- # @return the files or directories matching the pattern
89
- def zip_entries_matching(zipfile, file_pattern)
90
- files = []
91
- Zip::File.open(zipfile) do |zip_file|
92
- zip_file.each do |entry|
93
- files << entry.name if entry.name.force_encoding("utf-8").match file_pattern
94
- end
95
- end
96
- files
97
- end
98
- end
99
- end
100
- end
@@ -1,35 +0,0 @@
1
- module Gym
2
- class XcodebuildFixes
3
- class << self
4
- # Determine whether this app has WatchKit2 support and manually package up the WatchKit2 framework
5
- def watchkit2_fix
6
- return unless watchkit2?
7
-
8
- UI.verbose "Adding WatchKit2 support"
9
-
10
- Dir.mktmpdir do |tmpdir|
11
- # Make watchkit support directory
12
- watchkit_support = File.join(tmpdir, "WatchKitSupport2")
13
- Dir.mkdir(watchkit_support)
14
-
15
- # Copy WK from Xcode into WatchKitSupport2
16
- FileUtils.copy_file("#{Xcode.xcode_path}/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/Library/Application Support/WatchKit/WK", File.join(watchkit_support, "WK"))
17
-
18
- # Add "WatchKitSupport2" to the .ipa archive
19
- Dir.chdir(tmpdir) do
20
- abort unless system %(zip --recurse-paths "#{PackageCommandGenerator.ipa_path}" "WatchKitSupport2" > /dev/null)
21
- end
22
-
23
- UI.verbose "Successfully added WatchKit2 support"
24
- end
25
- end
26
-
27
- # Does this application have a WatchKit target
28
- def watchkit2?
29
- Dir["#{PackageCommandGenerator.appfile_path}/**/*.plist"].any? do |plist_path|
30
- `/usr/libexec/PlistBuddy -c 'Print DTSDKName' '#{plist_path}' 2>&1`.match(/^\s*watchos2\.\d+\s*$/)
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,40 +0,0 @@
1
- module Gym
2
- class XcodebuildFixes
3
- class << self
4
- # Determine whether this app has WatchKit support and manually package up the WatchKit framework
5
- def watchkit_fix
6
- return unless should_apply_watchkit1_fix?
7
-
8
- UI.verbose "Adding WatchKit support"
9
-
10
- Dir.mktmpdir do |tmpdir|
11
- # Make watchkit support directory
12
- watchkit_support = File.join(tmpdir, "WatchKitSupport")
13
- Dir.mkdir(watchkit_support)
14
-
15
- # Copy WK from Xcode into WatchKitSupport
16
- FileUtils.copy_file("#{Xcode.xcode_path}/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/WK", File.join(watchkit_support, "WK"))
17
-
18
- # Add "WatchKitSupport" to the .ipa archive
19
- Dir.chdir(tmpdir) do
20
- abort unless system %(zip --recurse-paths "#{PackageCommandGenerator.ipa_path}" "WatchKitSupport" > /dev/null)
21
- end
22
-
23
- UI.verbose "Successfully added WatchKit support"
24
- end
25
- end
26
-
27
- # Does this application have a WatchKit target
28
- def watchkit?
29
- Dir["#{PackageCommandGenerator.appfile_path}/**/*.plist"].any? do |plist_path|
30
- `/usr/libexec/PlistBuddy -c 'Print WKWatchKitApp' '#{plist_path}' 2>&1`.strip == 'true'
31
- end
32
- end
33
-
34
- # Should only be applied if watchkit app is not a watchkit2 app
35
- def should_apply_watchkit1_fix?
36
- watchkit? && !Gym::XcodebuildFixes.watchkit2?
37
- end
38
- end
39
- end
40
- end
Binary file