【发布时间】:2013-03-29 14:50:39
【问题描述】:
好的,所以我正在尝试设置 iOS 应用程序的自动构建和签名/打包(持续集成,你知道的)。我们的测试人员池(即 UDID)不是很稳定,因此我们的配置文件往往会经常更改。为了完全确定我使用最新的配置文件进行构建(并避免常见的缓存陷阱),我想在每次构建之前清理所有以前配置文件的构建框并从 Apple 配置门户下载新的配置文件。我似乎无法确定地迈出第一步。我清理了~/Library/MobileDevice/Provisioning Profiles/,但 XCode 仍在从某个地方获取配置文件。我清理了库中的 XCode Organizer 以及所有当前连接的设备。请注意,我需要避免此步骤,除非有已知的方法可以从命令行执行此操作!尽管如此,XCode 仍然在愉快地签名。无奈之下,我做了find / -name "*.mobileprovision",并在不少于 3 个临时位置找到了副本:
~/Library/Developer/XCode/DerivedData/[ProjectName]-[hash]/~/Library/Developer/XCode/Archives/[date]/[Projectname].xcarchive/Products/Applications/[Projectname].app//private/var/folders/k_/[hash]/T/[UUID]/[Projectname].app/
在全部删除后,XCode 最终承认没有配置文件(只是将证书列为可以理解的“没有配置文件的身份”)并且签名失败。
清洗是否有确定性?我可能能够弄清楚前两条路径,但第三条路径没有机会,其中有两个随机序列。我错过了什么?如果我只是从 ~/Library/MobileDevice/Provisioning Profiles/ 中删除旧的配置文件,我可以依赖 XCode 使用新的配置文件吗?我想避免每次都剥离一个全新的 MacOS VM,只是为了确定这一点:)
为了完整起见,我们使用的是 XCode 4.3 和 4.5 之间的任何版本,如果有影响,可以在最新的 4.6 上同步。但我对此表示怀疑。
【问题讨论】:
标签: ios xcode continuous-integration provisioning-profile