unlimit 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 42cbe91c40dae996ebf366b44f131e5df346e8d8e3f8ad1820565af314413d78
4
+ data.tar.gz: 644cde5212c4efeae10b50380fc3776d20882aacfa42140f9b64e6f5e84cbfb3
5
+ SHA512:
6
+ metadata.gz: e711fff69333c8c8fd4cfe6304eacb24c7e590ff3155a08a9e530d10c8019e067562178ca0152d542e3421e8a7fab3640b1648719e6722484d3dc94f86f641b8
7
+ data.tar.gz: 630c7bbcf52f10ef5a5b650b416e02f18a13958114d82f7cd7611c57bb6c6ff07da7191188a40fb56e5778e144f0af68a98d9e9107d597ee0883ca08425fab5e
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .DS_Store
10
+ pkg
11
+ .idea/
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in unlimit.gemspec
6
+ gemspec
@@ -0,0 +1,186 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ unlimit (0.0.1)
5
+ configure_extensions
6
+ fastlane
7
+ plist
8
+ xcodeproj
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ CFPropertyList (3.0.0)
14
+ activesupport (4.2.11.1)
15
+ i18n (~> 0.7)
16
+ minitest (~> 5.1)
17
+ thread_safe (~> 0.3, >= 0.3.4)
18
+ tzinfo (~> 1.1)
19
+ addressable (2.6.0)
20
+ public_suffix (>= 2.0.2, < 4.0)
21
+ atomos (0.1.3)
22
+ babosa (1.0.2)
23
+ claide (1.0.2)
24
+ colored (1.2)
25
+ colored2 (3.1.2)
26
+ commander-fastlane (4.4.6)
27
+ highline (~> 1.7.2)
28
+ concurrent-ruby (1.1.5)
29
+ configure_extensions (1.0.1)
30
+ activesupport (>= 4.0.2, < 5)
31
+ xcodeproj (~> 1.2)
32
+ declarative (0.0.10)
33
+ declarative-option (0.1.0)
34
+ digest-crc (0.4.1)
35
+ domain_name (0.5.20190701)
36
+ unf (>= 0.0.5, < 1.0.0)
37
+ dotenv (2.7.4)
38
+ emoji_regex (1.0.1)
39
+ excon (0.65.0)
40
+ faraday (0.15.4)
41
+ multipart-post (>= 1.2, < 3)
42
+ faraday-cookie_jar (0.0.6)
43
+ faraday (>= 0.7.4)
44
+ http-cookie (~> 1.0.0)
45
+ faraday_middleware (0.13.1)
46
+ faraday (>= 0.7.4, < 1.0)
47
+ fastimage (2.1.5)
48
+ fastlane (2.128.0)
49
+ CFPropertyList (>= 2.3, < 4.0.0)
50
+ addressable (>= 2.3, < 3.0.0)
51
+ babosa (>= 1.0.2, < 2.0.0)
52
+ bundler (>= 1.12.0, < 3.0.0)
53
+ colored
54
+ commander-fastlane (>= 4.4.6, < 5.0.0)
55
+ dotenv (>= 2.1.1, < 3.0.0)
56
+ emoji_regex (>= 0.1, < 2.0)
57
+ excon (>= 0.45.0, < 1.0.0)
58
+ faraday (~> 0.9)
59
+ faraday-cookie_jar (~> 0.0.6)
60
+ faraday_middleware (~> 0.9)
61
+ fastimage (>= 2.1.0, < 3.0.0)
62
+ gh_inspector (>= 1.1.2, < 2.0.0)
63
+ google-api-client (>= 0.21.2, < 0.24.0)
64
+ google-cloud-storage (>= 1.15.0, < 2.0.0)
65
+ highline (>= 1.7.2, < 2.0.0)
66
+ json (< 3.0.0)
67
+ jwt (~> 2.1.0)
68
+ mini_magick (>= 4.9.4, < 5.0.0)
69
+ multi_xml (~> 0.5)
70
+ multipart-post (~> 2.0.0)
71
+ plist (>= 3.1.0, < 4.0.0)
72
+ public_suffix (~> 2.0.0)
73
+ rubyzip (>= 1.2.2, < 2.0.0)
74
+ security (= 0.1.3)
75
+ simctl (~> 1.6.3)
76
+ slack-notifier (>= 2.0.0, < 3.0.0)
77
+ terminal-notifier (>= 2.0.0, < 3.0.0)
78
+ terminal-table (>= 1.4.5, < 2.0.0)
79
+ tty-screen (>= 0.6.3, < 1.0.0)
80
+ tty-spinner (>= 0.8.0, < 1.0.0)
81
+ word_wrap (~> 1.0.0)
82
+ xcodeproj (>= 1.8.1, < 2.0.0)
83
+ xcpretty (~> 0.3.0)
84
+ xcpretty-travis-formatter (>= 0.0.3)
85
+ gh_inspector (1.1.3)
86
+ google-api-client (0.23.9)
87
+ addressable (~> 2.5, >= 2.5.1)
88
+ googleauth (>= 0.5, < 0.7.0)
89
+ httpclient (>= 2.8.1, < 3.0)
90
+ mime-types (~> 3.0)
91
+ representable (~> 3.0)
92
+ retriable (>= 2.0, < 4.0)
93
+ signet (~> 0.9)
94
+ google-cloud-core (1.3.0)
95
+ google-cloud-env (~> 1.0)
96
+ google-cloud-env (1.2.0)
97
+ faraday (~> 0.11)
98
+ google-cloud-storage (1.16.0)
99
+ digest-crc (~> 0.4)
100
+ google-api-client (~> 0.23)
101
+ google-cloud-core (~> 1.2)
102
+ googleauth (>= 0.6.2, < 0.10.0)
103
+ googleauth (0.6.7)
104
+ faraday (~> 0.12)
105
+ jwt (>= 1.4, < 3.0)
106
+ memoist (~> 0.16)
107
+ multi_json (~> 1.11)
108
+ os (>= 0.9, < 2.0)
109
+ signet (~> 0.7)
110
+ highline (1.7.10)
111
+ http-cookie (1.0.3)
112
+ domain_name (~> 0.5)
113
+ httpclient (2.8.3)
114
+ i18n (0.9.5)
115
+ concurrent-ruby (~> 1.0)
116
+ json (2.2.0)
117
+ jwt (2.1.0)
118
+ memoist (0.16.0)
119
+ mime-types (3.2.2)
120
+ mime-types-data (~> 3.2015)
121
+ mime-types-data (3.2019.0331)
122
+ mini_magick (4.9.5)
123
+ minitest (5.11.3)
124
+ multi_json (1.13.1)
125
+ multi_xml (0.6.0)
126
+ multipart-post (2.0.0)
127
+ nanaimo (0.2.6)
128
+ naturally (2.2.0)
129
+ os (1.0.1)
130
+ plist (3.5.0)
131
+ public_suffix (2.0.5)
132
+ rake (10.5.0)
133
+ representable (3.0.4)
134
+ declarative (< 0.1.0)
135
+ declarative-option (< 0.2.0)
136
+ uber (< 0.2.0)
137
+ retriable (3.1.2)
138
+ rouge (2.0.7)
139
+ rubyzip (1.2.3)
140
+ security (0.1.3)
141
+ signet (0.11.0)
142
+ addressable (~> 2.3)
143
+ faraday (~> 0.9)
144
+ jwt (>= 1.5, < 3.0)
145
+ multi_json (~> 1.10)
146
+ simctl (1.6.5)
147
+ CFPropertyList
148
+ naturally
149
+ slack-notifier (2.3.2)
150
+ terminal-notifier (2.0.0)
151
+ terminal-table (1.8.0)
152
+ unicode-display_width (~> 1.1, >= 1.1.1)
153
+ thread_safe (0.3.6)
154
+ tty-cursor (0.7.0)
155
+ tty-screen (0.7.0)
156
+ tty-spinner (0.9.1)
157
+ tty-cursor (~> 0.7)
158
+ tzinfo (1.2.5)
159
+ thread_safe (~> 0.1)
160
+ uber (0.1.0)
161
+ unf (0.1.4)
162
+ unf_ext
163
+ unf_ext (0.0.7.6)
164
+ unicode-display_width (1.6.0)
165
+ word_wrap (1.0.0)
166
+ xcodeproj (1.11.0)
167
+ CFPropertyList (>= 2.3.3, < 4.0)
168
+ atomos (~> 0.1.3)
169
+ claide (>= 1.0.2, < 2.0)
170
+ colored2 (~> 3.1)
171
+ nanaimo (~> 0.2.6)
172
+ xcpretty (0.3.0)
173
+ rouge (~> 2.0.7)
174
+ xcpretty-travis-formatter (1.0.0)
175
+ xcpretty (~> 0.2, >= 0.0.7)
176
+
177
+ PLATFORMS
178
+ ruby
179
+
180
+ DEPENDENCIES
181
+ bundler (~> 1.17)
182
+ rake (~> 10.0)
183
+ unlimit!
184
+
185
+ BUNDLED WITH
186
+ 1.17.3
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Siddharth Gupta
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,57 @@
1
+ # Unlimit 🚀📲
2
+
3
+ Unlimit is a simple tool to quickly run your app on your device without worrying about the 100 device limit per developer account set by Apple. It achieves this by **temporarily switching your Xcode Project to the `Personal Team`**.
4
+
5
+ > In a nutsell, unlimit fixes this:
6
+
7
+ <img width="350" src="https://github.com/biocross/unlimit/raw/master/images/max_devices.png" alt="Xcode Device Limit Reached Error">
8
+
9
+ ### Why can't I just do it myself?
10
+
11
+ Well, you can, if your project is simple. However, if your project has capabilities like **Push Notifications**, **Background Modes** & **App Extensions**, things get complicated, since these require you to configure your `Personal Team` with all these entitlements. Unlimit gets rid of all this mess, and gets you quickly up and running on your device.
12
+
13
+ ### What's the catch?
14
+
15
+ Well, since unlimit temporarily removes capabilities like **App Extensions, Push Notifications** & more from your project, you **can't** test these features on your device when using your personal team.
16
+
17
+ ### How do I undo unlimit's changes?
18
+
19
+ We recommend you run unlimit when you have no staged changes, so that you can simple go back by running `git reset --hard` when you're done testing on your device.
20
+
21
+ ## Installation
22
+
23
+ Add this line to your application's Gemfile:
24
+
25
+ ```ruby
26
+ gem 'unlimit'
27
+ ```
28
+
29
+ And then execute:
30
+
31
+ $ bundle install && bundle exec unlimit
32
+
33
+ Or install it yourself as:
34
+
35
+ $ gem install unlimit
36
+
37
+ ## Usage
38
+
39
+ Just execute:
40
+
41
+ $ bundle exec unlimit
42
+
43
+ and unlimit will do it's magic.
44
+
45
+ ## Development
46
+
47
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
48
+
49
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
50
+
51
+ ## Contributing
52
+
53
+ Bug reports and pull requests are welcome on GitHub at https://github.com/biocross/unlimit
54
+
55
+ ## License
56
+
57
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "unlimit"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'unlimit'
4
+ require 'optparse'
5
+
6
+ options = {}
7
+ OptionParser.new do |opt|
8
+ opt.on('--project XCODEPROJ') { |o| options['project_path'] = o }
9
+ opt.on('--plist INFO_PLIST') { |o| options['plist_path'] = o }
10
+ opt.on('--target TARGET_NAME') { |o| options['target_name'] = o }
11
+ end.parse!
12
+
13
+ unlimiter = Unlimit::CLI.new
14
+ unlimiter.start(options)
Binary file
Binary file
@@ -0,0 +1,145 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'unlimit/version'
4
+ require 'xcodeproj'
5
+ require 'securerandom'
6
+ require 'json'
7
+ require 'plist'
8
+
9
+ ProjectPathKey = 'project_path'
10
+ PlistPathKey = 'plist_path'
11
+ TargetNameKey = 'target_name'
12
+ InfoPlistBuildSettingKey = 'INFOPLIST_FILE'
13
+ ProductTypeApplicationTarget = 'com.apple.product-type.application'
14
+ Divider = '================================================'
15
+
16
+ module Unlimit
17
+ class CLI
18
+ def putsWithOverrides(parameter, value, flag)
19
+ puts "Using #{parameter}: #{value}".green + " (Use flag --#{flag} to override)".yellow
20
+ end
21
+
22
+ def start(options)
23
+ puts Divider
24
+ puts ' unlimit 🚀📲 '
25
+ puts ' Switching your project to Personal Team! '.yellow
26
+ puts Divider
27
+
28
+ xcode_project_files = Dir.glob('*.xcodeproj')
29
+ project_path = ''
30
+ plist_path = ''
31
+ target_name = ''
32
+ extensions = []
33
+ target = nil
34
+
35
+ # Check for a valid xcode_project
36
+ if xcode_project_files.count == 1 || options.key?(ProjectPathKey)
37
+ project_path = if options.key?(ProjectPathKey)
38
+ options[ProjectPathKey]
39
+ else
40
+ xcode_project_files.first
41
+ end
42
+
43
+ unless File.directory?(project_path)
44
+ abort("Project not found at #{project_path}".red)
45
+ end
46
+ putsWithOverrides('project', project_path, ProjectPathKey)
47
+ else
48
+ abort('Please specify the .xcodeproj project file to use with the --project option like --project MyProject.xcodeproj'.red)
49
+ end
50
+
51
+ project = Xcodeproj::Project.open(project_path)
52
+
53
+ if options.key?(TargetNameKey)
54
+ target_name = options[TargetNameKey]
55
+ target = project.targets.find { |t| t.name == target_name }
56
+ abort "Couldn't find the target '#{target_name}' in '#{project_path}'" if target.nil?
57
+ puts "Using target #{target_name}"
58
+ else
59
+ project.targets.each do |current_target|
60
+ next unless current_target.product_type == ProductTypeApplicationTarget
61
+ target = current_target
62
+ target_name = current_target.name
63
+ putsWithOverrides('target', target_name, TargetNameKey)
64
+ break
65
+ end
66
+ end
67
+
68
+ if options.key?(PlistPathKey)
69
+ plist_path = options[PlistPathKey]
70
+
71
+ unless File.file?(plist_path)
72
+ abort("Info.plist file not found at path: #{plist_path}".red)
73
+ end
74
+ puts "Using Info.plist at path #{plist_path}.".green
75
+ else
76
+ if target.build_configurations.count > 0
77
+ build_settings = target.build_configurations.first.build_settings
78
+ plist_path = build_settings[InfoPlistBuildSettingKey]
79
+ putsWithOverrides('Info.plist', plist_path, PlistPathKey)
80
+ end
81
+
82
+ if plist_path.nil? || plist_path.empty?
83
+ abort('Please specify the path to your main target\'s Info.plist file with the --plist option like --plist MyProject-Info.plist'.red)
84
+ end
85
+ end
86
+
87
+ project.targets.each do |target|
88
+ if target.product_type.include? 'app-extension'
89
+ extensions.push(target.name)
90
+ end
91
+ end
92
+
93
+ puts "================================================\n"
94
+
95
+ # Turn off capabilities that require entitlements
96
+ puts 'Turning OFF all Capabilities'.red
97
+ project.root_object.attributes.each do |value|
98
+ next unless value[0] == 'TargetAttributes'
99
+
100
+ hash = value[1]
101
+ hash.each do |_key, val|
102
+ next unless val.key?('SystemCapabilities')
103
+
104
+ capabilities = val['SystemCapabilities']
105
+ capabilities.each do |key, val|
106
+ if val.key?('enabled')
107
+ puts ' Turning OFF ' + key
108
+ capabilities[key]['enabled'] = '0'
109
+ end
110
+ end
111
+ end
112
+ end
113
+ project.save
114
+
115
+ # Remove Entitlements
116
+ puts 'Clearing entitlements...'.red
117
+ Dir.glob('**/*.entitlements').each do |source_file|
118
+ empty_plist = {}.to_plist
119
+ File.open(source_file, 'w') { |file| file.puts empty_plist }
120
+ end
121
+
122
+ # Remove Capability Keys from Plist
123
+ puts 'Removing capabilities from Info.plist...'.red
124
+ info_plist = Plist.parse_xml(plist_path)
125
+ info_plist.delete('UIBackgroundModes')
126
+ File.open(plist_path, 'w') { |file| file.puts info_plist.to_plist }
127
+
128
+ # Change Bundle Identifier
129
+ puts 'Changing bundle identifier...'.red
130
+ bundle_identifier = "com.unlimit.#{SecureRandom.uuid}"
131
+ system("bundle exec fastlane run update_app_identifier plist_path:#{plist_path} app_identifier:#{bundle_identifier}")
132
+
133
+ puts 'Enabling Automatic Code Signing...'.red
134
+ system("bundle exec fastlane run automatic_code_signing use_automatic_signing:true targets:#{target_name}")
135
+
136
+ # Remove App Extensions
137
+ puts "Removing App Extensions: #{extensions.join(', ')}".red
138
+ system("bundle exec configure_extensions remove #{project_path} #{target_name} #{extensions.join(' ')}")
139
+
140
+ puts "\n#{Divider}"
141
+ puts 'You\'re good to go! Just connect your device, switch to your \'Personal Team\', and hit run!'.green
142
+ puts Divider
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,3 @@
1
+ module Unlimit
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,43 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "unlimit/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "unlimit"
8
+ spec.version = Unlimit::VERSION
9
+ spec.authors = ["Siddharth Gupta"]
10
+ spec.email = ["sids.1992@gmail.com"]
11
+
12
+ spec.summary = "Test your iOS projects on device despite the 100 device limit"
13
+ spec.description = "Test your iOS projects on device despite the 100 device limit, by automatically switching to your personal team"
14
+ spec.homepage = "https://github.com/biocross/unlimit"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata["homepage_uri"] = spec.homepage
21
+ spec.metadata["source_code_uri"] = "https://github.com/biocross/unlimit"
22
+ spec.metadata["changelog_uri"] = "https://github.com/biocross/unlimit"
23
+ else
24
+ raise "RubyGems 2.0 or newer is required to protect against " \
25
+ "public gem pushes."
26
+ end
27
+
28
+ # Specify which files should be added to the gem when it is released.
29
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
30
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
31
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
32
+ end
33
+ spec.executables = ["unlimit"]
34
+ spec.require_paths = ["lib"]
35
+
36
+ spec.add_dependency "xcodeproj"
37
+ spec.add_dependency "plist"
38
+ spec.add_dependency "fastlane"
39
+ spec.add_dependency "configure_extensions"
40
+
41
+ spec.add_development_dependency "bundler", "~> 1.17"
42
+ spec.add_development_dependency "rake", "~> 10.0"
43
+ end
metadata ADDED
@@ -0,0 +1,146 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unlimit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Siddharth Gupta
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: xcodeproj
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: plist
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
+ - !ruby/object:Gem::Dependency
42
+ name: fastlane
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: configure_extensions
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.17'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.17'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ description: Test your iOS projects on device despite the 100 device limit, by automatically
98
+ switching to your personal team
99
+ email:
100
+ - sids.1992@gmail.com
101
+ executables:
102
+ - unlimit
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - Gemfile
108
+ - Gemfile.lock
109
+ - LICENSE.txt
110
+ - README.md
111
+ - Rakefile
112
+ - bin/console
113
+ - bin/setup
114
+ - bin/unlimit
115
+ - images/max_devices.png
116
+ - images/unregistered.png
117
+ - lib/unlimit.rb
118
+ - lib/unlimit/version.rb
119
+ - unlimit.gemspec
120
+ homepage: https://github.com/biocross/unlimit
121
+ licenses:
122
+ - MIT
123
+ metadata:
124
+ homepage_uri: https://github.com/biocross/unlimit
125
+ source_code_uri: https://github.com/biocross/unlimit
126
+ changelog_uri: https://github.com/biocross/unlimit
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ requirements: []
142
+ rubygems_version: 3.0.3
143
+ signing_key:
144
+ specification_version: 4
145
+ summary: Test your iOS projects on device despite the 100 device limit
146
+ test_files: []