美文网首页iOS开发资料收集区
自动生成hmap的Ruby脚本

自动生成hmap的Ruby脚本

作者: tt大眼仔 | 来源:发表于2021-08-19 15:24 被阅读0次

需要借助milend的hmap工具[https://github.com/milend/hmap]

Homebrew 安装hmap brew install milend/taps/hmap

#!/usr/bin/ruby
require 'json'

# 定义脚本运行路径,将在此路径查找.h文件
directory_path = Dir.pwd() 

# json 文件生成路径
json_file_path = ""
# hmap文件生成路径
hmap_file_path = ""
json_arr = Hash[]

h_arr = Dir.glob("#{directory_path}/**/*.h")
h_arr.each do |f| 
    file_arr = File::split(f)
    filename = file_arr[1]
    suffix = filename
    prefix = file_arr[0]

    json_arr[filename] =  Hash["prefix" => "#{prefix}/", "suffix" => suffix]

    # 如果是pod路径,添加path/a.h这样的引用,如SDWebImage/NSImage+Compatibility.h
    path_arr = f.split("/")
    privatePods_index = path_arr.index("Pods") 
    if privatePods_index
        filename = path_arr[privatePods_index+1] + "/" + filename
        json_arr[filename] =  Hash["prefix" => "#{prefix}/", "suffix" => suffix]
    end
end

# 写入json文件
File.open(json_file_path, "w+") do |aFile|
    aFile.syswrite(json_arr.to_json)
end
# 调用hmap将json转为hmap
shell = "hmap convert #{json_file_path} #{hmap_file_path}"
%x(#{shell})
puts "Success!"

生成之后在工程中设置HEADER_SEARCH_PATHS 为上面生成的hmap路径
并且将USE_HEADERMAP设为NO

相关文章

网友评论

    本文标题:自动生成hmap的Ruby脚本

    本文链接:https://www.haomeiwen.com/subject/hzhwjltx.html