Class: Pod::Prebuild

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-binary-cache/pod-binary/helper/target_checker.rb

Class Method Summary collapse

Class Method Details

.check_one_pod_should_have_only_one_target(prebuilt_targets) ⇒ Object

Check the targets, for the current limitation of the plugin

Parameters:

  • prebuilt_targets (Array<PodTarget>)

Raises:

  • (Informative)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/cocoapods-binary-cache/pod-binary/helper/target_checker.rb', line 6

def self.check_one_pod_should_have_only_one_target(prebuilt_targets)
  targets_have_different_platforms = prebuilt_targets.reject { |t| t.pod_name == t.name }
  return unless targets_have_different_platforms.empty?

  names = targets_have_different_platforms.map(&:pod_name)
  raw_names = targets_have_different_platforms.map(&:name)
  message = "Oops, you came across a limitation of cocoapods-binary.

The plugin requires that one pod should have ONLY ONE target in the 'Pod.xcodeproj'. There are mainly 2 situations \
causing this problem:

1. One pod integrates in 2 or more different platforms' targets. e.g.
```
target 'iphoneApp' do
  pod 'A', :binary => true
end
target 'watchApp' do
  pod 'A'
end
```

2. Use different subspecs in multiple targets. e.g.
```
target 'iphoneApp' do
  pod 'A/core'
  pod 'A/network'
end
target 'iphoneAppTest' do
  pod 'A/core'
end
```

Related pods: #{names}, target names: #{raw_names}"
  raise Informative, message
end