Skip to content

Commit 4af8065

Browse files
author
Siddharth Gupta
committed
Merge branch 'dmac81/SetPlatform'
2 parents 0b5a3f9 + e0c9e88 commit 4af8065

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

PodMergeExample/MergeFile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ end
1717

1818
group 'AlamofireGroup' do
1919
swift_version! '5.0'
20+
platform :ios, '11.0'
2021
has_dependencies!
2122

2223
pod 'Alamofire', '4.9.1'

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,22 @@ end
199199

200200
This is especially handy if some of the pods in your group do not have a Swift Version defined in their `podspec`.
201201

202+
#### platform
203+
204+
If you have multiple platforms in your base Podfile, you can specify the `platform` for each group in your MergeFile
205+
206+
```ruby
207+
group 'SwiftPodsGroup'
208+
platform :ios, '11.0'
209+
210+
pod 'SwiftPodA'
211+
pod 'SwiftPodB'
212+
pod 'SwiftPodC'
213+
end
214+
```
215+
216+
This is helpful when you have a Podfile with Pods for iOS, WatchOS, etc...
217+
202218
## Version Control (like git)
203219

204220
You should definitely commit the `MergeFile` into your repository, since this is just like your Podfile, and is required for the plugin to work.

lib/cocoapods-pod-merge/Main.rb

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ def parse_mergefile
159159
else
160160
merge_groups[group_name]['flags'][line.strip.delete('!')] = true
161161
end
162+
elsif line.strip.include?('platform')
163+
merge_groups[group_name]['platforms'].append(line)
162164
else
163165
merge_groups[group_name]['lines'].append(line)
164166
line = line.split(',').first
@@ -174,7 +176,7 @@ def parse_mergefile
174176
abort("Duplicate Group Name: #{group_name}. Please make sure all groups have different names!".red)
175177
end
176178

177-
merge_groups[group_name] = { 'titles' => [], 'lines' => [], 'flags' => {}, 'swift_version' => '' }
179+
merge_groups[group_name] = { 'titles' => [], 'lines' => [], 'flags' => {}, 'swift_version' => '', 'platforms' => [] }
178180
parsing_a_group = true
179181
end
180182
end
@@ -189,6 +191,7 @@ def merge(merged_framework_name, group_contents, podfile_info)
189191
pods_to_merge = group_contents['titles']
190192
flags = group_contents['flags']
191193
forced_swift_language_version = group_contents['swift_version']
194+
platforms_in_target = group_contents['platforms']
192195
public_headers_by_pod = {}
193196
frameworks = []
194197
prefix_header_contents = []
@@ -217,7 +220,7 @@ def merge(merged_framework_name, group_contents, podfile_info)
217220
Pod::UI.puts 'Downloading Pods in the group'.cyan
218221
FileUtils.mkdir CacheDirectory unless File.directory?(CacheDirectory)
219222

220-
create_cache_podfile(podfile_info, group_contents['lines'], forced_swift_language_version)
223+
create_cache_podfile(podfile_info, group_contents['lines'], forced_swift_language_version, platforms_in_target)
221224

222225
Dir.chdir(CacheDirectory) do
223226
system('pod install') || raise('Failed to download pods to merge')
@@ -418,7 +421,7 @@ def array_wrapped(object)
418421
return [object] if object.class == String || object.class == Hash
419422
end
420423

421-
def create_cache_podfile(podfile_info, pods, swift_language_version)
424+
def create_cache_podfile(podfile_info, pods, swift_language_version, platforms_in_target)
422425
FileUtils.touch("#{CacheDirectory}/Podfile")
423426
file = File.new("#{CacheDirectory}/Podfile", 'w')
424427

@@ -442,8 +445,11 @@ def create_cache_podfile(podfile_info, pods, swift_language_version)
442445
podfile_info.sources.each do |source|
443446
file.puts source
444447
end
445-
podfile_info.platforms.each do |platform|
446-
file.puts platform
448+
449+
if platforms_in_target.length == 0
450+
podfile_info.platforms.each do |platform|
451+
file.puts platform
452+
end
447453
end
448454

449455
if uses_swift
@@ -453,6 +459,9 @@ def create_cache_podfile(podfile_info, pods, swift_language_version)
453459
end
454460

455461
file.puts("target 'Dummy' do")
462+
platforms_in_target.each do |platform|
463+
file.puts platform.to_s
464+
end
456465
pods.each do |line|
457466
file.puts line.to_s
458467
end

0 commit comments

Comments
 (0)