解决使用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)
第三,将修改提交到远程分支