pod-builder 0.9.2 → 0.9.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d36d9f96e5add40dcfea2b813f2f2e7c7a8bf9dc92f66c18d9a9908b8b08acf9
4
- data.tar.gz: 9277379ff44774e76b71ee3daa8763dcdf73733800561baa6c12ce4c98b9f649
3
+ metadata.gz: 3ceefd6bd5f43a132ff983b2b61dcbccc7eb13f851eabcb202c596e7576a24b6
4
+ data.tar.gz: 0d79a2b1a7d4e4f6ca294c75cdcea47578f36f5f5d37df8840e4fe500f49fee2
5
5
  SHA512:
6
- metadata.gz: 49c7bfd632020dfb7d1ce681599652e4d5b7f4f44082a62b9440a6c5f45eccb571db1005f1b8d320aea8cdcc5ba4f9f571fe68c8cd7d824b8c681e22b01f4384
7
- data.tar.gz: 97ade0e62f14c2128937b5abd4f734fd123ad82ab506d0992a7dd5ee28318596fb600d4781fd1c1e000743eef41ed30e0e1ff46d2ee528af7fefe60ea8282bc4
6
+ metadata.gz: 5f5869951d3ce8182802e4979db221df18683cfc03f59fd129eb82d93db84553400c34aa606f5a35416758228c8ece7bd7bec7cea63333a7fdc405dda2b145c7
7
+ data.tar.gz: a0cb6040873ac85fed54eb09081db9c78bb3133702fff78ad93e7395149a2f2216f2921d6f0559c6066ee200c19017ea17805071ba2c44a2226fa56fbbfbfe4e
data/README.md CHANGED
@@ -279,6 +279,21 @@ PodBuilder leverages CocoaPods code and [cocoapods-rome plugin](https://github.c
279
279
 
280
280
  # FAQ
281
281
 
282
+ ### **I get an _'`Alamofire` does not specify a Swift version and none of the targets (`DummyTarget`)'_ when building**
283
+
284
+ The podspec of the Pod you're trying to build doesn't specify the swift_version which is required in recent versions of CocoaPods. Either contact the author/mantainer of the Pod asking it to fix the podspec or add a `spec_overrides` in _PodBuilder.json_.
285
+
286
+ ```json
287
+ "spec_overrides": {
288
+ "Google-Mobile-Ads-SDK": {
289
+ "module_name": "GoogleMobileAds"
290
+ },
291
+ "Swifter": {
292
+ "swift_version": "5.0"
293
+ }
294
+ }
295
+ ```
296
+
282
297
  ### **After prebuilding my project no longer compiles**
283
298
 
284
299
  A common problem you may encounter is with Objective-C imports. You should verify that you're properly importing all the headers of your pods with the angle bracket notation `#import <FrameworkName/HeaderFile.h>` instead of directly importing `#import "HeaderFile.h"`.
@@ -293,10 +308,12 @@ How to proceed in these cases?
293
308
 
294
309
  Relaunch the build command passing `-d`, this won't delete the temporary _/tmp/pod_builder_ folder on failure. Open _/tmp/pod_builder/Pods/Pods.xcproject_, make the Pods-DummyTarget target visible by clicking on _Show_ under _Product->Scheme->Manage shemes..._ and build from within Xcode. This will help you understand what went wrong. Remeber to verify that you're building the _Release_ build configuration.
295
310
 
311
+
296
312
  ### **Do I need to commit compiled frameworks?**
297
313
 
298
314
  No. If the size of compiled frameworks in your repo is a concern (and for whatever reason you can't use [Git-LFS](#git-lfs)) you can choose add the _Rome_ and _dSYM_ folder to .gitignore and run `pod_builder update` to rebuild all frameworks that need to be recompiled.
299
315
 
316
+
300
317
  ### **I get an _'attempt to read non existent folder `/private/tmp/pod_builder/Pods/ podname'_ when building**
301
318
 
302
319
  Please open an issue here. You may also add the name of the pod to the [`skip_pods`](#skip_pods) key in the configuration file and try rebuilding again.
@@ -82,7 +82,7 @@ module PodBuilder
82
82
  FileUtils.rm_f(PodBuilder::basepath("Podfile.lock"))
83
83
  end
84
84
 
85
- cleanup_framework_folder(all_buildable_items)
85
+ clean_frameworks_folder(all_buildable_items)
86
86
 
87
87
  Licenses::write(licenses, all_buildable_items)
88
88
 
@@ -297,7 +297,9 @@ module PodBuilder
297
297
  return pods_to_build
298
298
  end
299
299
 
300
- def self.cleanup_framework_folder(buildable_items)
300
+ def self.clean_frameworks_folder(buildable_items)
301
+ puts "Cleaning framework folder".yellow
302
+
301
303
  expected_frameworks = buildable_items.map { |x| "#{x.module_name}.framework" }
302
304
  expected_frameworks += buildable_items.map { |x| x.vendored_items }.flatten.map { |x| x.split("/").last }
303
305
  expected_frameworks.uniq!
@@ -311,6 +313,15 @@ module PodBuilder
311
313
  FileUtils.rm_rf(existing_framework)
312
314
  end
313
315
  end
316
+
317
+ existing_dsyms = Dir.glob("#{PodBuilder::basepath("dSYM")}/**/*.dSYM")
318
+ existing_dsyms.each do |existing_dsym|
319
+ existing_dsym_name = File.basename(existing_dsym)
320
+ if !expected_frameworks.include?(existing_dsym_name.gsub(".dSYM", ""))
321
+ puts "Cleanining up `#{existing_dsym_name}`, no longer found among dependencies".blue
322
+ FileUtils.rm_rf(existing_dsym)
323
+ end
324
+ end
314
325
  end
315
326
  end
316
327
  end
@@ -141,6 +141,10 @@ module PodBuilder
141
141
  # making it impossible to determine the associated Pods when building multiple pods at once
142
142
  search_base = "#{Configuration.build_path}/Pods/"
143
143
  podfile_items.each do |podfile_item|
144
+ if podfile_item.vendored_framework_path.nil?
145
+ next
146
+ end
147
+
144
148
  podfile_item.vendored_items.each do |vendored_item|
145
149
  unless vendored_item.end_with?(".a")
146
150
  next
@@ -156,7 +160,7 @@ module PodBuilder
156
160
 
157
161
  destination_path = PodBuilder::basepath("Rome/#{library_rel_path}/#{result_path}")
158
162
  FileUtils.mkdir_p(File.dirname(destination_path))
159
- FileUtils.cp_r(library_path, destination_path)
163
+ FileUtils.cp_r(library_path, destination_path, :remove_destination => true)
160
164
  end
161
165
  end
162
166
  end
@@ -158,7 +158,11 @@ module PodBuilder
158
158
  marker = podfile_item.prebuilt_marker()
159
159
 
160
160
  podfile_item_dependency_items = all_buildable_items.select { |x| podfile_item.dependency_names.include?(x.name) && x.vendored_framework_path.nil? == false }
161
- prebuilt_lines += podfile_item_dependency_items.map { |x| "#{line.detect_indentation}#{x.prebuilt_entry(include_pb_entry = false)}#{marker}\n" }.uniq
161
+ if podfile_item_dependency_items.count > 0
162
+ prebuilt_lines += podfile_item_dependency_items.map { |x| "#{line.detect_indentation}#{x.prebuilt_entry(include_pb_entry = false)}#{marker}\n" }.uniq
163
+ else
164
+ prebuilt_lines.push(line)
165
+ end
162
166
  else
163
167
  prebuilt_lines.push("#{line.detect_indentation}#{podfile_item.prebuilt_entry}\n")
164
168
  end
@@ -11,6 +11,7 @@ module PodBuilder
11
11
  attr_accessor :resources
12
12
  attr_accessor :exclude_files
13
13
  attr_accessor :xcconfig
14
+ attr_accessor :dependencies
14
15
 
15
16
  def initialize
16
17
  @name = ""
@@ -23,6 +24,7 @@ module PodBuilder
23
24
  @resources = []
24
25
  @exclude_files = []
25
26
  @xcconfig = {}
27
+ @dependencies = []
26
28
  end
27
29
 
28
30
  def to_s
@@ -68,6 +70,8 @@ module PodBuilder
68
70
  vendored_frameworks += item.vendored_items.map { |x| File.basename(x) }.select { |x| File.exist?(PodBuilder::basepath(PodfileItem::vendored_name_framework_path(x))) }.map { |x| "Rome/#{x}" }
69
71
  vendored_frameworks.uniq!
70
72
  vendored_libraries = Dir.glob(PodBuilder::basepath("Rome/#{item.module_name}/**/*.a")).map { |x| x.to_s.gsub(PodBuilder::basepath, "")[1..-1] }
73
+
74
+ non_prebuilt_dependencies = item.dependencies.select { |x| x.vendored_framework_path.nil? }
71
75
 
72
76
  podspec = " s.subspec '#{item.name.gsub("/", "_")}' do |p|\n"
73
77
 
@@ -92,6 +96,9 @@ module PodBuilder
92
96
  if item.xcconfig.keys.count > 0
93
97
  podspec += " p.xcconfig = #{item.xcconfig.to_s}\n"
94
98
  end
99
+ non_prebuilt_dependencies.each do |non_prebuilt_dependency|
100
+ podspec += " p.dependency '#{non_prebuilt_dependency.name}'\n"
101
+ end
95
102
 
96
103
  podspec += " end"
97
104
 
@@ -160,6 +167,8 @@ module PodBuilder
160
167
  podspec_item.xcconfig[k] = v
161
168
  end
162
169
  end
170
+
171
+ podspec_item.dependencies = buildable_items.select { |x| pod.dependency_names.include?(x.name) }
163
172
  end
164
173
 
165
174
  return podspec_items
@@ -1,4 +1,4 @@
1
1
  module PodBuilder
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.3"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pod-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Camin