cocoapods-rome 0.8.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a638625751491ade75d2b7bec19c0b08aa80c425
4
- data.tar.gz: f2ded28621a976f5e3c829d39637aff90369db53
3
+ metadata.gz: 311a92d3767d97104b9f5b68d8fec1f778270ae1
4
+ data.tar.gz: '0888b5c3242fdf62303f654d41f3987105d2dd35'
5
5
  SHA512:
6
- metadata.gz: 61262472a96912a6ca5cf07695908ec1a8bbb430a3964e79fc93999066c4e6ba57b99de4eb71b63983bcab01c045d43715befe0f43fe78a3932eed948efc0b81
7
- data.tar.gz: 7d7656a5880248ce20c603af87df72975cf87d60472c234b9611c30cd7d6bb2ad55e72b96bd383065c9363ea3c6585f41087afb3144884abefc163c3c8325970
6
+ metadata.gz: f466d6e2a5d277af6d6e14bf891452f32025012e4e212bbccb4ab2f51089a98e2fbc1ce3abef3ee8741b843cb701cdb838849df58d337f0df6fb2a14534ad226
7
+ data.tar.gz: 258d314b5de0cfd1960558d609e77384ebb3eac0515dd4dbeb2d8f8a5d6b6240669594f5bbb14089221aa0fe2e41e6a4f840b4f1474423202b32c2d821d26efc
@@ -1,78 +1,79 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cocoapods-rome (0.8.0)
4
+ cocoapods-rome (1.0.0)
5
5
  cocoapods (>= 1.1.0, < 2.0)
6
6
  fourflusher (~> 2.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- CFPropertyList (2.3.5)
12
- activesupport (4.2.7.1)
11
+ CFPropertyList (3.0.0)
12
+ activesupport (4.2.10)
13
13
  i18n (~> 0.7)
14
- json (~> 1.7, >= 1.7.7)
15
14
  minitest (~> 5.1)
16
15
  thread_safe (~> 0.3, >= 0.3.4)
17
16
  tzinfo (~> 1.1)
17
+ atomos (0.1.2)
18
18
  bacon (1.2.0)
19
- claide (1.0.1)
20
- cocoapods (1.2.0)
19
+ claide (1.0.2)
20
+ cocoapods (1.5.0)
21
21
  activesupport (>= 4.0.2, < 5)
22
- claide (>= 1.0.1, < 2.0)
23
- cocoapods-core (= 1.2.0)
24
- cocoapods-deintegrate (>= 1.0.1, < 2.0)
25
- cocoapods-downloader (>= 1.1.3, < 2.0)
22
+ claide (>= 1.0.2, < 2.0)
23
+ cocoapods-core (= 1.5.0)
24
+ cocoapods-deintegrate (>= 1.0.2, < 2.0)
25
+ cocoapods-downloader (>= 1.2.0, < 2.0)
26
26
  cocoapods-plugins (>= 1.0.0, < 2.0)
27
27
  cocoapods-search (>= 1.0.0, < 2.0)
28
28
  cocoapods-stats (>= 1.0.0, < 2.0)
29
- cocoapods-trunk (>= 1.1.2, < 2.0)
29
+ cocoapods-trunk (>= 1.3.0, < 2.0)
30
30
  cocoapods-try (>= 1.1.0, < 2.0)
31
- colored (~> 1.2)
31
+ colored2 (~> 3.1)
32
32
  escape (~> 0.0.4)
33
33
  fourflusher (~> 2.0.1)
34
34
  gh_inspector (~> 1.0)
35
- molinillo (~> 0.5.5)
35
+ molinillo (~> 0.6.5)
36
36
  nap (~> 1.0)
37
- ruby-macho (~> 0.2.5)
38
- xcodeproj (>= 1.4.1, < 2.0)
39
- cocoapods-core (1.2.0)
40
- activesupport (>= 4.0.2, < 5)
37
+ ruby-macho (~> 1.1)
38
+ xcodeproj (>= 1.5.7, < 2.0)
39
+ cocoapods-core (1.5.0)
40
+ activesupport (>= 4.0.2, < 6)
41
41
  fuzzy_match (~> 2.0.4)
42
42
  nap (~> 1.0)
43
- cocoapods-deintegrate (1.0.1)
44
- cocoapods-downloader (1.1.3)
43
+ cocoapods-deintegrate (1.0.2)
44
+ cocoapods-downloader (1.2.0)
45
45
  cocoapods-plugins (1.0.0)
46
46
  nap
47
47
  cocoapods-search (1.0.0)
48
48
  cocoapods-stats (1.0.0)
49
- cocoapods-trunk (1.1.2)
49
+ cocoapods-trunk (1.3.0)
50
50
  nap (>= 0.8, < 2.0)
51
- netrc (= 0.7.8)
51
+ netrc (~> 0.11)
52
52
  cocoapods-try (1.1.0)
53
- colored (1.2)
53
+ colored2 (3.1.2)
54
+ concurrent-ruby (1.0.5)
54
55
  escape (0.0.4)
55
56
  fourflusher (2.0.1)
56
57
  fuzzy_match (2.0.4)
57
- gh_inspector (1.0.3)
58
- i18n (0.8.0)
59
- json (1.8.6)
60
- minitest (5.10.1)
61
- molinillo (0.5.5)
62
- nanaimo (0.2.3)
58
+ gh_inspector (1.1.3)
59
+ i18n (0.9.5)
60
+ concurrent-ruby (~> 1.0)
61
+ minitest (5.11.3)
62
+ molinillo (0.6.5)
63
+ nanaimo (0.2.5)
63
64
  nap (1.1.0)
64
- netrc (0.7.8)
65
+ netrc (0.11.0)
65
66
  rake (11.2.2)
66
- ruby-macho (0.2.6)
67
- thread_safe (0.3.5)
68
- tzinfo (1.2.2)
67
+ ruby-macho (1.1.0)
68
+ thread_safe (0.3.6)
69
+ tzinfo (1.2.5)
69
70
  thread_safe (~> 0.1)
70
- xcodeproj (1.4.2)
71
- CFPropertyList (~> 2.3.3)
72
- activesupport (>= 3)
73
- claide (>= 1.0.1, < 2.0)
74
- colored (~> 1.2)
75
- nanaimo (~> 0.2.3)
71
+ xcodeproj (1.5.7)
72
+ CFPropertyList (>= 2.3.3, < 4.0)
73
+ atomos (~> 0.1.2)
74
+ claide (>= 1.0.2, < 2.0)
75
+ colored2 (~> 3.1)
76
+ nanaimo (~> 0.2.4)
76
77
 
77
78
  PLATFORMS
78
79
  ruby
@@ -84,4 +85,4 @@ DEPENDENCIES
84
85
  rake
85
86
 
86
87
  BUNDLED WITH
87
- 1.14.3
88
+ 1.15.4
data/README.md CHANGED
@@ -38,3 +38,71 @@ $ tree Rome/
38
38
  Rome/
39
39
  └── Alamofire.framework
40
40
  ```
41
+
42
+ For your production builds, when you want dSYMs created and stored:
43
+
44
+ ```ruby
45
+ platform :osx, '10.10'
46
+
47
+ plugin 'cocoapods-rome', {
48
+ dsym: true,
49
+ configuration: 'Release'
50
+ }
51
+
52
+ target 'caesar' do
53
+ pod 'Alamofire'
54
+ end
55
+ ```
56
+
57
+ Resulting in:
58
+
59
+ ```
60
+ $ tree dSYM/
61
+ dSYM/
62
+ ├── iphoneos
63
+ │   └── Alamofire.framework.dSYM
64
+ │   └── Contents
65
+ │   ├── Info.plist
66
+ │   └── Resources
67
+ │   └── DWARF
68
+ │   └── Alamofire
69
+ └── iphonesimulator
70
+ └── Alamofire.framework.dSYM
71
+ └── Contents
72
+ ├── Info.plist
73
+ └── Resources
74
+ └── DWARF
75
+ └── Alamofire
76
+ ```
77
+
78
+ ## Hooks
79
+
80
+ The plugin allows you to provides hooks that will be called during the installation process.
81
+
82
+ ### `pre_compile`
83
+
84
+ This hook allows you to make any last changes to the generated Xcode project before the compilation of frameworks begins.
85
+
86
+ It receives the `Pod::Installer` as its only argument.
87
+
88
+ #### Example
89
+
90
+ Customising the Swift version of all pods
91
+
92
+ ```ruby
93
+ platform :osx, '10.10'
94
+
95
+ plugin 'cocoapods-rome', :pre_compile => Proc.new { |installer|
96
+ installer.pods_project.targets.each do |target|
97
+ target.build_configurations.each do |config|
98
+ config.build_settings['SWIFT_VERSION'] = '4.0'
99
+ end
100
+ end
101
+
102
+ installer.pods_project.save
103
+ }
104
+
105
+ target 'caesar' do
106
+ pod 'Alamofire'
107
+ end
108
+ ```
@@ -1,3 +1,3 @@
1
1
  module CocoapodsRome
2
- VERSION = "0.8.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -1,47 +1,77 @@
1
1
  require 'fourflusher'
2
2
 
3
- CONFIGURATION = "Release"
4
3
  PLATFORMS = { 'iphonesimulator' => 'iOS',
5
4
  'appletvsimulator' => 'tvOS',
6
5
  'watchsimulator' => 'watchOS' }
7
6
 
8
- def build_for_iosish_platform(sandbox, build_dir, target, device, simulator)
7
+ def build_for_iosish_platform(sandbox, build_dir, target, device, simulator, configuration)
9
8
  deployment_target = target.platform_deployment_target
10
9
  target_label = target.cocoapods_target_label
11
10
 
12
- xcodebuild(sandbox, target_label, device, deployment_target)
13
- xcodebuild(sandbox, target_label, simulator, deployment_target)
11
+ xcodebuild(sandbox, target_label, device, deployment_target, configuration)
12
+ xcodebuild(sandbox, target_label, simulator, deployment_target, configuration)
14
13
 
15
14
  spec_names = target.specs.map { |spec| [spec.root.name, spec.root.module_name] }.uniq
16
15
  spec_names.each do |root_name, module_name|
17
16
  executable_path = "#{build_dir}/#{root_name}"
18
- device_lib = "#{build_dir}/#{CONFIGURATION}-#{device}/#{root_name}/#{module_name}.framework/#{module_name}"
17
+ device_lib = "#{build_dir}/#{configuration}-#{device}/#{root_name}/#{module_name}.framework/#{module_name}"
19
18
  device_framework_lib = File.dirname(device_lib)
20
- simulator_lib = "#{build_dir}/#{CONFIGURATION}-#{simulator}/#{root_name}/#{module_name}.framework/#{module_name}"
19
+ simulator_lib = "#{build_dir}/#{configuration}-#{simulator}/#{root_name}/#{module_name}.framework/#{module_name}"
21
20
 
22
21
  next unless File.file?(device_lib) && File.file?(simulator_lib)
23
22
 
24
23
  lipo_log = `lipo -create -output #{executable_path} #{device_lib} #{simulator_lib}`
25
24
  puts lipo_log unless File.exist?(executable_path)
26
25
 
27
- FileUtils.mv executable_path, device_lib
28
- FileUtils.mv device_framework_lib, build_dir
26
+ FileUtils.mv executable_path, device_lib, :force => true
27
+ FileUtils.mv device_framework_lib, build_dir, :force => true
29
28
  FileUtils.rm simulator_lib if File.file?(simulator_lib)
30
29
  FileUtils.rm device_lib if File.file?(device_lib)
31
30
  end
32
31
  end
33
32
 
34
- def xcodebuild(sandbox, target, sdk='macosx', deployment_target=nil)
35
- args = %W(-project #{sandbox.project_path.realdirpath} -scheme #{target} -configuration #{CONFIGURATION} -sdk #{sdk})
33
+ def xcodebuild(sandbox, target, sdk='macosx', deployment_target=nil, configuration)
34
+ args = %W(-project #{sandbox.project_path.realdirpath} -scheme #{target} -configuration #{configuration} -sdk #{sdk})
36
35
  platform = PLATFORMS[sdk]
37
36
  args += Fourflusher::SimControl.new.destination(:oldest, platform, deployment_target) unless platform.nil?
38
37
  Pod::Executable.execute_command 'xcodebuild', args, true
39
38
  end
40
39
 
41
- Pod::HooksManager.register('cocoapods-rome', :post_install) do |installer_context|
40
+ def enable_debug_information(project_path, configuration)
41
+ project = Xcodeproj::Project.open(project_path)
42
+ project.targets.each do |target|
43
+ config = target.build_configurations.find { |config| config.name.eql? configuration }
44
+ config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
45
+ config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
46
+ end
47
+ project.save
48
+ end
49
+
50
+ def copy_dsym_files(dsym_destination, configuration)
51
+ dsym_destination.rmtree if dsym_destination.directory?
52
+ platforms = ['iphoneos', 'iphonesimulator']
53
+ platforms.each do |platform|
54
+ dsym = Pathname.glob("build/#{configuration}-#{platform}/**/*.dSYM")
55
+ dsym.each do |dsym|
56
+ destination = dsym_destination + platform
57
+ FileUtils.mkdir_p destination
58
+ FileUtils.cp_r dsym, destination, :remove_destination => true
59
+ end
60
+ end
61
+ end
62
+
63
+ Pod::HooksManager.register('cocoapods-rome', :post_install) do |installer_context, user_options|
64
+ enable_dsym = user_options.fetch('dsym', true)
65
+ configuration = user_options.fetch('configuration', true)
66
+ if user_options["pre_compile"]
67
+ user_options["pre_compile"].call(installer_context)
68
+ end
69
+
42
70
  sandbox_root = Pathname(installer_context.sandbox_root)
43
71
  sandbox = Pod::Sandbox.new(sandbox_root)
44
72
 
73
+ enable_debug_information(sandbox.project_path, configuration) if enable_dsym
74
+
45
75
  build_dir = sandbox_root.parent + 'build'
46
76
  destination = sandbox_root.parent + 'Rome'
47
77
 
@@ -51,10 +81,10 @@ Pod::HooksManager.register('cocoapods-rome', :post_install) do |installer_contex
51
81
  targets = installer_context.umbrella_targets.select { |t| t.specs.any? }
52
82
  targets.each do |target|
53
83
  case target.platform_name
54
- when :ios then build_for_iosish_platform(sandbox, build_dir, target, 'iphoneos', 'iphonesimulator')
55
- when :osx then xcodebuild(sandbox, target.cocoapods_target_label)
56
- when :tvos then build_for_iosish_platform(sandbox, build_dir, target, 'appletvos', 'appletvsimulator')
57
- when :watchos then build_for_iosish_platform(sandbox, build_dir, target, 'watchos', 'watchsimulator')
84
+ when :ios then build_for_iosish_platform(sandbox, build_dir, target, 'iphoneos', 'iphonesimulator', configuration)
85
+ when :osx then xcodebuild(sandbox, target.cocoapods_target_label, configuration)
86
+ when :tvos then build_for_iosish_platform(sandbox, build_dir, target, 'appletvos', 'appletvsimulator', configuration)
87
+ when :watchos then build_for_iosish_platform(sandbox, build_dir, target, 'watchos', 'watchsimulator', configuration)
58
88
  else raise "Unknown platform '#{target.platform_name}'" end
59
89
  end
60
90
 
@@ -85,5 +115,8 @@ Pod::HooksManager.register('cocoapods-rome', :post_install) do |installer_contex
85
115
  FileUtils.mkdir_p destination
86
116
  FileUtils.cp_r framework, destination, :remove_destination => true
87
117
  end
118
+
119
+ copy_dsym_files(sandbox_root.parent + 'dSYM', configuration) if enable_dsym
120
+
88
121
  build_dir.rmtree if build_dir.directory?
89
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-rome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Bügling
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-07 00:00:00.000000000 Z
11
+ date: 2018-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -113,11 +113,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  version: '0'
114
114
  requirements: []
115
115
  rubyforge_project:
116
- rubygems_version: 2.4.5.1
116
+ rubygems_version: 2.2.2
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Rome makes it easy to build a list of frameworks for consumption outside
120
120
  of Xcode
121
121
  test_files:
122
122
  - spec/spec_helper.rb
123
- has_rdoc: