Xcode 7.x 升级 8.x awakeFromNib 警告处理脚本

升级Xcode后会批量出现这种警告,Xcode 7.x之前版本没有提示。事实上也应该是要调 [super awakeFromNib] 的。
于是写了个脚本批量替换:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author ervin
import sys
import os
def is_file_contains_sources(file_path):
if ".m" in file_path:
return True
return False
def should_file_upgrade(file_content):
if "(void)awakeFromNib" in file_content:
if "[super awakeFromNib]" not in file_content:
return True
return False
def upgrade_file(file_path):
with open(file_path, "rb") as f:
file_content = f.read()
if not should_file_upgrade(file_content):
return
file_content = file_content.replace("- (void)awakeFromNib {", "- (void)awakeFromNib {\n [super awakeFromNib];")
with open(file_path, "wb") as f:
f.write(file_content)
def upgrade_files(root, files):
for f in files:
file_path = os.path.join(root, f)
if not is_file_contains_sources(file_path):
continue
print "processing " + file_path
upgrade_file(file_path)
def main():
source_path = sys.argv[1]
list_dirs = os.walk(source_path)
for root, dirs, files in list_dirs:
upgrade_files(root, files)
if __name__ == '__main__':
if len(sys.argv) != 2:
name = os.path.basename(sys.argv[0])
print "Usage: {0} /path/to/source".format(name)
exit(0)
main()