脚本实现Android、IOS工程名、包名、appId更改

脚本实现Android、IOS工程名、包名、appId更改

在某些情况下,我们在第一次生成android或者ios工程之后,会有想更改工程名、包名以及ApplicationId的问题,但是更改之后可能会出现各种各样的报错,而且参考了很多的文章,其修改步骤比较零散,因此针对这种情况,写了脚本文件进行实现

使用到的shell脚本命令

  • grep

其可以用于查找指定目录下有某一字符串的所有文件,如下:

grep "str1" -rl dir

其用于查找在目录dir下查找所有含有字符串str1的文件。

这个主要是方便我们查找含当前包名、工程名的文件,方便后续修改

  • sed

其功能非常丰富,我这就不一一列举了,推荐大家去查看一些他所有的功能。

这里只是将本次使用到的命令进行说明,我们用的是-i,其用于修改文件里的某个字符串的命令如下:

sed -i "" "s/${str1}/${str2}/g"

以上的命令是将str1替换成str2。

注意在mac上使用sed可能会报错,此时只需哎调用命令之前添加如下:

export LC_CTYPE='C'

Android

假设Android工程名为train,原始包名为com.train,想要修改成com.${projectName}projectName一般需要传入

修改工程名、包名和applicationId,具体如下:

  • 工程名修改
  • 包名修改:将目录进行修改,文件中的引入也进行修改
  • applicationId更改,一般与包名一致

相应脚本如下:

# 更改包名和applicationId
grep "com.train" -rl android/* | xargs sed -i "" "s/com.train/com.${projectName}/g" 
# 根据包名更改包路径
prePkgName="android/app/src/main/java/com"
mkdir tmp
mv ${prePkgName}/train/* tmp
rm -rf ${prePkgName}
mkdir -p ${prePkgName}/${projectName}
mv tmp/* ${prePkgName}/${projectName}
rm -rf tmp
# 更改所有train的地方为工程名
grep "train" -rl android/* --exclude=train.sh | xargs sed -i "" "s/train/${projectName}/g"

上述主要针对以com开头的包名进行修改的,可以根据自己需求进行修改。

IOS

假设原来IOS工程名为train,原始AppId为com.train,然后想要修改为传入的projectName,appId相应修改,具体需要以下操作:

  • 更改工程名
  • 更改目录
  • 更改xcodeproj文件名
  • 更改scheme名,多个的话可以自行增加修改
  • 修改xworkspace名

相应脚本如下:

# 更改所有的train
grep "train" -rl ios/* --exclude=train.sh | xargs sed -i "" "s/train/${projectName}/g"
# 更改目录
mkdir -p ios/${projectName}
mv ios/train/* ios/${projectName}
rm -rf ios/train/
# 更改xcodeproj文件名
mv ios/train.xcodeproj ios/${projectName}.xcodeproj
# 更改scheme,多个的话可以自行增加修改
mv ios/train.xcodeproj/xcshareddata/xcschemes/train.xcscheme ios/train.xcodeproj/xcshareddata/xcschemes/${projectName}.xcscheme
# 修改xworkspace名
mv ios/train.xcworkspace ios/${projectName}.xcworkspace
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值