motion-screenshots 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/lib/motion-screenshots.rb +32 -6
- data/motion-screenshots.gemspec +5 -4
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e53e84179de1cb7eec4ba699f61912bc1a5a63cd
|
4
|
+
data.tar.gz: 8fa3636341c1d5445e535a36b813108ffe17aa8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e521694e5000a6ff783fc959c404ae3d9f7176c5833d9b86fbb2900b23038502f1d3aa138029c672bdf9e735084617096795b2d9d6120d6c59a398a925e707d
|
7
|
+
data.tar.gz: bf50209e4b47fb1716a6b8cf943cb3bbb6083bdfb3a1d49250ccfaa8798e0ef485980fb0f2f982f044221b32d1e2d43b48a03e179d3a43990dd7678c454360d3
|
data/README.md
CHANGED
data/lib/motion-screenshots.rb
CHANGED
@@ -3,8 +3,10 @@ unless defined?(Motion::Project::Config)
|
|
3
3
|
end
|
4
4
|
|
5
5
|
require 'motion-cocoapods'
|
6
|
+
require 'motion-env'
|
6
7
|
require 'fileutils'
|
7
8
|
require 'shellwords'
|
9
|
+
require 'plist'
|
8
10
|
|
9
11
|
lib_dir_path = File.dirname(File.expand_path(__FILE__))
|
10
12
|
Motion::Project::App.setup do |app|
|
@@ -40,6 +42,12 @@ namespace 'screenshots' do
|
|
40
42
|
app_config.is_taking_screenshots = true
|
41
43
|
app_config.env['MOTION_SCREENSHOTS_RUNNING'] = true
|
42
44
|
|
45
|
+
if app_config.archs['iPhoneSimulator'].include? 'x86_64'
|
46
|
+
# required until KSScreenshotManager is 64bit compatible
|
47
|
+
App.warn 'Forcing 32bit-only build target for screenshots..'
|
48
|
+
app_config.archs['iPhoneSimulator'] = %w(i386)
|
49
|
+
end
|
50
|
+
|
43
51
|
screenshots_output_path = ENV['SCREENSHOTS_DIR']
|
44
52
|
screenshots_output_path ||= App.config.screenshots_output_path
|
45
53
|
screenshots_output_path ||= File.join(`pwd`.strip, "screenshots", Time.now.to_i.to_s)
|
@@ -47,13 +55,31 @@ namespace 'screenshots' do
|
|
47
55
|
|
48
56
|
at_exit {
|
49
57
|
# Copy files
|
50
|
-
target = ENV['target'] || app_config.sdk_version
|
51
|
-
sim_apps = File.expand_path("~/Library/Application Support/iPhone Simulator/*/Applications")
|
52
|
-
app_dir = nil
|
53
58
|
app = app_config.app_bundle('iPhoneSimulator')
|
54
|
-
|
55
|
-
|
56
|
-
|
59
|
+
app_id = app_config.identifier
|
60
|
+
app_dir = nil
|
61
|
+
|
62
|
+
if File.directory? File.expand_path( "~/Library/Developer/CoreSimulator/Devices" )
|
63
|
+
# XCode 6+ uses the same random UUID layout to store applications and
|
64
|
+
# application sandboxes as the native iOS device does (== more work..).
|
65
|
+
sim_apps = File.expand_path("~/Library/Developer/CoreSimulator/Devices")
|
66
|
+
app_dir = File.dirname(Dir.glob("#{sim_apps}/**/#{File.basename(app)}").sort_by{ |f|
|
67
|
+
File.mtime(f)
|
68
|
+
}.reverse.first)
|
69
|
+
# Get the simulator UUID, then read it's application install data..
|
70
|
+
sim_base = app_dir.gsub( %r{(^.*/Devices/\h{8}-(?:\h{4}-){3}\h{12})/.*}, '\\1' )
|
71
|
+
app_infos = Plist::parse_xml(open("|plutil -convert xml1 -o - -- #{sim_base}/data/Library/BackBoard/applicationState.plist").read)
|
72
|
+
# ..and finally determine the sandbox data directory
|
73
|
+
app_dir = app_infos[app_config.identifier]['compatibilityInfo']['sandboxPath']
|
74
|
+
else
|
75
|
+
# pre XCode 6
|
76
|
+
target = ENV['target'] || app_config.sdk_version
|
77
|
+
sim_apps = File.expand_path("~/Library/Application Support/iPhone Simulator/*/Applications")
|
78
|
+
app_dir = File.dirname(Dir.glob("#{sim_apps}/**/#{File.basename(app)}").sort_by { |f|
|
79
|
+
File.mtime(f)
|
80
|
+
}.reverse.first)
|
81
|
+
end
|
82
|
+
|
57
83
|
motion_screenshots = File.join(app_dir, "Documents", "motion_screenshots")
|
58
84
|
screenshot_files = Dir[File.join(motion_screenshots, "**", "*")]
|
59
85
|
FileUtils.cp_r(screenshot_files, screenshots_output_path)
|
data/motion-screenshots.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "motion-screenshots"
|
5
|
-
spec.version = "0.1.
|
5
|
+
spec.version = "0.1.1"
|
6
6
|
spec.authors = ["Clay Allsopp"]
|
7
7
|
spec.email = ["clay@usepropeller.com"]
|
8
8
|
spec.description = "Take screenshots with RubyMotion"
|
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency "motion-cocoapods", ">= 1.
|
23
|
-
spec.add_dependency "motion-env", ">= 0.0.
|
24
|
-
|
22
|
+
spec.add_dependency "motion-cocoapods", ">= 1.7.0"
|
23
|
+
spec.add_dependency "motion-env", ">= 0.0.4"
|
24
|
+
spec.add_dependency "plist", ">= 3.1.0"
|
25
|
+
|
25
26
|
spec.add_development_dependency "rake"
|
26
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-screenshots
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clay Allsopp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: motion-cocoapods
|
@@ -16,28 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.7.0
|
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
|
-
version: 1.
|
26
|
+
version: 1.7.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: motion-env
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.4
|
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
|
-
version: 0.0.
|
40
|
+
version: 0.0.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: plist
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.1.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.1.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|