美文网首页
iOS修改包名、模拟包名

iOS修改包名、模拟包名

作者: 大师的书 | 来源:发表于2020-07-15 11:33 被阅读0次

这是一个大胆的想法

适用环境

在调试的时候经常某些功能经常需要固定包名,但该包名又不能进行调试时。

应用场景

当我调试一个sdk,这个sdk指定的测试报名为com.test.a,而我的app包名com.test.b,我既想用com.test.b包名,又想调试这个sdk时,就可以使用我写的这个方法来临时改变包名,等用完再切换回来即可

使用方式

使用很简单,一句话即可切换包名,再使用完后再切换回来即可

#import "NSBundle+changeBundleId.h"//引入文件

//换成指定包名
[[NSBundle mainBundle] changeBundleIdentifier:@"想修改成的包名(例如应用场景中的com.test.a)"];

//换回正常包名
[[NSBundle mainBundle] changeBundleIdentifier:nil];

代码地址

代码地址
下载其中的NSBundle+changeBundleId.hNSBundle+changeBundleId.m即可

对pod有偏执的小伙伴也可以使用pod来引入,在Podfile文件中加入以下行:
pod 'WZZBaseTool/AOP'
然后pod install即可

原理

  1. 写一个NSBundle的分类,调用修改包名方法时,将NSBundle类的bundleIdentifier方法和交换为自己实现的方法,该操作每次打开app只会执行一次
  2. 在修改方法changeBundleIdentifier里如果传入了包名,则会将该包名保存起来,如果传入的是nil也会保存起来nil
  3. 在代码调用NSBundlebundleIdentifier方法获取包名时会调用到自己实现的方法,如果保存的包名不为空则返回保存的包名,如果为空则调用正常的bundleIdentifier方法,返回正常包名

相关文章

  • iOS修改包名、模拟包名

    这是一个大胆的想法 适用环境 在调试的时候经常某些功能经常需要固定包名,但该包名又不能进行调试时。 应用场景 当我...

  • 修改项目包名iOS

    应用场景:马甲应用规避审核被拒风险 温馨提示:做以下修改之前,建议压缩一份代码备份 注: 以下最终修改前后的文件夹...

  • iOS 修改项目包名

    !!!重命名项目时,记得先备份好一份,以防万一!!! 比如我要将:DS_KunMing改名成DS_WuHan 一 ...

  • AS 修改包名

    step、1 打开AndroidManifest.xml选中部分手动修改为新包名(package) step、2 ...

  • 修改包名

    1.修改文件夹结构,选中之后重命名2.修改包名,修改applicationId3.运行项目,如果报错,提示包名冲突...

  • iOS开发-修改项目包名

    今天来看一下iOS开发中如何修改包名,如果是单纯的修改包名还是比较简单的,但是如果和RN接起来,机会有超多的坑。 ...

  • AndroidStudio一步步教你修改项目包名

    如果你看了很多篇博文还是修改不了包名,我相信这篇可以帮你解决修改包名的问题 修改项目包名,实现不覆盖安装(如果只是...

  • 修改jar包名

    一 描述 在开发中总会遇到项目中有老版本的jar包,而替换成新版本的jar包项目整体改动巨大,为了兼容老版本,...

  • android 修改包名

    http://blog.csdn.net/lv_fq/article/details/51874181

  • Eclipse修改包名

    在Eclipse中应该怎样去修改Android应用程序的包名(注意按步骤修改) eclipse出现 Some ch...

网友评论

      本文标题:iOS修改包名、模拟包名

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