Class: PodTool

Inherits:
Object
  • Object
show all
Defined in:
lib/pod_tool.rb

Overview

tool of pod

Class Method Summary collapse

Class Method Details

.output_json(path) ⇒ Object

parse Cocoapods Podfile to json

Example:

>> PodfileTool.outputJson("/path_of_Podfile")
=> {json}

Arguments:

path: (path_of_Podfile)

output to file name Podfile.json Example2:

>> PodfileTool.outputJsonFile("/path_of_Podfile")
=> {json}

Arguments:

path: (path_of_Podfile)


23
24
25
26
27
28
29
30
31
# File 'lib/pod_tool.rb', line 23

def self.output_json(path)
  if File.file?(path)
    podfile_hash = Pod::Podfile.from_file(path).to_hash
    podfile_json = JSON.pretty_generate(podfile_hash)
    puts podfile_json
  else
    puts 'need Podfile Path!!!'
  end
end

.remove_phase(project_path, target_to_remove, p_toremove) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/pod_tool.rb', line 113

def self.remove_phase(project_path, target_to_remove, p_toremove)
  project = Xcodeproj::Project.open(project_path)
  project.targets.each do |target|
    # puts target.name
    next unless target.name == target_to_remove
    # puts target.methods
    target.build_phases.each do |atarget|
      puts atarget.display_name
      if atarget.display_name == p_toremove
        atarget.remove_from_project
        project.save
        puts "#{target.name} #{p_toremove} did remove"
      end
    end
  end
end

.remove_target(project_path, target_to_remove) ⇒ Object

remove a target of project Arguments:

project_path:(project_path)
target_to_remove:(target_to_remove)

Example4: >> PodfileTool.removeTarget(args, args)

> puts “#targettarget.name did remove from project!!”



75
76
77
78
79
80
81
82
83
84
# File 'lib/pod_tool.rb', line 75

def self.remove_target(project_path, target_to_remove)
  project = Xcodeproj::Project.open(project_path)
  project.targets.each do |target|
    if target.name == target_to_remove
      target.remove_from_project
      puts "#{target.name} did remove from project!!"
    end
  end
  project.save
end

.remove_target_frame_search_path(project_path, target_to_remove, frame_search_path) ⇒ Object

remove a target frame_search_path of project Arguments:

project_path:(project_path)
target_to_remove:(target_to_remove)
frame_search_path:(frame_search_path)

Example4: >> PodfileTool.removeTargetFrameSearchPath(args, args, args)

> puts search_paths



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/pod_tool.rb', line 97

def self.remove_target_frame_search_path(project_path, target_to_remove, frame_search_path)
  project = Xcodeproj::Project.open(project_path)
  project.targets.each do |target|
    next unless target.name == target_to_remove
    puts target.name
    target.build_configurations.each do |configuration|
      search_paths = configuration.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= '$(inherited)'
      if search_paths.is_a? Array
        search_paths.delete_if { |e| e == frame_search_path }
      end
      puts "FRAMEWORK_SEARCH_PATHS:#{search_paths}"
    end
  end
  project.save
end

.share_all_pod_scheme(pods_project_path) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/pod_tool.rb', line 51

def self.share_all_pod_scheme(pods_project_path)
  project = Xcodeproj::Project.open(pods_project_path)
  project.targets.each do |e|
    begin
      Xcodeproj::XCScheme.share_scheme(project.path, e.name)
      puts "Success share #{e.name}"
    rescue => err
      puts "Fail share #{e.name}"
      puts err
    end
  end
  project.save
end

.share_pod_scheme(pods_project_path, pod_name) ⇒ Object

share pod project scheme,Share a User Scheme. Basically this method move the xcscheme file from the xcuserdata folder to xcshareddata folder. Arguments:

pods_project_path:(pods_project_path)

Example3: >> PodfileTool.sharePodScheme(“/path_of_Pod_project”)

> “Success share #pod_name”



42
43
44
45
46
47
48
49
# File 'lib/pod_tool.rb', line 42

def self.share_pod_scheme(pods_project_path, pod_name)
  project = Xcodeproj::Project.open(pods_project_path)
  schemes = Xcodeproj::Project.schemes(pods_project_path)
  unless schemes.include? pod_name
    Xcodeproj::XCScheme.share_scheme(project.path, pod_name)
  end
  puts "Success share #{pod_name}"
end

.unescape(to) ⇒ Object



130
131
132
# File 'lib/pod_tool.rb', line 130

def self.unescape(to)
  puts URI.unescape(to)
end