slowlane 0.0.1.alpha
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 +7 -0
- data/.gitignore +4 -0
- data/Gemfile +2 -0
- data/README.md +21 -0
- data/Rakefile +5 -0
- data/bin/slowlane-itunes +22 -0
- data/bin/slowlane-portal +32 -0
- data/lib/slowlane/itunes/app.rb +33 -0
- data/lib/slowlane/itunes/team.rb +25 -0
- data/lib/slowlane/itunes/util.rb +47 -0
- data/lib/slowlane/portal/app.rb +35 -0
- data/lib/slowlane/portal/device.rb +39 -0
- data/lib/slowlane/portal/profile.rb +37 -0
- data/lib/slowlane/portal/team.rb +22 -0
- data/lib/slowlane/portal/util.rb +47 -0
- data/slowlane.gemspec +24 -0
- metadata +89 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 4da5cf0bb5f1067cab8ebc8ef1bb464409da21f2
|
|
4
|
+
data.tar.gz: bbd56b8f4170cba7a4ae99b091a77b411b17b6e7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e3b6ecdfa0c0a8b8ad0c8e8ef6989fa57af9caf53e526791abbc8149a538134f9b5b755596dc3d639387bbe1489ed89ac62954972a1843a7a68b60f7c0f60994
|
|
7
|
+
data.tar.gz: 2cbfd8dff057a46dadc63c40cf9b34f39fc3da39179ac3a42af23631ccee341c2f6a22a61c75a9a5d36402af953deaeb433a7abcfcdea1690951a15d7ce24b3a
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Slowlane
|
|
2
|
+
## Description
|
|
3
|
+
> The philosophy is never to be clever but the user in control and ask him to clarify rather than making a clever choice.
|
|
4
|
+
|
|
5
|
+
it's like [fastlane tools](https://fastlane.tools) but without the magic.
|
|
6
|
+
|
|
7
|
+
## Why ?
|
|
8
|
+
|
|
9
|
+
Fastlane is great but it makes a lot of assumptions:
|
|
10
|
+
- hey let's sync all your provisioning profiles
|
|
11
|
+
- when you add a device, let's add it to all provisioning profiles by default
|
|
12
|
+
- let's use a fastfile
|
|
13
|
+
- let's store your user:password in your keychain
|
|
14
|
+
- ....
|
|
15
|
+
|
|
16
|
+
Don't get us wrong, we think fastlane is **great** , but we are one of those who don't like suprises.
|
|
17
|
+
|
|
18
|
+
We leverage 'spaceship' library and will continue to work on that to have a shared
|
|
19
|
+
|
|
20
|
+
## Status
|
|
21
|
+
Real alpha , as we are still exploring the spaceship api
|
data/Rakefile
ADDED
data/bin/slowlane-itunes
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require "thor"
|
|
5
|
+
require_relative '../lib/slowlane/itunes/app.rb'
|
|
6
|
+
require_relative '../lib/slowlane/itunes/team.rb'
|
|
7
|
+
|
|
8
|
+
class SlowlaneItunes < Thor
|
|
9
|
+
|
|
10
|
+
class_option :username , :default => '<username>' , :required => true, :desc => 'username [SLOWLANE_USERNAME]'
|
|
11
|
+
class_option :password , :default => '<password>' , :required => true, :desc => 'password [SLOWLANE_PASSWORD]'
|
|
12
|
+
class_option :team , :default => '<team>' , :required => false, :desc => 'team [SLOWLANE_TEAM]'
|
|
13
|
+
|
|
14
|
+
desc "app SUBCOMMAND ...ARGS", "manage apps"
|
|
15
|
+
subcommand "app", Slowlane::Itunes::App
|
|
16
|
+
|
|
17
|
+
desc "team SUBCOMMAND ...ARGS", "manage teams"
|
|
18
|
+
subcommand "team", Slowlane::Itunes::Team
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
SlowlaneItunes.start(ARGV)
|
data/bin/slowlane-portal
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require "thor"
|
|
5
|
+
require_relative '../lib/slowlane/portal/team.rb'
|
|
6
|
+
require_relative '../lib/slowlane/portal/app.rb'
|
|
7
|
+
require_relative '../lib/slowlane/portal/profile.rb'
|
|
8
|
+
require_relative '../lib/slowlane/portal/device.rb'
|
|
9
|
+
|
|
10
|
+
class SlowlanePortal < Thor
|
|
11
|
+
|
|
12
|
+
class_option :username , :default => '<username>' , :required => true, :desc => 'username [SLOWLANE_USERNAME]'
|
|
13
|
+
class_option :password , :default => '<password>' , :required => true, :desc => 'password [SLOWLANE_PASSWORD]'
|
|
14
|
+
class_option :team , :default => '<team>' , :required => false, :desc => 'team [SLOWLANE_TEAM]'
|
|
15
|
+
|
|
16
|
+
desc "profile SUBCOMMAND ...ARGS", "manage provisioning profiles"
|
|
17
|
+
option :filter ,:desc => 'pattern to filter'
|
|
18
|
+
subcommand "profile", Slowlane::Portal::Profile
|
|
19
|
+
|
|
20
|
+
desc "device SUBCOMMAND ...ARGS", "manage devices"
|
|
21
|
+
option :filter ,:desc => 'pattern to filter'
|
|
22
|
+
subcommand "device", Slowlane::Portal::Device
|
|
23
|
+
|
|
24
|
+
desc "app SUBCOMMAND ...ARGS", "manage apps"
|
|
25
|
+
option :filter ,:desc => 'pattern to filter'
|
|
26
|
+
subcommand "app", Slowlane::Portal::App
|
|
27
|
+
|
|
28
|
+
desc "team SUBCOMMAND ...ARGS", "manage teams"
|
|
29
|
+
subcommand "team", Slowlane::Portal::Team
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
SlowlanePortal.start(ARGV)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require_relative './util.rb'
|
|
2
|
+
require "spaceship"
|
|
3
|
+
|
|
4
|
+
module Slowlane
|
|
5
|
+
module Itunes
|
|
6
|
+
class App < Thor
|
|
7
|
+
|
|
8
|
+
desc "list", "List apps"
|
|
9
|
+
class_option :team , :default => '<team>' , :required => true
|
|
10
|
+
def list()
|
|
11
|
+
|
|
12
|
+
c=Utils.credentials(options)
|
|
13
|
+
Spaceship::Tunes.login(c.username,c.password)
|
|
14
|
+
|
|
15
|
+
t=Utils.team(options)
|
|
16
|
+
Spaceship::Tunes.client.team_id=t
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Spaceship::Tunes::Application.all.collect do |app|
|
|
20
|
+
require 'pp'
|
|
21
|
+
pp app
|
|
22
|
+
#pp app.details
|
|
23
|
+
#pp app.live_version
|
|
24
|
+
pp app.edit_version
|
|
25
|
+
pp app.edit_version.candidate_builds unless app.edit_version.nil?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'spaceship'
|
|
2
|
+
require_relative './util.rb'
|
|
3
|
+
|
|
4
|
+
module Slowlane
|
|
5
|
+
module Itunes
|
|
6
|
+
class Team < Thor
|
|
7
|
+
|
|
8
|
+
desc "list", "List apps"
|
|
9
|
+
def list()
|
|
10
|
+
require "spaceship"
|
|
11
|
+
|
|
12
|
+
c=Utils.credentials(options)
|
|
13
|
+
Spaceship::Tunes.login(c.username,c.password)
|
|
14
|
+
|
|
15
|
+
Spaceship::Tunes.client.teams.each do |team|
|
|
16
|
+
require 'pp'
|
|
17
|
+
pp team
|
|
18
|
+
#puts "#{team['teamId']}|#{team['type']}|#{team['name']}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'ostruct'
|
|
2
|
+
|
|
3
|
+
class Utils
|
|
4
|
+
def self.credentials(options)
|
|
5
|
+
|
|
6
|
+
credentials = OpenStruct.new
|
|
7
|
+
|
|
8
|
+
if ENV['SLOWLANE_USERNAME']
|
|
9
|
+
credentials.username=ENV['SLOWLANE_USERNAME']
|
|
10
|
+
else
|
|
11
|
+
if options[:username] == '<username>'
|
|
12
|
+
puts "username is required"
|
|
13
|
+
exit(-1)
|
|
14
|
+
else
|
|
15
|
+
credentials.username=options[:username]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
if ENV['SLOWLANE_PASSWORD']
|
|
20
|
+
credentials.password=ENV['SLOWLANE_PASSWORD']
|
|
21
|
+
else
|
|
22
|
+
if options[:password] == '<password>'
|
|
23
|
+
puts "password is required"
|
|
24
|
+
exit(-1)
|
|
25
|
+
else
|
|
26
|
+
credentials.password=options[:username]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
return credentials
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.team(options)
|
|
33
|
+
|
|
34
|
+
if ENV['SLOWLANE_TEAM']
|
|
35
|
+
team=ENV['SLOWLANE_TEAM']
|
|
36
|
+
else
|
|
37
|
+
if options[:team] == '<team>'
|
|
38
|
+
puts "team is required"
|
|
39
|
+
exit(-1)
|
|
40
|
+
else
|
|
41
|
+
team=options[:team]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
return team
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require_relative './util.rb'
|
|
2
|
+
require "spaceship"
|
|
3
|
+
|
|
4
|
+
module Slowlane
|
|
5
|
+
module Portal
|
|
6
|
+
class App < Thor
|
|
7
|
+
|
|
8
|
+
desc "list", "List apps"
|
|
9
|
+
class_option :team , :default => '<team>' , :required => true
|
|
10
|
+
def list()
|
|
11
|
+
|
|
12
|
+
c=Utils.credentials(options)
|
|
13
|
+
Spaceship::Portal.login(c.username,c.password)
|
|
14
|
+
|
|
15
|
+
t=Utils.team(options)
|
|
16
|
+
Spaceship::Portal.client.team_id=t
|
|
17
|
+
|
|
18
|
+
Spaceship::Portal.app.all.find_all do |app|
|
|
19
|
+
require 'pp'
|
|
20
|
+
detail=[]
|
|
21
|
+
detail << app.app_id
|
|
22
|
+
detail << app.platform
|
|
23
|
+
detail << app.prefix
|
|
24
|
+
detail << app.is_wildcard
|
|
25
|
+
detail << app.bundle_id
|
|
26
|
+
detail << app.name
|
|
27
|
+
puts detail.join("|")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require_relative './util.rb'
|
|
2
|
+
require "spaceship"
|
|
3
|
+
|
|
4
|
+
module Slowlane
|
|
5
|
+
module Portal
|
|
6
|
+
class Device < Thor
|
|
7
|
+
|
|
8
|
+
desc "list", "List devices"
|
|
9
|
+
def list()
|
|
10
|
+
|
|
11
|
+
c=Utils.credentials(options)
|
|
12
|
+
Spaceship::Portal.login(c.username,c.password)
|
|
13
|
+
|
|
14
|
+
t=Utils.team(options)
|
|
15
|
+
Spaceship::Portal.client.team_id=t
|
|
16
|
+
|
|
17
|
+
Spaceship::Portal.device.all.find_all do |device|
|
|
18
|
+
puts "#{device.id}|#{device.udid}|#{device.name}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
desc "add", "Add a device <udid> <description>"
|
|
24
|
+
def add(udid, description)
|
|
25
|
+
|
|
26
|
+
c=Utils.credentials(options)
|
|
27
|
+
Spaceship::Portal.login(c.username,c.password)
|
|
28
|
+
|
|
29
|
+
t=Utils.team(options)
|
|
30
|
+
Spaceship::Portal.client.team_id=t
|
|
31
|
+
|
|
32
|
+
newdevice = Spaceship::Portal.device.create!(name: "#{description}", udid: "#{udid}")
|
|
33
|
+
require 'pp'
|
|
34
|
+
pp newdevice
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require_relative './util.rb'
|
|
2
|
+
require "spaceship"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
module Slowlane
|
|
6
|
+
module Portal
|
|
7
|
+
class Profile < Thor
|
|
8
|
+
|
|
9
|
+
desc "add_device","add_device <bundle_id> <device>"
|
|
10
|
+
def add_device(bundle_id,device)
|
|
11
|
+
puts bundle_id
|
|
12
|
+
puts device
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
desc "list", "List profiles"
|
|
16
|
+
def list()
|
|
17
|
+
|
|
18
|
+
c=Utils.credentials(options)
|
|
19
|
+
Spaceship::Portal.login(c.username,c.password)
|
|
20
|
+
|
|
21
|
+
t=Utils.team(options)
|
|
22
|
+
Spaceship::Portal.client.team_id=t
|
|
23
|
+
|
|
24
|
+
Spaceship::Portal.provisioning_profile.all.find_all do |profile|
|
|
25
|
+
unless options[:filter].nil?
|
|
26
|
+
if profile.name =~ /#{options[:filter]}/
|
|
27
|
+
puts "#{profile.uuid}|#{profile.id}|#{profile.distribution_method}|#{profile.name}"
|
|
28
|
+
end
|
|
29
|
+
else
|
|
30
|
+
puts "#{profile.uuid}|#{profile.id}|#{profile.distribution_method}|#{profile.name}"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require_relative './util.rb'
|
|
2
|
+
|
|
3
|
+
module Slowlane
|
|
4
|
+
module Portal
|
|
5
|
+
class Team < Thor
|
|
6
|
+
|
|
7
|
+
desc "list", "List apps"
|
|
8
|
+
def list()
|
|
9
|
+
require "spaceship"
|
|
10
|
+
|
|
11
|
+
c=Utils.credentials(options)
|
|
12
|
+
Spaceship::Portal.login(c.username,c.password)
|
|
13
|
+
|
|
14
|
+
Spaceship::Portal.client.teams.each do |team|
|
|
15
|
+
puts "#{team['teamId']}|#{team['type']}|#{team['name']}"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'ostruct'
|
|
2
|
+
|
|
3
|
+
class Utils
|
|
4
|
+
def self.credentials(options)
|
|
5
|
+
|
|
6
|
+
credentials = OpenStruct.new
|
|
7
|
+
|
|
8
|
+
if ENV['SLOWLANE_USERNAME']
|
|
9
|
+
credentials.username=ENV['SLOWLANE_USERNAME']
|
|
10
|
+
else
|
|
11
|
+
if options[:username] == '<username>'
|
|
12
|
+
puts "username is required"
|
|
13
|
+
exit(-1)
|
|
14
|
+
else
|
|
15
|
+
credentials.username=options[:username]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
if ENV['SLOWLANE_PASSWORD']
|
|
20
|
+
credentials.password=ENV['SLOWLANE_PASSWORD']
|
|
21
|
+
else
|
|
22
|
+
if options[:password] == '<password>'
|
|
23
|
+
puts "password is required"
|
|
24
|
+
exit(-1)
|
|
25
|
+
else
|
|
26
|
+
credentials.password=options[:username]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
return credentials
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.team(options)
|
|
33
|
+
|
|
34
|
+
if ENV['SLOWLANE_TEAM']
|
|
35
|
+
team=ENV['SLOWLANE_TEAM']
|
|
36
|
+
else
|
|
37
|
+
if options[:team] == '<team>'
|
|
38
|
+
puts "team is required"
|
|
39
|
+
exit(-1)
|
|
40
|
+
else
|
|
41
|
+
team=options[:team]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
return team
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
data/slowlane.gemspec
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#require File.expand_path("../lib/slowlane/version", __FILE__)
|
|
2
|
+
|
|
3
|
+
Gem::Specification.new do |s|
|
|
4
|
+
s.name = "slowlane"
|
|
5
|
+
s.version = "0.0.1.alpha"
|
|
6
|
+
s.platform = Gem::Platform::RUBY
|
|
7
|
+
s.license = 'MIT'
|
|
8
|
+
s.authors = ["Patrick Debois"]
|
|
9
|
+
s.email = ["patrick.debois@jedi.be"]
|
|
10
|
+
s.homepage = "http://github.com/jedi4ever/slowlane/"
|
|
11
|
+
s.summary = %q{Fastlane without the magic - managing ios deployment}
|
|
12
|
+
s.description = %q{Cli version without supprises}
|
|
13
|
+
|
|
14
|
+
s.required_rubygems_version = ">= 2.0.6"
|
|
15
|
+
s.rubyforge_project = "slowlane"
|
|
16
|
+
|
|
17
|
+
s.add_dependency "thor"
|
|
18
|
+
s.add_dependency "spaceship"
|
|
19
|
+
|
|
20
|
+
s.files = `git ls-files`.split("\n")
|
|
21
|
+
s.executables = `git ls-files`.split("\n").map { |f| f =~ /^bin\/(.*)/ ? $1 : nil }.compact
|
|
22
|
+
s.require_path = 'lib'
|
|
23
|
+
|
|
24
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: slowlane
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1.alpha
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Patrick Debois
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-05-05 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: thor
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '>='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '>='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: spaceship
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - '>='
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
description: Cli version without supprises
|
|
42
|
+
email:
|
|
43
|
+
- patrick.debois@jedi.be
|
|
44
|
+
executables:
|
|
45
|
+
- slowlane-itunes
|
|
46
|
+
- slowlane-portal
|
|
47
|
+
extensions: []
|
|
48
|
+
extra_rdoc_files: []
|
|
49
|
+
files:
|
|
50
|
+
- .gitignore
|
|
51
|
+
- Gemfile
|
|
52
|
+
- README.md
|
|
53
|
+
- Rakefile
|
|
54
|
+
- bin/slowlane-itunes
|
|
55
|
+
- bin/slowlane-portal
|
|
56
|
+
- lib/slowlane/itunes/app.rb
|
|
57
|
+
- lib/slowlane/itunes/team.rb
|
|
58
|
+
- lib/slowlane/itunes/util.rb
|
|
59
|
+
- lib/slowlane/portal/app.rb
|
|
60
|
+
- lib/slowlane/portal/device.rb
|
|
61
|
+
- lib/slowlane/portal/profile.rb
|
|
62
|
+
- lib/slowlane/portal/team.rb
|
|
63
|
+
- lib/slowlane/portal/util.rb
|
|
64
|
+
- slowlane.gemspec
|
|
65
|
+
homepage: http://github.com/jedi4ever/slowlane/
|
|
66
|
+
licenses:
|
|
67
|
+
- MIT
|
|
68
|
+
metadata: {}
|
|
69
|
+
post_install_message:
|
|
70
|
+
rdoc_options: []
|
|
71
|
+
require_paths:
|
|
72
|
+
- lib
|
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - '>='
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 2.0.6
|
|
83
|
+
requirements: []
|
|
84
|
+
rubyforge_project: slowlane
|
|
85
|
+
rubygems_version: 2.2.2
|
|
86
|
+
signing_key:
|
|
87
|
+
specification_version: 4
|
|
88
|
+
summary: Fastlane without the magic - managing ios deployment
|
|
89
|
+
test_files: []
|