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 +4 -4
- data/fastlane/lib/fastlane/actions/gym.rb +0 -7
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/gym/README.md +0 -12
- data/gym/lib/gym.rb +0 -4
- data/gym/lib/gym/detect_values.rb +0 -30
- data/gym/lib/gym/error_handler.rb +0 -10
- data/gym/lib/gym/generators/package_command_generator.rb +3 -6
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +7 -11
- data/gym/lib/gym/options.rb +0 -43
- data/gym/lib/gym/runner.rb +1 -21
- metadata +18 -28
- data/gym/lib/assets/package_application_patches/0001_codesign_args_patch.diff +0 -38
- data/gym/lib/assets/package_application_patches/0002_no_strict_parameter_patch.diff +0 -42
- data/gym/lib/assets/package_application_patches/PackageApplication_MD5 +0 -2
- data/gym/lib/gym/generators/package_command_generator_legacy.rb +0 -103
- data/gym/lib/gym/xcodebuild_fixes/package_application_fix.rb +0 -57
- data/gym/lib/gym/xcodebuild_fixes/swift_fix.rb +0 -100
- data/gym/lib/gym/xcodebuild_fixes/watchkit2_fix.rb +0 -35
- data/gym/lib/gym/xcodebuild_fixes/watchkit_fix.rb +0 -40
- data/spaceship/lib/spaceship/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e4ae66159f3544c063527f89087b2f4233f7aa0
|
4
|
+
data.tar.gz: 4916ef06ab21011ae37ad106bb7faf6a8360ed63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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]
|
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
|
-
|
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
|
-
|
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
|
data/gym/lib/gym/options.rb
CHANGED
@@ -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",
|
data/gym/lib/gym/runner.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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.
|
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.
|
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
|
-
-
|
1403
|
-
- deliver/lib
|
1396
|
+
- pilot/lib
|
1404
1397
|
- fastlane/lib
|
1405
|
-
-
|
1406
|
-
- frameit/lib
|
1398
|
+
- supply/lib
|
1407
1399
|
- gym/lib
|
1408
1400
|
- match/lib
|
1409
|
-
-
|
1410
|
-
- pilot/lib
|
1401
|
+
- sigh/lib
|
1411
1402
|
- precheck/lib
|
1412
1403
|
- produce/lib
|
1413
|
-
-
|
1404
|
+
- credentials_manager/lib
|
1414
1405
|
- screengrab/lib
|
1415
|
-
-
|
1416
|
-
-
|
1417
|
-
-
|
1418
|
-
-
|
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:
|
1419
|
+
version: 1.3.1
|
1429
1420
|
requirements: []
|
1430
1421
|
rubyforge_project:
|
1431
|
-
rubygems_version: 2.
|
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,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
|