py3修改xcode图标和plist文件

1,275 阅读1分钟
import os
import shutil

from biplist import *

####  注意: 项目的bundleID无法用脚本修改,记得手动改掉!!!!

#生产环境项目路径
prod_path = "/Users/apple/Documents/tankCat"
#生产环境图片资源文件
prod_logo_path = "/Users/apple/Documents/探客猫正式版图标.png/Images.xcassets/AppIcon.appiconset"
#开发环境项目路径
dev_path = "/Users/apple/Desktop/tankCat"
assset_path = "/TankCat/Assets.xcassets/AppIcon.appiconset"
#完整路径
prod_asset_path = prod_path + assset_path
dev_asset_path = dev_path + assset_path
pch_path = '/Users/apple/Documents/tankCat/TankCat/tools/PrefixHeader.pch'

def replaceProdLogoPics():    
    for dirpath, dirnames,filenames in os.walk(prod_asset_path):
        for filepath in filenames:
            # print(filenames)#元组
            # print (os.path.join(dirpath, filepath))
            pic_path = os.path.join(dirpath, filepath)
            if(os.path.exists(pic_path)):
                os.remove(pic_path)
            else:
                print("要删除的文件不存在!"+pic_path)
    #图片删除完了,拷贝生产logo到项目里
    for dirpath, dirnames,filenames in os.walk(prod_logo_path):
        for filepath in filenames:
            pic_path = os.path.join(dirpath, filepath)
            shutil.copy(pic_path,prod_asset_path)
#修改info.plist里的bundleID
def modifyInfoPlistFile():
    prod_info_path = prod_path + '/TankCat/Info.plist'
    infoPlist = readPlist(prod_info_path)
    infoPlist['CFBundleDisplayName'] = '探客猫'
    infoPlist["CFBundleShortVersionString"] = '1.0'
    infoPlist["CFBundleVersion"] = '9'
    # infoPlist['CFBundleIdentifier'] = 'cn.tankemao.ios'
    urlTypes = infoPlist['CFBundleURLTypes']
    for dic in urlTypes:
        name = dic['CFBundleURLName']
        if name == 'weixin':
            schemes = dic['CFBundleURLSchemes']
            if len(schemes)>0:
                schemes[0] = 'wx4f5987009016b0a4'
            else:
                print('微信scheme不存在')
        else:
            pass


    writePlist(infoPlist,prod_info_path)
    

def modifyPCHFile():
    file_data = ""
    with open(pch_path, "r", encoding="utf-8") as f:
        target = '#define dl_app_env 0'
        for line in f:
            if target in line:
                line = line.replace(target,'#define dl_app_env 1')
            file_data += line
    with open(pch_path,"w",encoding="utf-8") as f:
        f.write(file_data)


if __name__ == '__main__':
    replaceProdLogoPics()
    modifyInfoPlistFile()
    modifyPCHFile()