加入以下到Podfile
第一部分:(指定替换文件路径及替换文本)
post_installdo|installer|
find_and_replace("Pods/FBRetainCycleDetector/FBRetainCycleDetector/Layout/Classes/FBClassStrongLayout.mm","layoutCache[currentClass] = ivars;", "layoutCache[(id)currentClass] = ivars;")
end
第二部分:定义替换方法find_and_replace供第一部分调用(很多教程里报错是因为少了 FileUtils.chmod("+w", name) 这一行获取权限)
def find_and_replace(dir, findstr, replacestr)
Dir[dir].eachdo|name|
FileUtils.chmod("+w", name) #add
text = File.read(name)
replace = text.gsub(findstr,replacestr)
if text != replace
puts"Fix: "+ name
File.open(name,"w") { |file| file.puts replace }
STDOUT.flush
end
end
Dir[dir +'*/'].each(&method(:find_and_replace))
end
PS:其实这个方法可以用于任何Pod库的注入替换修改,比如HandyJSON在iOS15上Number类型转String会丢失精度的问题,而修改只需要修改BuiltInBasicType.swift中formatter.maximumFractionDigits = 16这一行,该小一点比如10就可以。适用于这种一两行的替换
网友评论