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