skeleton-ui 0.1.9 → 0.1.11
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/README.md +1 -0
- data/bin/skeleton +4 -4
- data/lib/skeleton.rb +11 -22
- data/lib/skeleton/android.rb +27 -13
- data/lib/skeleton/base.rb +4 -17
- data/lib/skeleton/ios.rb +30 -23
- data/lib/skeleton/logger.rb +14 -0
- data/lib/skeleton/root.rb +1 -2
- data/lib/skeleton/version.rb +2 -2
- data/{html → server}/index.css +0 -0
- data/{html → server}/server.rb +3 -3
- data/{html → server}/skeleton.html +0 -0
- data/{html → server}/template.html.erb +0 -0
- data/xcodeproj/Skeleton.xcodeproj/project.pbxproj +4 -4
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 129ebeb0d1f8014b655ec386cc47546974bceb1b3d7117e51b94ce08235045ff
|
4
|
+
data.tar.gz: a3ec2f542d04712de55bd079dfa96770817c96aac239951ea2fe58a55bfe9cc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af6e514ead6d99c5636eaf54bce53d8288279d6f7b0a68674ae613b226b87077631a9bcca36dbfda676a0516782cf338a56b10ccad03364f55d97a2187af6084
|
7
|
+
data.tar.gz: d7aa3d27c079ea9e084e16e10ebe8f7abb10c9adc4619649c8bdb32f02e0e55d87aab665bf0aa9c0de98a36023f5a18f4798e06bf58cf94c18d8c86e97d18eb8
|
data/README.md
CHANGED
@@ -92,6 +92,7 @@ Docs:
|
|
92
92
|
------
|
93
93
|
|
94
94
|
- [Setting up Skeleton for working with iOS real devices](https://github.com/forqa/skeleton/blob/master/docs/real-ios-device-config.md)
|
95
|
+
- [Setting up RVM for deciding permissions problems](https://github.com/alter-al/skeleton/blob/master/docs/permissions_error.md)
|
95
96
|
|
96
97
|
## License
|
97
98
|
|
data/bin/skeleton
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'commander/import'
|
4
4
|
require_relative '../lib/skeleton'
|
5
5
|
require_relative '../lib/skeleton/root'
|
6
|
+
require_relative '../lib/skeleton/logger'
|
6
7
|
|
7
8
|
module Skeleton
|
8
9
|
program :version, VERSION
|
@@ -27,9 +28,8 @@ module Skeleton
|
|
27
28
|
c.description = 'Clear user cache'
|
28
29
|
c.example 'description', 'skeleton clear'
|
29
30
|
c.action do |_args, _options|
|
30
|
-
|
31
|
-
|
32
|
-
base.log.info("Successfully clear user cache")
|
31
|
+
Base.new.clear
|
32
|
+
Log.info('Successfully clear user cache')
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -40,7 +40,7 @@ module Skeleton
|
|
40
40
|
c.option '-p', '--port PORT', String, 'Set web-server port'
|
41
41
|
c.action do |_args, options|
|
42
42
|
options.default(port: 4567)
|
43
|
-
system("ruby #{Base::ROOT_DIR}/
|
43
|
+
system("ruby #{Base::ROOT_DIR}/server/server.rb #{options.port}")
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/lib/skeleton.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'fileutils'
|
3
3
|
require 'nokogiri'
|
4
|
-
require 'logger'
|
5
4
|
require 'colorize'
|
6
5
|
require 'mini_magick'
|
7
6
|
require_relative 'skeleton/languages.rb'
|
8
7
|
require_relative 'skeleton/root.rb'
|
9
8
|
require_relative 'skeleton/version'
|
9
|
+
require_relative 'skeleton/logger'
|
10
10
|
require_relative 'skeleton/base'
|
11
11
|
require_relative 'skeleton/ios'
|
12
12
|
require_relative 'skeleton/android'
|
@@ -17,8 +17,6 @@ module Skeleton
|
|
17
17
|
|
18
18
|
def initialize(options)
|
19
19
|
self.platform = options.platform
|
20
|
-
self.udid = options.udid
|
21
|
-
self.bundle_id = options.bundle
|
22
20
|
self.browser = options.browser
|
23
21
|
@driver = ios? ? IOS.new(options) : Android.new(options)
|
24
22
|
end
|
@@ -31,16 +29,6 @@ module Skeleton
|
|
31
29
|
@platform = platform
|
32
30
|
end
|
33
31
|
|
34
|
-
def udid=(udid)
|
35
|
-
raise 'Not set udid [-u arg]' if udid.nil?
|
36
|
-
@udid = udid
|
37
|
-
end
|
38
|
-
|
39
|
-
def bundle_id=(bundle_id)
|
40
|
-
raise 'Not set bundle_id [-b arg]' if @platform == 'ios' && bundle_id.nil?
|
41
|
-
@bundle_id = bundle_id
|
42
|
-
end
|
43
|
-
|
44
32
|
def run
|
45
33
|
@driver.clear
|
46
34
|
@driver.precondition
|
@@ -63,9 +51,9 @@ module Skeleton
|
|
63
51
|
@elements_tree.gsub!('<', '<')
|
64
52
|
@elements_tree.gsub!('>', '>')
|
65
53
|
end
|
66
|
-
template = File.read("#{Base::ROOT_DIR}/
|
54
|
+
template = File.read("#{Base::ROOT_DIR}/server/template.html.erb")
|
67
55
|
result = ERB.new(template).result(binding)
|
68
|
-
File.open("#{Base::ROOT_DIR}/
|
56
|
+
File.open("#{Base::ROOT_DIR}/server/#{lang}.html", 'w+') { |f| f.write(result) }
|
69
57
|
end
|
70
58
|
end
|
71
59
|
|
@@ -73,19 +61,20 @@ module Skeleton
|
|
73
61
|
screenshot = Dir["#{Base::ATTACHMENTS_FOLDER}/*.png"].first
|
74
62
|
image = MiniMagick::Image.new(screenshot)
|
75
63
|
image.rotate(90) if image.width > image.height
|
76
|
-
rescue MiniMagick::Error =>
|
77
|
-
|
64
|
+
rescue MiniMagick::Error => err
|
65
|
+
Log.warn(err)
|
78
66
|
ensure
|
79
|
-
FileUtils.cp_r(screenshot, "#{Base::ROOT_DIR}/
|
67
|
+
FileUtils.cp_r(screenshot, "#{Base::ROOT_DIR}/server/screenshot.png")
|
80
68
|
end
|
81
69
|
|
82
70
|
def open_url
|
83
|
-
port = File.read("#{Base::ROOT_DIR}/
|
71
|
+
port = File.read("#{Base::ROOT_DIR}/server/port")
|
84
72
|
url = "http://localhost:#{port}/skeleton"
|
85
73
|
`open #{url}` if @browser
|
86
|
-
|
87
|
-
rescue Errno::ENOENT
|
88
|
-
|
74
|
+
Log.info("Look at your pretty page objects: \n#{url} 😍")
|
75
|
+
rescue Errno::ENOENT
|
76
|
+
Log.warn('Something went wrong with skeleton server 💩' \
|
77
|
+
"\nTry to rerun it (:")
|
89
78
|
end
|
90
79
|
|
91
80
|
def ios?
|
data/lib/skeleton/android.rb
CHANGED
@@ -16,20 +16,24 @@ class Android < Base
|
|
16
16
|
python: :find_element_by_xpath
|
17
17
|
}.freeze
|
18
18
|
|
19
|
-
attr_accessor :
|
19
|
+
attr_accessor :udid
|
20
20
|
|
21
21
|
def initialize(options)
|
22
|
-
self.platform = options.platform
|
23
22
|
self.udid = options.udid
|
24
23
|
@language = Language.new
|
25
24
|
end
|
26
25
|
|
27
26
|
def skeletoner
|
28
|
-
|
27
|
+
check_udid
|
28
|
+
Log.info('We starting to skeleton your screen 🚀')
|
29
29
|
create_page_objects
|
30
30
|
save_screenshot
|
31
31
|
save(code: page_source)
|
32
|
-
|
32
|
+
Log.info('We successfully skeletoned your screen 👻')
|
33
|
+
end
|
34
|
+
|
35
|
+
def devices
|
36
|
+
`adb devices`.scan(/\n(.*)\t/).flatten
|
33
37
|
end
|
34
38
|
|
35
39
|
private
|
@@ -55,7 +59,7 @@ class Android < Base
|
|
55
59
|
end
|
56
60
|
i += 1
|
57
61
|
end
|
58
|
-
locator = "//#{line[CLASS]}[@#{CONTENT_DESC}='#{line[CONTENT_DESC]}
|
62
|
+
locator = "//#{line[CLASS]}[@#{CONTENT_DESC}='#{line[CONTENT_DESC]}']]"
|
59
63
|
code_generation(method_name: method_name,
|
60
64
|
locator_type: XPATH,
|
61
65
|
locator_value: locator)
|
@@ -74,7 +78,7 @@ class Android < Base
|
|
74
78
|
end
|
75
79
|
i += 1
|
76
80
|
end
|
77
|
-
locator = "//#{line[CLASS]}[@#{TEXT}='#{text}]
|
81
|
+
locator = "//#{line[CLASS]}[@#{TEXT}='#{text}']"
|
78
82
|
code_generation(method_name: method_name,
|
79
83
|
locator_type: XPATH,
|
80
84
|
locator_value: locator)
|
@@ -91,7 +95,7 @@ class Android < Base
|
|
91
95
|
end
|
92
96
|
|
93
97
|
def create_page_objects
|
94
|
-
|
98
|
+
Log.info('Generation page objects for your awesome language 💪')
|
95
99
|
page_source_html = Nokogiri::HTML.parse(page_source)
|
96
100
|
page_source_html.css('node').each { |line| create_locator(line) }
|
97
101
|
end
|
@@ -117,23 +121,33 @@ class Android < Base
|
|
117
121
|
|
118
122
|
def page_source
|
119
123
|
unless @page_source
|
120
|
-
|
124
|
+
Log.info('Getting screen source tree ⚒')
|
121
125
|
dump = `adb -s #{@udid} shell uiautomator dump | egrep -o '/.*?xml'`
|
122
126
|
@page_source = `adb -s #{@udid} shell cat #{dump}`
|
123
127
|
if @page_source.empty?
|
124
|
-
|
125
|
-
Process.exit(1)
|
128
|
+
Log.error('Something went wrong. Check your device')
|
126
129
|
end
|
127
|
-
|
130
|
+
Log.info('Successfully getting Screen Source Tree 🔥')
|
128
131
|
end
|
129
132
|
@page_source
|
130
133
|
end
|
131
134
|
|
132
135
|
def save_screenshot
|
133
|
-
|
134
|
-
file_name = "#{
|
136
|
+
Log.info('Saving screenshot 📷')
|
137
|
+
file_name = "android_#{TIMESTAMP}.png"
|
135
138
|
`adb -s #{@udid} shell screencap -p /sdcard/#{file_name}`
|
136
139
|
`adb -s #{@udid} pull /sdcard/#{file_name} #{ATTACHMENTS_FOLDER}/`
|
137
140
|
`adb -s #{@udid} shell rm /sdcard/#{file_name}`
|
138
141
|
end
|
142
|
+
|
143
|
+
def check_udid
|
144
|
+
Log.info('Checking device udid 👨💻')
|
145
|
+
@udid = devices.first if @udid.nil? && devices.size == 1
|
146
|
+
return if devices.include?(@udid)
|
147
|
+
if @udid.nil?
|
148
|
+
Log.error("Provide device udid [-u]")
|
149
|
+
elsif !devices.include?(@udid)
|
150
|
+
Log.error("No such devices with udid: #{@udid}")
|
151
|
+
end
|
152
|
+
end
|
139
153
|
end
|
data/lib/skeleton/base.rb
CHANGED
@@ -4,25 +4,20 @@ class Base
|
|
4
4
|
TIMESTAMP = (Time.now.to_f * 1000).to_i
|
5
5
|
|
6
6
|
def precondition
|
7
|
-
create_logger
|
8
7
|
clear
|
9
|
-
FileUtils.rm_rf("#{ROOT_DIR}/
|
8
|
+
FileUtils.rm_rf("#{ROOT_DIR}/server/screenshot.png")
|
10
9
|
FileUtils.mkdir_p(PAGE_OBJECTS_FOLDER)
|
11
10
|
FileUtils.mkdir_p(ATTACHMENTS_FOLDER)
|
12
11
|
rescue
|
13
|
-
|
12
|
+
Log.error("Advice you to use not system ruby \n" \
|
14
13
|
'For more info read: https://github.com/alter-al/' \
|
15
14
|
'skeleton/blob/master/docs/permissions_error.md')
|
16
|
-
raise
|
17
|
-
end
|
18
|
-
|
19
|
-
def log
|
20
|
-
create_logger if @log.nil?
|
21
|
-
@log
|
22
15
|
end
|
23
16
|
|
24
17
|
def skeletoner; end
|
25
18
|
|
19
|
+
def devices; end
|
20
|
+
|
26
21
|
def clear
|
27
22
|
FileUtils.rm_rf(PAGE_OBJECTS_FOLDER)
|
28
23
|
FileUtils.rm_rf(ATTACHMENTS_FOLDER)
|
@@ -35,14 +30,6 @@ class Base
|
|
35
30
|
File.open(file_path, 'a') { |f| f.write(code) }
|
36
31
|
end
|
37
32
|
|
38
|
-
def create_logger
|
39
|
-
@log = Logger.new(STDOUT)
|
40
|
-
@log.level = Logger::INFO
|
41
|
-
@log.formatter = proc do |severity, datetime, _progname, msg|
|
42
|
-
"[#{severity}] #{datetime}: " + "#{msg}\n".colorize(:light_cyan)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
33
|
def snake_style(method_name)
|
47
34
|
method_name
|
48
35
|
.tr("@()[]'\"*!?{}:;#$^.,\/\\", '')
|
data/lib/skeleton/ios.rb
CHANGED
@@ -16,28 +16,36 @@ class IOS < Base
|
|
16
16
|
XCRESULTS_FOLDER = "#{ROOT_DIR}/XCResults".freeze
|
17
17
|
XCODEPROJ_FOLDER = "#{ROOT_DIR}/xcodeproj".freeze
|
18
18
|
|
19
|
-
attr_accessor :
|
19
|
+
attr_accessor :udid, :bundle_id
|
20
20
|
|
21
21
|
def initialize(options)
|
22
|
-
self.platform = options.platform
|
23
22
|
self.udid = options.udid
|
24
23
|
self.bundle_id = options.bundle
|
25
24
|
@language = Language.new
|
26
25
|
end
|
27
26
|
|
28
27
|
def skeletoner
|
29
|
-
log.info('We starting to skeleton your screen 🚀')
|
30
28
|
check_udid
|
31
29
|
check_bundle
|
30
|
+
Log.info('We starting to skeleton your screen 🚀')
|
32
31
|
page_source
|
33
32
|
create_page_objects
|
34
33
|
save_screenshot
|
35
34
|
save(code: page_source)
|
36
|
-
|
35
|
+
Log.info('We successfully skeletoned your screen 👻')
|
36
|
+
end
|
37
|
+
|
38
|
+
def devices
|
39
|
+
`idevice_id -l`.split.uniq.map { |d| d }
|
37
40
|
end
|
38
41
|
|
39
42
|
private
|
40
43
|
|
44
|
+
def bundle_id=(bundle_id)
|
45
|
+
raise 'Not set bundle_id [-b arg]' if bundle_id.nil?
|
46
|
+
@bundle_id = bundle_id
|
47
|
+
end
|
48
|
+
|
41
49
|
def create_locator(line)
|
42
50
|
locator_by_id = locator_by_id(line)
|
43
51
|
locator_by_label = locator_by_label(line)
|
@@ -65,7 +73,7 @@ class IOS < Base
|
|
65
73
|
end
|
66
74
|
|
67
75
|
def create_page_objects
|
68
|
-
|
76
|
+
Log.info('Generation page objects for your awesome language 💪')
|
69
77
|
page_source.each_line do |line|
|
70
78
|
break if line.include?(' StatusBar, ')
|
71
79
|
next if line.include?('Application, ')
|
@@ -123,7 +131,7 @@ class IOS < Base
|
|
123
131
|
|
124
132
|
def page_source
|
125
133
|
if @page_source.nil?
|
126
|
-
|
134
|
+
Log.info('Getting screen source tree ⚒')
|
127
135
|
FileUtils.rm_rf(XCRESULTS_FOLDER)
|
128
136
|
start_grep = 'start_grep_tag'
|
129
137
|
end_grep = 'end_grep_tag'
|
@@ -138,27 +146,16 @@ class IOS < Base
|
|
138
146
|
@page_source.slice!(start_grep)
|
139
147
|
@page_source.slice!(end_grep)
|
140
148
|
if @page_source.empty?
|
141
|
-
|
149
|
+
Log.error("Try to sign Skeleton and SkeletonUI targets in " \
|
142
150
|
"#{XCODEPROJ_FOLDER}/Skeleton.xcodeproj \n" \
|
143
151
|
'For more info read: https://github.com/alter-al/' \
|
144
152
|
'skeleton/blob/master/docs/real-ios-device-config.md')
|
145
|
-
raise
|
146
153
|
end
|
147
|
-
|
154
|
+
Log.info('Successfully getting Screen Source Tree 🔥')
|
148
155
|
end
|
149
156
|
@page_source
|
150
157
|
end
|
151
158
|
|
152
|
-
def check_udid
|
153
|
-
return unless @simulator.nil?
|
154
|
-
log.info('Checking iOS UDID 👨💻')
|
155
|
-
simulators = `xcrun simctl list`
|
156
|
-
@simulator = simulators.include?(@udid)
|
157
|
-
return if @simulator || `instruments -s devices`.include?(@udid)
|
158
|
-
log.fatal("No such devices with UDID: #{@udid}")
|
159
|
-
raise
|
160
|
-
end
|
161
|
-
|
162
159
|
def check_bundle
|
163
160
|
if @simulator
|
164
161
|
return if `xcrun simctl appinfo #{@udid} #{@bundle_id}`
|
@@ -167,16 +164,26 @@ class IOS < Base
|
|
167
164
|
return if `ideviceinstaller -u #{@udid} -l`
|
168
165
|
.include?("#{@bundle_id},")
|
169
166
|
end
|
170
|
-
|
171
|
-
raise
|
167
|
+
Log.error("No such apps with bundle_id: #{@bundle_id}")
|
172
168
|
end
|
173
169
|
|
174
170
|
def save_screenshot
|
175
|
-
|
171
|
+
Log.info('Saving screenshot 📷')
|
176
172
|
png_path = "#{XCRESULTS_FOLDER}/Attachments/*.png"
|
177
|
-
new_path = "#{ATTACHMENTS_FOLDER}
|
173
|
+
new_path = "#{ATTACHMENTS_FOLDER}/ios_#{TIMESTAMP}.png"
|
178
174
|
screenshots = Dir[png_path].collect { |png| File.expand_path(png) }
|
179
175
|
FileUtils.cp(screenshots[0], new_path)
|
180
176
|
FileUtils.rm_rf(XCRESULTS_FOLDER)
|
181
177
|
end
|
178
|
+
|
179
|
+
def check_udid
|
180
|
+
return unless @simulator.nil?
|
181
|
+
Log.info('Checking device udid 👨💻')
|
182
|
+
@simulator = `xcrun simctl list`.include?(@udid) unless @udid.nil?
|
183
|
+
@udid = devices.first if @udid.nil? && devices.size == 1
|
184
|
+
Log.error("Provide device udid [-u]") if @udid.nil?
|
185
|
+
unless @simulator || devices.include?(@udid)
|
186
|
+
Log.error("No such devices with udid: #{@udid}")
|
187
|
+
end
|
188
|
+
end
|
182
189
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Log
|
2
|
+
def self.info(message)
|
3
|
+
puts "[INFO] #{Time.now}: #{message}".colorize(:light_cyan)
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.warn(message)
|
7
|
+
puts "[WARN] #{Time.now}: #{message}".colorize(:light_yellow)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.error(message)
|
11
|
+
puts "[ERROR] #{Time.now}: #{message}".colorize(:light_red)
|
12
|
+
Process.exit(1)
|
13
|
+
end
|
14
|
+
end
|
data/lib/skeleton/root.rb
CHANGED
data/lib/skeleton/version.rb
CHANGED
data/{html → server}/index.css
RENAMED
File without changes
|
data/{html → server}/server.rb
RENAMED
@@ -4,7 +4,7 @@ require_relative '../lib/skeleton/root'
|
|
4
4
|
server_port = ARGV[0]
|
5
5
|
set :port, server_port
|
6
6
|
|
7
|
-
File.open("#{Base::ROOT_DIR}/
|
7
|
+
File.open("#{Base::ROOT_DIR}/server/port", 'w+') { |f| f.write(server_port) }
|
8
8
|
|
9
9
|
get '/' do
|
10
10
|
redirect "skeleton"
|
@@ -13,11 +13,11 @@ end
|
|
13
13
|
get '/:file' do
|
14
14
|
domain = params[:file].split('.').last
|
15
15
|
file = domain == params[:file] ? "#{domain}.html" : params[:file]
|
16
|
-
send_file "#{Base::ROOT_DIR}/
|
16
|
+
send_file "#{Base::ROOT_DIR}/server/#{file}"
|
17
17
|
end
|
18
18
|
|
19
19
|
post '/:file' do
|
20
20
|
domain = params[:file].split('.').last
|
21
21
|
file = domain == params[:file] ? "#{domain}.html" : params[:file]
|
22
|
-
send_file "#{Base::ROOT_DIR}/
|
22
|
+
send_file "#{Base::ROOT_DIR}/server/#{file}"
|
23
23
|
end
|
File without changes
|
File without changes
|
@@ -354,7 +354,7 @@
|
|
354
354
|
buildSettings = {
|
355
355
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
356
356
|
CODE_SIGN_STYLE = Automatic;
|
357
|
-
DEVELOPMENT_TEAM =
|
357
|
+
DEVELOPMENT_TEAM = "";
|
358
358
|
INFOPLIST_FILE = Skeleton/Info.plist;
|
359
359
|
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
360
360
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
@@ -370,7 +370,7 @@
|
|
370
370
|
buildSettings = {
|
371
371
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
372
372
|
CODE_SIGN_STYLE = Automatic;
|
373
|
-
DEVELOPMENT_TEAM =
|
373
|
+
DEVELOPMENT_TEAM = "";
|
374
374
|
INFOPLIST_FILE = Skeleton/Info.plist;
|
375
375
|
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
376
376
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
@@ -386,7 +386,7 @@
|
|
386
386
|
buildSettings = {
|
387
387
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
388
388
|
CODE_SIGN_STYLE = Automatic;
|
389
|
-
DEVELOPMENT_TEAM =
|
389
|
+
DEVELOPMENT_TEAM = "";
|
390
390
|
INFOPLIST_FILE = SkeletonUITests/Info.plist;
|
391
391
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
392
392
|
PRODUCT_BUNDLE_IDENTIFIER = ru.forqa.SkeletonUITests;
|
@@ -402,7 +402,7 @@
|
|
402
402
|
buildSettings = {
|
403
403
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
404
404
|
CODE_SIGN_STYLE = Automatic;
|
405
|
-
DEVELOPMENT_TEAM =
|
405
|
+
DEVELOPMENT_TEAM = "";
|
406
406
|
INFOPLIST_FILE = SkeletonUITests/Info.plist;
|
407
407
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
408
408
|
PRODUCT_BUNDLE_IDENTIFIER = ru.forqa.SkeletonUITests;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skeleton-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- a.alterpesotskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -161,17 +161,18 @@ files:
|
|
161
161
|
- docs/real-ios-device-config.md
|
162
162
|
- docs/sign_xcproj.png
|
163
163
|
- docs/untrusted-dev.png
|
164
|
-
- html/index.css
|
165
|
-
- html/server.rb
|
166
|
-
- html/skeleton.html
|
167
|
-
- html/template.html.erb
|
168
164
|
- lib/skeleton.rb
|
169
165
|
- lib/skeleton/android.rb
|
170
166
|
- lib/skeleton/base.rb
|
171
167
|
- lib/skeleton/ios.rb
|
172
168
|
- lib/skeleton/languages.rb
|
169
|
+
- lib/skeleton/logger.rb
|
173
170
|
- lib/skeleton/root.rb
|
174
171
|
- lib/skeleton/version.rb
|
172
|
+
- server/index.css
|
173
|
+
- server/server.rb
|
174
|
+
- server/skeleton.html
|
175
|
+
- server/template.html.erb
|
175
176
|
- skeleton.gemspec
|
176
177
|
- xcodeproj/Skeleton.xcodeproj/project.pbxproj
|
177
178
|
- xcodeproj/Skeleton.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|