XCode 签名配置的快速设置工具

博主因修改了默认的“iPhone Developer”签名,导致每次真机测试都需要手动配置。为解决这一问题,作者利用Java编写了一个文本处理工具,通过读取并修改`project.pbxproj`文件中签名配置的部分,实现快速切换签名,简化了XCode项目的签名配置工作,提高了开发效率。
摘要由CSDN通过智能技术生成
               

之前看到过一篇无证做真机测试的文章,很受用~

不过因为当时手贱,把默认的 “iPhone Developer” 签名 改成了自己的名字

直接导致后来的每一个 XCode 项目,我想在真机上面看效果都要重新设置签名配置。


当然,是可以按照那篇文章把这个名字再修改回来,不过我当时懒,就一直这么弄着了

如今经过了那么长的时间,我电脑里面存储的很多工程都沿用了这蛋疼的配置

所以一时半会儿要修改过来,也是一件很费神的事情。


而且,最近我们团队有通过 Versions 做项目管理进行协作开发~

好不容易解决了多人提交冲突的问题,但是还是存在一些令人不满意的地方,

那就是签名的问题,我的另一个伙计真机测试的话是用的是他自己合法的签名

导致我更新或者他更新了以后,各自的签名被弄坏得重复的做一些签名的设置~


还有祸不单行,XCode 修改签名的时候有时修改不动,要关了再打开才能改的动,是个 bug~

自从上次观察过  project.pbxproj 文件以后,我就发现签名的配置数据也是以明文的方式保存在这个里面的~

那么,完全有可能用  Java 写一个文本处理工具将签名配置那一段做文本替换,置换为我常用的签名配置。


开始我想的使用  Java 的正则表达式,但是一路都不成功。

主要还是因为我对正则表达式的适用范围了解地还不够深刻~

正则表达式擅长于做文本的行内处理,那种跨多行文本的情况用正则是不能取得很好效果的

主要还是因为 Java 正则表达式的通配符 “.” 只能匹配除 \n 以外的所有其他字符 所致~


后来我看到签名配置那段的开头和结尾都做了固定写法的注释,

这样的话我便抛弃了正则表达式的解决方案,直接用 String.indexOfString() 来做实现了

接下来基本上就是很简单的事情了,几行代码便解决了所有问题,下面上代码:

RepairWonderPipe.java

package org.bruce.xcproj.codesign.repair;import java.io.File;import java.io.InputStream;/** * @author Bruce Yang * 仅限于处理 WonderPipe 工程(因为会将工程的某些设置抹掉)~ */public class RepairWonderPipe public static final String PROJECT_DIR = "/Users/user/SVN/WonderPipe";  /**  * 检查传入的文件目录是否为项目文件夹~  * @param dirProject  * @return  */ public static boolean isProjectDir(String strProjectDir) {  File dirProject = new File(strProjectDir);  if(dirProject.exists() && dirProject.isDirectory()) {   for(File fileItem : dirProject.listFiles()) {    if(fileItem.getName().endsWith(".xcodeproj")) {     return true;    }   }  }  System.out.println("不是项目文件夹~");  return false; }  /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub    // 1.检查是否为项目文件夹~  if(!isProjectDir(PROJECT_DIR)) {   System.err.println("不是 XCode 工程文件的根目录~");   return;  }    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值