lib/cocoapods_stats/target_mapper.rb in cocoapods-stats-1.0.0.beta.2 vs lib/cocoapods_stats/target_mapper.rb in cocoapods-stats-1.0.0.beta.3
- old
+ new
@@ -15,19 +15,30 @@
pods = root_specs.
select { |spec| master_pods.include?(spec.name) }.
map { |spec| { :name => spec.name, :version => spec.version.to_s } }
# This will be an empty array for `integrate_targets: false` Podfiles
- target.user_targets.map do |user_target|
+ user_targets(target).map do |user_target|
# Send in a digested'd UUID anyway, a second layer
# of misdirection can't hurt
{
:uuid => Digest::SHA256.hexdigest(user_target.uuid),
:type => user_target.product_type,
:pods => pods,
:platform => user_target.platform_name,
}
end
end
+ end
+
+ private
+
+ # @todo remove this once everyone has migrated to CocoaPods 1.0, see
+ # https://github.com/CocoaPods/CocoaPods/issues/4741
+ def user_targets(target)
+ return target.user_targets if target.respond_to?(:user_targets)
+ project = Xcodeproj::Project.open(target.user_project_path) if target.user_project_path
+ return [] unless project
+ target.user_target_uuids.map { |uuid| project.objects_by_uuid[uuid] }.compact
end
end
end