podage 0.1.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.
- checksums.yaml +7 -0
- data/bin/podage +111 -0
- data/lib/podage.rb +33 -0
- data/lib/podage/builders/builder.rb +134 -0
- data/lib/podage/builders/ios_builder.rb +154 -0
- data/lib/podage/builders/osx_builder.rb +91 -0
- data/lib/podage/cli/command.rb +204 -0
- data/lib/podage/cli/option.rb +53 -0
- data/lib/podage/globals.rb +67 -0
- data/lib/podage/packager.rb +92 -0
- data/lib/podage/version.rb +28 -0
- metadata +82 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f083d1efa561484b3a4adafe45d6717c69c20f5c
|
4
|
+
data.tar.gz: 6ea5e87620934d68d4908e3f94a83b87c1f7d260
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fe0d8e88b8fdfef87cf9bc13f67b8cab6b4f488c57de71c9feb99dad99487b07cabc831c1fb3cfa6bd62f353c59462da5b6f48fce6b4e2ca94c9190ab474413c
|
7
|
+
data.tar.gz: 1be402b58d6c881f0988ad632423aea53e41e64af5b908b4346c2f73dab9b2aa0872726d4f682e2586422b7444ff75eacfb424c6c25c5e06d1c7e933b876b30f
|
data/bin/podage
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#
|
4
|
+
# The MIT License (MIT)
|
5
|
+
#
|
6
|
+
# Copyright (c) 2015 Jens Meder
|
7
|
+
#
|
8
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
9
|
+
# this software and associated documentation files (the "Software"), to deal in
|
10
|
+
# the Software without restriction, including without limitation the rights to
|
11
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
12
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
13
|
+
# subject to the following conditions:
|
14
|
+
#
|
15
|
+
# The above copyright notice and this permission notice shall be included in all
|
16
|
+
# copies or substantial portions of the Software.
|
17
|
+
#
|
18
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
19
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
20
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
21
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
22
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
23
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24
|
+
#
|
25
|
+
|
26
|
+
require 'podage'
|
27
|
+
require 'podage/cli/command'
|
28
|
+
require 'podage/cli/option'
|
29
|
+
|
30
|
+
require 'colored'
|
31
|
+
require 'fileutils'
|
32
|
+
require 'podage/version'
|
33
|
+
|
34
|
+
cli = Podage::Command.new "root", "" do |c|
|
35
|
+
|
36
|
+
c.print
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
cli.base_command = "podage"
|
41
|
+
|
42
|
+
init_command = Podage::Command.new "init", "Creates a new Podagefile" do
|
43
|
+
|
44
|
+
puts "Creating Podagefile".green
|
45
|
+
file = File.new("Podagefile", "w+")
|
46
|
+
file.write <<-DESC
|
47
|
+
package :ios, '8.0', 'Debug' do
|
48
|
+
|
49
|
+
pod 'DarkLightning', '~> 0.4.1'
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
package :osx, '10.9', 'Debug' do
|
54
|
+
|
55
|
+
pod 'Alamofire'
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
DESC
|
60
|
+
file.close
|
61
|
+
exit
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
init_command.base_command = "podage init"
|
66
|
+
init_command.usage = "Hello world"
|
67
|
+
|
68
|
+
build_command = Podage::Command.new "build", "Builds the Podagefile" do
|
69
|
+
|
70
|
+
packager = Podage::Packager.new
|
71
|
+
packager.build
|
72
|
+
|
73
|
+
exit
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
build_command.base_command = "podage build"
|
78
|
+
|
79
|
+
cli.add_command init_command
|
80
|
+
|
81
|
+
init_help_option = Podage::Option.new("--help", "-h","Shows this help",false) do
|
82
|
+
init_command.print
|
83
|
+
exit
|
84
|
+
end
|
85
|
+
|
86
|
+
init_command.add_option init_help_option
|
87
|
+
|
88
|
+
cli.add_command build_command
|
89
|
+
|
90
|
+
build_help_option = Podage::Option.new("--help", "-h","Shows this help",false) do
|
91
|
+
build_command.print
|
92
|
+
exit
|
93
|
+
end
|
94
|
+
|
95
|
+
build_command.add_option build_help_option
|
96
|
+
|
97
|
+
version_option = Podage::Option.new("--version","-v","Shows version information",false) do
|
98
|
+
puts "Podage version " + Podage::VERSION.bold
|
99
|
+
|
100
|
+
exit
|
101
|
+
end
|
102
|
+
|
103
|
+
help_option = Podage::Option.new("--help","-h","Shows this help",false) do
|
104
|
+
cli.print
|
105
|
+
exit
|
106
|
+
end
|
107
|
+
|
108
|
+
cli.add_option version_option
|
109
|
+
cli.add_option help_option
|
110
|
+
|
111
|
+
cli.parse ARGV
|
data/lib/podage.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'fileutils'
|
25
|
+
require 'open3'
|
26
|
+
require 'cocoapods'
|
27
|
+
require 'cocoapods-core'
|
28
|
+
|
29
|
+
module Podage
|
30
|
+
|
31
|
+
require 'podage/packager'
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
require 'podage/globals'
|
27
|
+
|
28
|
+
class Builder
|
29
|
+
|
30
|
+
def initialize(version)
|
31
|
+
|
32
|
+
@version = version
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
def build(configuration, &block)
|
37
|
+
|
38
|
+
puts "Building Frameworks".green
|
39
|
+
|
40
|
+
FileUtils.cd BUILD_PATH
|
41
|
+
|
42
|
+
podfile = create_podfile(self.version, &block)
|
43
|
+
|
44
|
+
sandbox = Pod::Sandbox.new(BUILD_PATH + "/Pods")
|
45
|
+
installer = Pod::Installer.new(sandbox, podfile)
|
46
|
+
installer.install!
|
47
|
+
|
48
|
+
share_schemes
|
49
|
+
|
50
|
+
FileUtils.cd ".."
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def share_schemes
|
57
|
+
|
58
|
+
schemes = Dir.glob(PODS_PROJECT_PATH + "/xcuserdata/**/*.xcscheme")
|
59
|
+
|
60
|
+
schemes.each do |scheme|
|
61
|
+
|
62
|
+
|
63
|
+
name = File.basename scheme
|
64
|
+
|
65
|
+
if !scheme.end_with?("Pods-iOS.xcscheme")
|
66
|
+
|
67
|
+
FileUtils.mkdir_p PODS_PROJECT_PATH + '/' + XCSCHEMES_PATH
|
68
|
+
FileUtils.mv(scheme, PODS_PROJECT_PATH + '/' + XCSCHEMES_PATH + '/' + name)
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def create_podfile(version, &block)
|
76
|
+
|
77
|
+
target_name = self.target_name
|
78
|
+
platform = self.platform
|
79
|
+
|
80
|
+
podfile = Pod::Podfile.new do
|
81
|
+
|
82
|
+
use_frameworks!
|
83
|
+
|
84
|
+
target target_name do
|
85
|
+
|
86
|
+
platform platform, version
|
87
|
+
self.instance_eval &block
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
return podfile
|
94
|
+
end
|
95
|
+
|
96
|
+
public
|
97
|
+
|
98
|
+
def version
|
99
|
+
|
100
|
+
return @version
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
def target_name
|
105
|
+
|
106
|
+
return nil
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
def platform
|
111
|
+
|
112
|
+
return nil
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
protected
|
117
|
+
|
118
|
+
def execute_cmd(cmd)
|
119
|
+
Open3.popen2e(cmd) do |stdin, stdout_err, wait_thr|
|
120
|
+
while line = stdout_err.gets
|
121
|
+
|
122
|
+
puts line
|
123
|
+
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
def xcodebuild_framework(project, scheme, configuration, archs, build_dir, platform)
|
129
|
+
execute_cmd('xcodebuild clean build SUPPORTED_PLATFORMS='+platform+' ONLY_ACTIVE_ARCH="NO" VALID_ARCHS="' +archs + '" ARCHS="'+archs+'" -project "' + project + '" -scheme ' + scheme + ' -sdk ' + platform + ' -configuration ' + configuration + ' CONFIGURATION_BUILD_DIR="' + build_dir + '" | xcpretty --color')
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
@@ -0,0 +1,154 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
require 'podage/globals'
|
27
|
+
require 'podage/builders/builder'
|
28
|
+
|
29
|
+
class IOSBuilder < Builder
|
30
|
+
|
31
|
+
def build(configuration, &block)
|
32
|
+
|
33
|
+
super
|
34
|
+
|
35
|
+
build_frameworks configuration
|
36
|
+
generate_universal_frameworks
|
37
|
+
|
38
|
+
copy_frameworks
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def generate_universal_dSYMs
|
45
|
+
|
46
|
+
puts "Generating universal dSYM files".green
|
47
|
+
|
48
|
+
dSYMs = Dir.glob(SIMULATOR_BUILD_PATH + "/*.framework.dSYM")
|
49
|
+
|
50
|
+
dSYMs.each do |dSYM|
|
51
|
+
|
52
|
+
name = File.basename(File.basename(dSYM, ".*"), ".*" )
|
53
|
+
|
54
|
+
FileUtils.cp_r dSYM, UNIVERSAL_BUILD_PATH + "/" + File.basename(dSYM)
|
55
|
+
|
56
|
+
simulator = [SIMULATOR_BUILD_PATH, File.basename(dSYM), DSYM_PATH, name].join('/')
|
57
|
+
device = [DEVICE_BUILD_PATH, File.basename(dSYM), DSYM_PATH, name].join('/')
|
58
|
+
output = [UNIVERSAL_BUILD_PATH, File.basename(dSYM), DSYM_PATH, name].join('/')
|
59
|
+
|
60
|
+
execute_cmd('lipo -create "' + device +'" "' + simulator +'" -output "' + output +'"')
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
def generate_universal_frameworks
|
67
|
+
|
68
|
+
puts "Generating universal frameworks".green
|
69
|
+
|
70
|
+
schemes = Dir.glob(SIMULATOR_BUILD_PATH + "/*.framework")
|
71
|
+
|
72
|
+
FileUtils.mkdir UNIVERSAL_BUILD_PATH
|
73
|
+
|
74
|
+
schemes.each do |scheme|
|
75
|
+
|
76
|
+
name = File.basename(scheme, ".*" )
|
77
|
+
|
78
|
+
FileUtils.cp_r scheme, UNIVERSAL_BUILD_PATH + "/" + File.basename(scheme)
|
79
|
+
|
80
|
+
simulator = [DEVICE_BUILD_PATH, File.basename(scheme), name].join('/')
|
81
|
+
device = [SIMULATOR_BUILD_PATH, File.basename(scheme), name].join('/')
|
82
|
+
output = [UNIVERSAL_BUILD_PATH, File.basename(scheme), name].join('/')
|
83
|
+
|
84
|
+
execute_cmd('lipo -create "' + simulator +'" "' + device +'" -output "' + output +'"')
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
generate_universal_dSYMs
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
def copy_frameworks
|
93
|
+
|
94
|
+
FileUtils.rm_rf IOS_OUTPUT_PATH
|
95
|
+
FileUtils.mkpath IOS_OUTPUT_PATH
|
96
|
+
|
97
|
+
if Dir.exists?(DEVICE_BUILD_PATH)
|
98
|
+
FileUtils.cp_r DEVICE_BUILD_PATH, DEVICE_OUTPUT_PATH
|
99
|
+
end
|
100
|
+
|
101
|
+
if Dir.exists?(SIMULATOR_BUILD_PATH)
|
102
|
+
FileUtils.cp_r SIMULATOR_BUILD_PATH, SIMULATOR_OUTPUT_PATH
|
103
|
+
end
|
104
|
+
|
105
|
+
if Dir.exists?(UNIVERSAL_BUILD_PATH)
|
106
|
+
FileUtils.cp_r UNIVERSAL_BUILD_PATH, UNIVERSAL_OUTPUT_PATH
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
# Share all schemes
|
112
|
+
|
113
|
+
def build_frameworks(configuration)
|
114
|
+
|
115
|
+
schemes = Dir.glob(PODS_PROJECT_PATH + "/xcshareddata/**/*.xcscheme")
|
116
|
+
|
117
|
+
schemes.each do |scheme|
|
118
|
+
|
119
|
+
name = File.basename scheme
|
120
|
+
no_extension = File.basename(scheme, ".*" )
|
121
|
+
|
122
|
+
puts ""
|
123
|
+
puts "Building ".bold + no_extension.green
|
124
|
+
puts ""
|
125
|
+
|
126
|
+
build_framework(BUILD_PATH + "/Pods/Pods.xcodeproj",no_extension, configuration)
|
127
|
+
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# Build Frameworks
|
132
|
+
|
133
|
+
def build_framework(project, scheme, configuration)
|
134
|
+
xcodebuild_framework(project, scheme, configuration, SIMULATOR_ARCHS, SIMULATOR_BUILD_PATH, SIMULATOR_PLATFORM)
|
135
|
+
xcodebuild_framework(project, scheme, configuration, DEVICE_ARCHS, DEVICE_BUILD_PATH, DEVICE_PLATFORM)
|
136
|
+
end
|
137
|
+
|
138
|
+
public
|
139
|
+
|
140
|
+
def target_name
|
141
|
+
|
142
|
+
return 'iOS'
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
def platform
|
147
|
+
|
148
|
+
return :ios
|
149
|
+
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
require 'podage/globals'
|
27
|
+
require 'podage/builders/builder'
|
28
|
+
|
29
|
+
class OSXBuilder < Builder
|
30
|
+
|
31
|
+
def build(configuration, &block)
|
32
|
+
|
33
|
+
super
|
34
|
+
|
35
|
+
build_frameworks configuration
|
36
|
+
|
37
|
+
copy_frameworks
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
def target_name
|
42
|
+
|
43
|
+
return 'OSX'
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def platform
|
48
|
+
|
49
|
+
return :osx
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def build_frameworks(configuration)
|
56
|
+
|
57
|
+
schemes = Dir.glob(PODS_PROJECT_PATH + "/xcshareddata/**/*.xcscheme")
|
58
|
+
|
59
|
+
schemes.each do |scheme|
|
60
|
+
|
61
|
+
if !scheme.end_with?("Pods-OSX.xcscheme")
|
62
|
+
name = File.basename scheme
|
63
|
+
no_extension = File.basename(scheme, ".*" )
|
64
|
+
|
65
|
+
puts ""
|
66
|
+
puts "Building ".bold + no_extension.green
|
67
|
+
puts ""
|
68
|
+
|
69
|
+
xcodebuild_framework(BUILD_PATH + "/Pods/Pods.xcodeproj", no_extension, configuration, OSX_ARCHS, BUILD_PATH + '/macosx', OSX_PLATFORM)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Build Frameworks
|
75
|
+
|
76
|
+
def copy_frameworks
|
77
|
+
|
78
|
+
FileUtils.mkpath OUTPUT_PATH + '/osx'
|
79
|
+
|
80
|
+
path = BUILD_PATH + '/macosx'
|
81
|
+
|
82
|
+
if Dir.exists?(path)
|
83
|
+
FileUtils.cp_r path, OUTPUT_PATH + '/osx/'
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
@@ -0,0 +1,204 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
class Command
|
27
|
+
|
28
|
+
attr_accessor :name
|
29
|
+
attr_accessor :description
|
30
|
+
attr_accessor :base_command
|
31
|
+
attr_accessor :usage
|
32
|
+
|
33
|
+
@block
|
34
|
+
@options
|
35
|
+
@commands
|
36
|
+
|
37
|
+
@@indent = 20
|
38
|
+
|
39
|
+
def initialize(name, description, &block)
|
40
|
+
|
41
|
+
@name = name
|
42
|
+
@description = description
|
43
|
+
@block = block
|
44
|
+
|
45
|
+
@options = []
|
46
|
+
@commands = []
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_option(option)
|
51
|
+
|
52
|
+
@options << option
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def add_command(command)
|
57
|
+
|
58
|
+
@commands << command
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
def parse(args)
|
63
|
+
|
64
|
+
args_tmp = args.dup
|
65
|
+
|
66
|
+
if args_tmp.empty?
|
67
|
+
|
68
|
+
@block.call self
|
69
|
+
|
70
|
+
else
|
71
|
+
|
72
|
+
args_tmp.each do |arg|
|
73
|
+
|
74
|
+
@commands.each do |command|
|
75
|
+
|
76
|
+
if arg == command.name
|
77
|
+
|
78
|
+
args_tmp.delete(arg)
|
79
|
+
|
80
|
+
command.parse(args_tmp)
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
@options.each do |option|
|
87
|
+
|
88
|
+
if arg == option.name || arg == option.short_cut
|
89
|
+
|
90
|
+
args_tmp.delete(arg)
|
91
|
+
|
92
|
+
option.execute
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
unless args_tmp.empty?
|
103
|
+
|
104
|
+
error = "Unknown arguments: "
|
105
|
+
|
106
|
+
args_tmp.each do |arg|
|
107
|
+
|
108
|
+
error += arg + " "
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
puts error
|
113
|
+
|
114
|
+
print
|
115
|
+
|
116
|
+
exit
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
def print
|
123
|
+
|
124
|
+
puts
|
125
|
+
puts "Usage".underline
|
126
|
+
puts
|
127
|
+
cmd = " $ ".bold + base_command
|
128
|
+
|
129
|
+
unless @commands.empty?
|
130
|
+
|
131
|
+
cmd += " " + "[command]".green.bold
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
unless @options.empty?
|
136
|
+
|
137
|
+
cmd += " [options]".blue.bold
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
puts cmd
|
142
|
+
|
143
|
+
unless @usage.nil?
|
144
|
+
|
145
|
+
puts
|
146
|
+
puts " " + @usage
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
|
151
|
+
if !@commands.empty?
|
152
|
+
|
153
|
+
puts
|
154
|
+
puts "Commands".underline
|
155
|
+
puts
|
156
|
+
|
157
|
+
@commands.each do |command|
|
158
|
+
|
159
|
+
puts " ".green + command.name.green.bold + whitespace(command.name) + command.description
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
if !@options.empty?
|
166
|
+
|
167
|
+
puts
|
168
|
+
puts "Options".underline
|
169
|
+
puts
|
170
|
+
|
171
|
+
@options.each do |option|
|
172
|
+
|
173
|
+
output = option.name + ", " + option.short_cut
|
174
|
+
puts " " + output.bold.blue + whitespace(output) + option.description
|
175
|
+
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
puts
|
180
|
+
|
181
|
+
end
|
182
|
+
|
183
|
+
private
|
184
|
+
|
185
|
+
def whitespace(message)
|
186
|
+
|
187
|
+
count = @@indent - message.length
|
188
|
+
i = 0
|
189
|
+
result = ""
|
190
|
+
|
191
|
+
until count == i do
|
192
|
+
|
193
|
+
result << " "
|
194
|
+
i += 1
|
195
|
+
|
196
|
+
end
|
197
|
+
|
198
|
+
return result
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
end
|
203
|
+
|
204
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
class Option
|
27
|
+
|
28
|
+
attr_accessor :name
|
29
|
+
attr_accessor :short_cut
|
30
|
+
attr_accessor :description
|
31
|
+
attr_accessor :has_argument
|
32
|
+
|
33
|
+
@block
|
34
|
+
|
35
|
+
def initialize(name, short_cut, description, has_argument, &block)
|
36
|
+
|
37
|
+
@name = name
|
38
|
+
@short_cut = short_cut
|
39
|
+
@description = description
|
40
|
+
@has_argument = has_argument
|
41
|
+
@block = block
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
def execute
|
46
|
+
|
47
|
+
@block.call
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
# Constants
|
27
|
+
|
28
|
+
PODAGE_FILE_NAME = FileUtils.pwd + "/Podagefile"
|
29
|
+
|
30
|
+
TEMPLATE_REPO = "git@github.com:jensmeder/Packager.git"
|
31
|
+
|
32
|
+
# Paths
|
33
|
+
|
34
|
+
OUTPUT_PATH = FileUtils.pwd + "/Frameworks"
|
35
|
+
|
36
|
+
IOS_OUTPUT_PATH = OUTPUT_PATH + '/ios'
|
37
|
+
OSX_OUTPUT_PATH = OUTPUT_PATH + '/osx'
|
38
|
+
|
39
|
+
BUILD_PATH = FileUtils.pwd + "/_build"
|
40
|
+
|
41
|
+
IOS_BUILD_PATH = BUILD_PATH + '/ios'
|
42
|
+
OSX_BUILD_PATH = BUILD_PATH + '/osx'
|
43
|
+
|
44
|
+
PODFILE_PATH = BUILD_PATH + "/Podfile"
|
45
|
+
PODS_PROJECT_PATH = BUILD_PATH + "/Pods/Pods.xcodeproj"
|
46
|
+
XCSCHEMES_PATH = "xcshareddata/xcschemes"
|
47
|
+
|
48
|
+
SIMULATOR_ARCHS = "i386 x86_64"
|
49
|
+
DEVICE_ARCHS = "armv7 armv7s arm64"
|
50
|
+
OSX_ARCHS = "x86_64"
|
51
|
+
|
52
|
+
SIMULATOR_PLATFORM = "iphonesimulator"
|
53
|
+
DEVICE_PLATFORM = "iphoneos"
|
54
|
+
UNIVERSAL_PLATFORM = "universal"
|
55
|
+
OSX_PLATFORM = "macosx"
|
56
|
+
|
57
|
+
DSYM_PATH = "Contents/Resources/DWARF"
|
58
|
+
|
59
|
+
SIMULATOR_BUILD_PATH = BUILD_PATH + '/' + SIMULATOR_PLATFORM
|
60
|
+
DEVICE_BUILD_PATH = BUILD_PATH + '/' + DEVICE_PLATFORM
|
61
|
+
UNIVERSAL_BUILD_PATH = BUILD_PATH + '/' + UNIVERSAL_PLATFORM
|
62
|
+
|
63
|
+
SIMULATOR_OUTPUT_PATH = OUTPUT_PATH + '/ios/' + SIMULATOR_PLATFORM
|
64
|
+
DEVICE_OUTPUT_PATH = OUTPUT_PATH + '/ios/' + DEVICE_PLATFORM
|
65
|
+
UNIVERSAL_OUTPUT_PATH = OUTPUT_PATH + '/ios/' + UNIVERSAL_PLATFORM
|
66
|
+
|
67
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
require 'podage/globals'
|
27
|
+
require 'podage/builders/ios_builder'
|
28
|
+
require 'podage/builders/osx_builder'
|
29
|
+
|
30
|
+
class Packager
|
31
|
+
|
32
|
+
public
|
33
|
+
|
34
|
+
def build(configuration = "Debug")
|
35
|
+
|
36
|
+
if !File.file?('Podagefile')
|
37
|
+
puts "No Podagefile found!".red
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
|
41
|
+
# Clean _build folder
|
42
|
+
|
43
|
+
FileUtils.rm_rf BUILD_PATH
|
44
|
+
FileUtils.rm_rf OUTPUT_PATH
|
45
|
+
|
46
|
+
# Download Template
|
47
|
+
|
48
|
+
puts "Preparing build environment".green
|
49
|
+
`git clone #{TEMPLATE_REPO} _build`
|
50
|
+
|
51
|
+
puts "Loading Podagefile".green
|
52
|
+
load_podage_file
|
53
|
+
|
54
|
+
#FileUtils.rm_rf BUILD_PATH
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
def package(platform, version, configuration = "Debug", &block)
|
59
|
+
|
60
|
+
if platform == :ios
|
61
|
+
|
62
|
+
builder = Podage::IOSBuilder.new version
|
63
|
+
builder.build(configuration, &block)
|
64
|
+
|
65
|
+
elsif platform == :osx
|
66
|
+
|
67
|
+
builder = Podage::OSXBuilder.new version
|
68
|
+
builder.build(configuration, &block)
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
# Create Pods project
|
77
|
+
|
78
|
+
def load_podage_file
|
79
|
+
|
80
|
+
if !File.file?('Podagefile')
|
81
|
+
puts "No Podagefile found!".red
|
82
|
+
exit
|
83
|
+
end
|
84
|
+
|
85
|
+
eval File.read(PODAGE_FILE_NAME)
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#
|
2
|
+
# The MIT License (MIT)
|
3
|
+
#
|
4
|
+
# Copyright (c) 2015 Jens Meder
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
# this software and associated documentation files (the "Software"), to deal in
|
8
|
+
# the Software without restriction, including without limitation the rights to
|
9
|
+
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
# the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in all
|
14
|
+
# copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#
|
23
|
+
|
24
|
+
module Podage
|
25
|
+
|
26
|
+
VERSION = "0.1.1"
|
27
|
+
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: podage
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jens Meder
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cocoapods
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.39.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.39.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: xcpretty
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.2.1
|
41
|
+
description: A simple tool to package Cocoapods into Frameworks
|
42
|
+
email: me@jensmeder.de
|
43
|
+
executables:
|
44
|
+
- podage
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- bin/podage
|
49
|
+
- lib/podage.rb
|
50
|
+
- lib/podage/builders/builder.rb
|
51
|
+
- lib/podage/builders/ios_builder.rb
|
52
|
+
- lib/podage/builders/osx_builder.rb
|
53
|
+
- lib/podage/cli/command.rb
|
54
|
+
- lib/podage/cli/option.rb
|
55
|
+
- lib/podage/globals.rb
|
56
|
+
- lib/podage/packager.rb
|
57
|
+
- lib/podage/version.rb
|
58
|
+
homepage: https://github.com/jensmeder/Podage
|
59
|
+
licenses:
|
60
|
+
- MIT
|
61
|
+
metadata: {}
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
require_paths:
|
65
|
+
- lib
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
requirements: []
|
77
|
+
rubyforge_project:
|
78
|
+
rubygems_version: 2.5.1
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
81
|
+
summary: Package Cocoapods into Frameworks
|
82
|
+
test_files: []
|