longbow 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/longbow/commands/aim.rb +10 -9
- data/lib/longbow/targets.rb +1 -1
- data/lib/longbow/version.rb +1 -1
- data/resources/aim.sh +31 -0
- data/resources/capture.js +32 -5
- data/resources/config-screenshots.sh +28 -0
- data/resources/ui-screen-shooter.sh +36 -42
- metadata +43 -42
- data/Gemfile.lock +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46fbbd327d526495745c97c3cc037053119370ec
|
4
|
+
data.tar.gz: 4656656db3a2dff91be06591fa333ff3edd41427
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13dea7fb7afdbb1e0d06516e62b9601b5de7baa6ae08f6d8060606cb51753380227e337dbaeef9d4d0394d609aa7d8f64818102efda85648a6d16a0a7afcf3a9
|
7
|
+
data.tar.gz: 669a8a1a5393692c6a2808dc053a3c5fc61e0ceb8b95c64070882415ea96fe7f258cb7e39df9c265b2e680993614356be925345dba5a50a5a8e2b5f2ab32add1
|
data/README.md
CHANGED
@@ -109,6 +109,7 @@ If you leave off the `-n` option, it will run for all targets in the `longbow.js
|
|
109
109
|
|
110
110
|
* `-d, --directory` - if not in the current directory, specify a new path
|
111
111
|
* `-u, --url` - the url of a longbow formatted JSON file
|
112
|
+
* `-i, --images` - set this flag to not recreate images in the longbow file
|
112
113
|
|
113
114
|
`longbow shoot -n NameOfTarget -d ~/Path/To/App -u http://someurl.com/longbow.json`
|
114
115
|
|
data/lib/longbow/commands/aim.rb
CHANGED
@@ -13,6 +13,7 @@ command :aim do |c|
|
|
13
13
|
c.option '-d', '--directory DIRECTORY', 'Path where the .xcodeproj or .xcworkspace file && the longbow.json file live.'
|
14
14
|
c.option '-u', '--url URL', 'URL of a longbow formatted JSON file.'
|
15
15
|
c.option '-n', '--name NAME', 'Name of the target to get a screenshot for.'
|
16
|
+
c.option '-v', '--verbose', 'Output all logs from UIAutomation/xcodebuild'
|
16
17
|
|
17
18
|
c.action do |args, options|
|
18
19
|
# Check for newer version
|
@@ -55,16 +56,16 @@ command :aim do |c|
|
|
55
56
|
resources_path = File.dirname(__FILE__) + '/../../../resources'
|
56
57
|
|
57
58
|
FileUtils.cp "#{resources_path}/capture.js", "capture.js"
|
58
|
-
|
59
|
+
FileUtils.cp "#{resources_path}/config-screenshots.sh", "config-screenshots.sh"
|
60
|
+
FileUtils.cp "#{resources_path}/ui-screen-shooter.sh", "ui-screen-shooter.sh"
|
61
|
+
FileUtils.cp "#{resources_path}/unix_instruments.sh", "unix_instruments.sh"
|
62
|
+
@target_names = []
|
59
63
|
@targets.each do |t|
|
60
|
-
|
61
|
-
begin
|
62
|
-
`#{resources_path}/ui-screen-shooter.sh ~/Desktop/screenshots/#{t['name']} #{t['name']} #{@script}`
|
63
|
-
rescue
|
64
|
-
Longbow::red "Failed while running screenshooter for #{t['name']}"
|
65
|
-
end
|
64
|
+
@target_names << t['name']
|
66
65
|
end
|
67
|
-
|
68
|
-
|
66
|
+
target_string = @target_names.join(',')
|
67
|
+
Longbow::blue " Beginning screenshots..."
|
68
|
+
exec "#{resources_path}/aim.sh #{target_string} verbose" if options.verbose
|
69
|
+
exec "#{resources_path}/aim.sh #{target_string}" if !options.verbose
|
69
70
|
end
|
70
71
|
end
|
data/lib/longbow/targets.rb
CHANGED
@@ -83,7 +83,7 @@ module Longbow
|
|
83
83
|
deployment_target = main_target.deployment_target
|
84
84
|
|
85
85
|
# Create New Target
|
86
|
-
new_target = Xcodeproj::Project::ProjectHelper.new_target project, :application, target, :ios, deployment_target, project.products_group
|
86
|
+
new_target = Xcodeproj::Project::ProjectHelper.new_target project, :application, target, :ios, deployment_target, project.products_group, 'en'
|
87
87
|
if new_target
|
88
88
|
# Add Build Phases
|
89
89
|
main_target.build_phases.objects.each do |b|
|
data/lib/longbow/version.rb
CHANGED
data/resources/aim.sh
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -e # Bomb on any script errors
|
3
|
+
target_string="$1"
|
4
|
+
verbose=false
|
5
|
+
if [ -n "$2" ]; then
|
6
|
+
verbose=true
|
7
|
+
fi
|
8
|
+
|
9
|
+
function main {
|
10
|
+
# Get targets into an array, run 'em
|
11
|
+
IFS=',' read -a targets <<< "$target_string"
|
12
|
+
for target in "${targets[@]}"; do
|
13
|
+
_run_target $target;
|
14
|
+
done
|
15
|
+
# Remove files added by ruby script
|
16
|
+
rm "capture.js"
|
17
|
+
rm "config-screenshots.sh"
|
18
|
+
rm "ui-screen-shooter.sh"
|
19
|
+
rm "unix_instruments.sh"
|
20
|
+
}
|
21
|
+
|
22
|
+
function _run_target {
|
23
|
+
echo " Running $1"
|
24
|
+
if [ "$verbose" = true ]; then
|
25
|
+
source ui-screen-shooter.sh "$HOME/Desktop/screenshots/$1" "$1"
|
26
|
+
else
|
27
|
+
source ui-screen-shooter.sh "$HOME/Desktop/screenshots/$1" "$1" >/dev/null 2>/dev/null
|
28
|
+
fi
|
29
|
+
}
|
30
|
+
|
31
|
+
main
|
data/resources/capture.js
CHANGED
@@ -18,6 +18,25 @@
|
|
18
18
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
// THE SOFTWARE.
|
20
20
|
|
21
|
+
var kPortraitString = "portrait"
|
22
|
+
var kLandscapeString = "landscape"
|
23
|
+
|
24
|
+
var kMaxDimension4inch = 568;
|
25
|
+
var kMaxDimension4point7inch = 667;
|
26
|
+
var kMaxDimension5point5inch = 736;
|
27
|
+
|
28
|
+
// rectMaxSizeMatchesPhoneWithMaxDimensionForOrientation(rect, maxDimension, orientation)
|
29
|
+
//
|
30
|
+
// Returns whether the given rect matches a given max dimension in a particular orientation.
|
31
|
+
//
|
32
|
+
// `rect` is the rectangle representing the image size you want to check
|
33
|
+
// `maxDimension` is the size of the longest side of the screen on a given device
|
34
|
+
// `orientation` is...well...duh!
|
35
|
+
//
|
36
|
+
function rectMaxSizeMatchesPhoneWithMaxDimensionForOrientation(rect, maxDimension, orientation) {
|
37
|
+
return (orientation == kPortraitString && rect.size.height == maxDimension) || (orientation == kLandscapeString && rect.size.width == maxDimension)
|
38
|
+
}
|
39
|
+
|
21
40
|
// captureLocalizedScreenshot(name)
|
22
41
|
//
|
23
42
|
// Tells the local target to take a screen shot and names the file after the
|
@@ -38,13 +57,22 @@ function captureLocalizedScreenshot(name) {
|
|
38
57
|
var model = target.model();
|
39
58
|
var rect = target.rect();
|
40
59
|
|
41
|
-
var orientation =
|
42
|
-
if (rect.size.height < rect.size.width)
|
60
|
+
var orientation = kPortraitString;
|
61
|
+
if (rect.size.height < rect.size.width) {
|
62
|
+
orientation = kLandscapeString;
|
63
|
+
}
|
43
64
|
|
44
65
|
if (model.match(/iPhone/)) {
|
45
|
-
if ((
|
66
|
+
if (rectMaxSizeMatchesPhoneWithMaxDimensionForOrientation(rect, kMaxDimension4inch, orientation)) {
|
46
67
|
model = "iOS-4-in";
|
47
|
-
}
|
68
|
+
}
|
69
|
+
else if (rectMaxSizeMatchesPhoneWithMaxDimensionForOrientation(rect, kMaxDimension4point7inch, orientation)) {
|
70
|
+
model = "iOS-4.7-in";
|
71
|
+
}
|
72
|
+
else if (rectMaxSizeMatchesPhoneWithMaxDimensionForOrientation(rect, kMaxDimension5point5inch, orientation)) {
|
73
|
+
model = "iOS-5.5-in";
|
74
|
+
}
|
75
|
+
else {
|
48
76
|
model = "iOS-3.5-in";
|
49
77
|
}
|
50
78
|
} else {
|
@@ -54,4 +82,3 @@ function captureLocalizedScreenshot(name) {
|
|
54
82
|
var parts = [model, orientation, name];
|
55
83
|
target.captureScreenWithName(parts.join("___"));
|
56
84
|
}
|
57
|
-
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# This is an example configuration file to be used with ui-screen-shooter
|
3
|
+
# It is designed to work with the Hello World International application
|
4
|
+
# Please copy to config-screenshots.sh and edit for your needs
|
5
|
+
|
6
|
+
|
7
|
+
# LOCALE
|
8
|
+
# ======
|
9
|
+
# Set the locales here in which your screenshots should be made.
|
10
|
+
# Use format like en-US zh-Hans for filenames compatible with iTMSTransporter
|
11
|
+
# Note: to get the locale names for your existing app:
|
12
|
+
# - Download .itmsp file with iTMSTransporter
|
13
|
+
# - Run `grep locale ~/Desktop/*.itmsp/metadata.xml | grep name | sort -u`
|
14
|
+
|
15
|
+
export languages="en-US"
|
16
|
+
|
17
|
+
|
18
|
+
# SIMULATORS
|
19
|
+
# ==========
|
20
|
+
# The simulators we want to run the script against, declared as a Bash array.
|
21
|
+
# Run `instruments -s devices` to get a list of all the possible string values.
|
22
|
+
|
23
|
+
declare -xa simulators=(
|
24
|
+
"iPhone 6 (8.1 Simulator)",
|
25
|
+
"iPhone 6 Plus (8.1 Simulator)",
|
26
|
+
"iPhone 5S (8.1 Simulator)",
|
27
|
+
"iPhone 4S (8.1 Simulator)"
|
28
|
+
)
|
@@ -28,33 +28,28 @@ destination="$1"
|
|
28
28
|
scheme_name="$2"
|
29
29
|
ui_script="$3"
|
30
30
|
|
31
|
-
# The locale identifiers for the languages you want to shoot
|
32
|
-
# Use the format like en-US zh-Hans for filenames compatible with iTunes
|
33
|
-
# connect upload tool
|
34
|
-
# FYI: get the locale names for you existing app with iTMSTransporter and:
|
35
|
-
# grep locale ~/Desktop/*.itmsp/metadata.xml | grep name | sort -u
|
36
|
-
languages="en-US"
|
37
|
-
|
38
|
-
# The simulators we want to run the script against, declared as a Bash array.
|
39
|
-
# Run `instruments -w help` to get a list of all the possible string values.
|
40
|
-
#declare -a simulators=(
|
41
|
-
#"iPhone Retina (3.5-inch) - Simulator - iOS 7.1"
|
42
|
-
#"iPhone Retina (4-inch) - Simulator - iOS 7.1"
|
43
|
-
#"iPad Retina - Simulator - iOS 7.1"
|
44
|
-
#)
|
45
|
-
declare -a simulators=(
|
46
|
-
"iPhone 4s"
|
47
|
-
"iPhone 5s"
|
48
|
-
"iPhone 6"
|
49
|
-
"iPhone 6 Plus"
|
50
|
-
)
|
51
|
-
|
52
31
|
function main {
|
32
|
+
# Load configuration
|
33
|
+
# Not in a separate function because you can't exort arrays
|
34
|
+
# https://stackoverflow.com/questions/5564418/exporting-an-array-in-bash-script
|
35
|
+
# Will export languages and simulators bash variables
|
36
|
+
export UISS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
37
|
+
if [ -f "$UISS_DIR"/config-screenshots.sh ]; then
|
38
|
+
source "$UISS_DIR"/config-screenshots.sh
|
39
|
+
else
|
40
|
+
if [ -f "$UISS_DIR"/config-screenshots.example.sh ]; then
|
41
|
+
source "$UISS_DIR"/config-screenshots.example.sh
|
42
|
+
echo "WARNING: Using example config-screenshots file, you should create your own"
|
43
|
+
else
|
44
|
+
echo "Configuration \"config-screenshots.sh\" does not exist! Aborting."
|
45
|
+
exit 1
|
46
|
+
fi
|
47
|
+
fi
|
48
|
+
|
53
49
|
_check_destination
|
54
50
|
_check_ui_script
|
55
51
|
_check_scheme_name
|
56
52
|
_xcode clean build
|
57
|
-
_reset_sim
|
58
53
|
|
59
54
|
for simulator in "${simulators[@]}"; do
|
60
55
|
for language in $languages; do
|
@@ -92,11 +87,16 @@ function _check_ui_script {
|
|
92
87
|
# Abort if the UI script does not exist.
|
93
88
|
|
94
89
|
if [ -z "$ui_script" ]; then
|
95
|
-
ui_script="./
|
90
|
+
ui_script="./config-automation.js"
|
96
91
|
fi
|
97
92
|
if [ ! -f "$ui_script" ]; then
|
98
|
-
|
99
|
-
|
93
|
+
if [ -f "./config-automation.example.js" ]; then
|
94
|
+
ui_script="./config-automation.js"
|
95
|
+
echo "WARNING: Using example config-automation, please create your own"
|
96
|
+
else
|
97
|
+
echo "Config-automation does not exist! Aborting."
|
98
|
+
exit 1
|
99
|
+
fi
|
100
100
|
fi
|
101
101
|
}
|
102
102
|
|
@@ -121,7 +121,8 @@ function _xcode {
|
|
121
121
|
# or how I became to know this fact
|
122
122
|
xcodebuild -sdk "iphonesimulator$ios_version" \
|
123
123
|
CONFIGURATION_BUILD_DIR="$build_dir/build" \
|
124
|
-
-workspace $base.xcworkspace -scheme $scheme_name -configuration
|
124
|
+
-workspace "$base.xcworkspace" -scheme "$scheme_name" -configuration Debug \
|
125
|
+
PRODUCT_NAME="$scheme_name" \
|
125
126
|
DSTROOT=$build_dir \
|
126
127
|
OBJROOT=$build_dir \
|
127
128
|
SYMROOT=$build_dir \
|
@@ -129,14 +130,15 @@ function _xcode {
|
|
129
130
|
"$@"
|
130
131
|
xcodebuild -sdk "iphonesimulator$ios_version" \
|
131
132
|
CONFIGURATION_BUILD_DIR="$build_dir/build" \
|
132
|
-
|
133
|
-
|
133
|
+
-workspace "$base.xcworkspace" -scheme "$scheme_name" -configuration Debug \
|
134
|
+
PRODUCT_NAME="$scheme_name" \
|
134
135
|
DSTROOT=$build_dir \
|
135
136
|
OBJROOT=$build_dir \
|
136
137
|
SYMROOT=$build_dir \
|
137
138
|
ONLY_ACTIVE_ARCH=NO \
|
138
139
|
"$@"
|
139
|
-
cp -r "$build_dir/build
|
140
|
+
cp -r "$build_dir/build/$scheme_name.app" "$build_dir"
|
141
|
+
bundle_dir="$build_dir/$scheme_name.app"
|
140
142
|
else
|
141
143
|
xcodebuild -sdk "iphonesimulator$ios_version" \
|
142
144
|
CONFIGURATION_BUILD_DIR=$build_dir \
|
@@ -166,7 +168,7 @@ function _run_automation {
|
|
166
168
|
in language \"${language}\"..."
|
167
169
|
|
168
170
|
dev_tools_dir=`xcode-select -print-path`
|
169
|
-
tracetemplate="
|
171
|
+
tracetemplate="Automation"
|
170
172
|
|
171
173
|
# Check out the `unix_instruments.sh` script to see why we need this wrapper.
|
172
174
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
@@ -174,12 +176,11 @@ function _run_automation {
|
|
174
176
|
-w "$simulator" \
|
175
177
|
-D "$trace_results_dir/trace" \
|
176
178
|
-t "$tracetemplate" \
|
177
|
-
$bundle_dir \
|
179
|
+
"$bundle_dir" \
|
178
180
|
-e UIARESULTSPATH "$trace_results_dir" \
|
179
181
|
-e UIASCRIPT "$automation_script" \
|
180
182
|
-AppleLanguages "($language)" \
|
181
|
-
-AppleLocale "$language"
|
182
|
-
"$@"
|
183
|
+
-AppleLocale "$language"
|
183
184
|
|
184
185
|
find $trace_results_dir/Run\ 1/ -name *landscape*png -type f -exec sips -r -90 \{\} \;
|
185
186
|
}
|
@@ -195,18 +196,11 @@ function _copy_screenshots {
|
|
195
196
|
cp $trace_results_dir/Run\ 1/*.png "$destination/$language"
|
196
197
|
}
|
197
198
|
|
198
|
-
function _reset_sim {
|
199
|
-
count=`ps aux | grep [l]aunchd_sim | wc -l`
|
200
|
-
if [ $count -ne 0 ]
|
201
|
-
then
|
202
|
-
kill -9 $(ps -ef | grep [l]aunchd_sim | awk {'print $2'})
|
203
|
-
fi
|
204
|
-
}
|
205
|
-
|
206
199
|
function _close_sim {
|
207
200
|
# I know, I know. It says "iPhone Simulator". For some reason,
|
208
201
|
# that's the only way Applescript can identify it.
|
209
202
|
osascript -e "tell application \"iPhone Simulator\" to quit"
|
210
203
|
}
|
211
204
|
|
212
|
-
main
|
205
|
+
main
|
206
|
+
|
metadata
CHANGED
@@ -1,125 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: longbow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Intermark Interactive
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fileutils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: commander
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '4.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '4.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: dotenv
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.7'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.7'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rmagick
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 2.13.2
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 2.13.2
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: xcodeproj
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: json
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
description: One codebase. Multiple App Store submission targets with different icons,
|
@@ -131,27 +131,28 @@ executables:
|
|
131
131
|
extensions: []
|
132
132
|
extra_rdoc_files: []
|
133
133
|
files:
|
134
|
-
-
|
135
|
-
-
|
136
|
-
-
|
137
|
-
-
|
138
|
-
-
|
139
|
-
-
|
140
|
-
-
|
141
|
-
-
|
142
|
-
-
|
143
|
-
-
|
144
|
-
-
|
145
|
-
-
|
146
|
-
-
|
147
|
-
-
|
148
|
-
-
|
149
|
-
-
|
150
|
-
-
|
151
|
-
-
|
152
|
-
-
|
153
|
-
-
|
154
|
-
-
|
134
|
+
- ./Gemfile
|
135
|
+
- ./LICENSE.txt
|
136
|
+
- ./README.md
|
137
|
+
- ./Rakefile
|
138
|
+
- ./lib/longbow.rb
|
139
|
+
- ./lib/longbow/colors.rb
|
140
|
+
- ./lib/longbow/commands.rb
|
141
|
+
- ./lib/longbow/commands/aim.rb
|
142
|
+
- ./lib/longbow/commands/install.rb
|
143
|
+
- ./lib/longbow/commands/shoot.rb
|
144
|
+
- ./lib/longbow/images.rb
|
145
|
+
- ./lib/longbow/json.rb
|
146
|
+
- ./lib/longbow/plist.rb
|
147
|
+
- ./lib/longbow/targets.rb
|
148
|
+
- ./lib/longbow/utilities.rb
|
149
|
+
- ./lib/longbow/version.rb
|
150
|
+
- ./resources/aim.sh
|
151
|
+
- ./resources/banner.png
|
152
|
+
- ./resources/capture.js
|
153
|
+
- ./resources/config-screenshots.sh
|
154
|
+
- ./resources/ui-screen-shooter.sh
|
155
|
+
- ./resources/unix_instruments.sh
|
155
156
|
- bin/longbow
|
156
157
|
homepage: https://github.com/intermark/longbow
|
157
158
|
licenses:
|
@@ -163,17 +164,17 @@ require_paths:
|
|
163
164
|
- lib
|
164
165
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
166
|
requirements:
|
166
|
-
- -
|
167
|
+
- - '>='
|
167
168
|
- !ruby/object:Gem::Version
|
168
169
|
version: '0'
|
169
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
171
|
requirements:
|
171
|
-
- -
|
172
|
+
- - '>='
|
172
173
|
- !ruby/object:Gem::Version
|
173
174
|
version: '0'
|
174
175
|
requirements: []
|
175
176
|
rubyforge_project:
|
176
|
-
rubygems_version: 2.
|
177
|
+
rubygems_version: 2.4.2
|
177
178
|
signing_key:
|
178
179
|
specification_version: 4
|
179
180
|
summary: Better target creation for one iOS codebase.
|
data/Gemfile.lock
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
longbow (0.6.3)
|
5
|
-
bundler (~> 1.3)
|
6
|
-
commander (~> 4.1)
|
7
|
-
dotenv (~> 0.7)
|
8
|
-
fileutils
|
9
|
-
json
|
10
|
-
rmagick (~> 2.13.2)
|
11
|
-
xcodeproj
|
12
|
-
|
13
|
-
GEM
|
14
|
-
remote: https://rubygems.org/
|
15
|
-
specs:
|
16
|
-
CFPropertyList (2.2.8)
|
17
|
-
activesupport (3.2.19)
|
18
|
-
i18n (~> 0.6, >= 0.6.4)
|
19
|
-
multi_json (~> 1.0)
|
20
|
-
colored (1.2)
|
21
|
-
commander (4.2.0)
|
22
|
-
highline (~> 1.6.11)
|
23
|
-
dotenv (0.11.1)
|
24
|
-
dotenv-deployment (~> 0.0.2)
|
25
|
-
dotenv-deployment (0.0.2)
|
26
|
-
fileutils (0.7)
|
27
|
-
rmagick (>= 2.13.1)
|
28
|
-
highline (1.6.21)
|
29
|
-
i18n (0.6.11)
|
30
|
-
json (1.8.1)
|
31
|
-
multi_json (1.10.1)
|
32
|
-
rake (10.1.1)
|
33
|
-
rmagick (2.13.3)
|
34
|
-
xcodeproj (0.19.1)
|
35
|
-
CFPropertyList (~> 2.2)
|
36
|
-
activesupport (~> 3.0)
|
37
|
-
colored (~> 1.2)
|
38
|
-
|
39
|
-
PLATFORMS
|
40
|
-
ruby
|
41
|
-
|
42
|
-
DEPENDENCIES
|
43
|
-
longbow!
|
44
|
-
rake
|