解决使用tfs的Xcode CLI构建工具在更新描述文件后构建iOS工程失败的问题

项目的工程代码置于远程服务器上,使用微软的tfs提供的Xcode CLI构建工具实现远程构建,最近项目的描述文件过期了,相关人员更换了描述文件后依旧报错过期,针对这一问题,其表示自己不会,无法提供帮助,投产在即,这一问题必须解决,只能靠自己了:

现象1.拉取远程服务端的代码到本地,使用Xcode打开,观察其手动配置的描述文件,发现已显示过期,远程调用Xcode CLI 显示调用失败,错误提示描述文件过期。

现象2.拉取远程服务端的代码到本地,使用Xcode打开,将手动配置描述文件的位置置空,再次提交,远程调用Xcode CLI 显示调用失败,错误提示缺少描述文件。

现象3:相关人员再三表示,描述文件已经更换,不要怀疑,且不能发给我。

描述文件不改变则报错过期,写空报错没有,新的描述文件不提供给本地客户端,死循环了?

只能靠自己,**它!

根据自己搞过命令行构建一键打包上传fir的经验,其实这远程构建原理与其也类似,就是靠Xcode的API,标识描述文件的是其UUID,更换了新的描述文件,其UUID也会一并更换,一定是在远程服务端的配置文件里更换了描述文件及其UUID,但是项目没有跟新的东西对应上,那么如何找到这个对应关系呢?对应关系就在于描述文件的文件名,文件虽然换了,但是文件名没有变,因此还是需要解决描述文件在工程中如何体现的问题。

解决的第一个问题,就是显示描述文件过期的问题,我们需要它显示不过期,但也别让那个位置空着,客户端既然能够显示它的内容,就说明本地拉取到了它的文件实体或者缓存,于是:

第一步,删除在客户端及客户端缓存内的描述文件:

打开~/Library/MobileDevice/Provisioning Profiles

找到过期的描述文件,删除它;

第二,在项目内写死描述文件的文件名及其他信息:

(蓝色覆盖区域为描述文件名及企业的ID)

解决使用tfs的Xcode CLI构建工具在更新描述文件后构建iOS工程失败的问题

第三,将修改提交到远程分支

结果:成功构建!