iphone – Xcode将无法识别我的新的配置文件
我的应用程序的开发配置配置文件在几周前过期,所以我去了配置门户,以获得一个新的。获取后,我访问了Xcode管理器,从我的设备以及我的Mac中删除过期的配置文件,然后导入新配置文件。 Xcode立即将配置文件安装到我的设备上,我的应用程序在设备上再次运行。
问题是,当主办单位能够看到新的配置文件并将其正常安装时,IDE会在旧版本和新版本之间混淆。每次尝试构建应用程序时,它都会立即失败。错误控制台告诉我,Xcode找不到旧的配置文件,因为列出的GUID属于旧配置文件。真奇怪;我以为Xcode现在已经意识到了这个新的配置文件。 我尝试从我的设备和Mac中删除新的配置文件,然后重新安装该配置文件。不行,Xcode仍然在寻找旧的。我也尝试选择不同的配置文件,使Xcode忘记旧的配置文件,然后选择新的配置文件。我甚至尝试在其他选择中手动输入新的GUID。然而,Xcode仍然坚持寻找旧的配置文件,现在已经从我的Mac中消失了。 如何说服Xcode我已经为我的应用程序生成了一个新的配置文件供它使用? 解决方法
tl; dr:原来我只需要手动编辑项目文件来告诉Xcode的新配置文件。现在,我不知道为什么我不得不手动更新项目文件。也许在将新配置文件导入Xcode的过程中,我做错了,所以没有意识到我的新配置文件进来了,或者文件系统在中途窒息,Xcode无法更新。好吧。
现在有趣的技术部分:
我偷看了我的应用程序的.xcodeproj包的内容(Xcode当前没有运行)。要查看这些,请在Finder中打开项目文件夹,然后按住Control键并单击.xcodeproj文件,然后选择显示包内容: Breeze.xcodeproj/ Daniel.mode1v3 Daniel.pbxuser project.pbxproj 然后在文本编辑器(它是文本,而不是二进制)中打开project.pbxproj,并查看构建配置信息。 有一个标有/ * Begin XCBuildConfiguration部分的部分*(您可以使用编辑器的搜索功能找到)。这是一个条目列表,每个条目代表给定构建配置中给定配置文件的代码签名配置。 以下是我用于签署二进制文件以进行开发的资料: 1D6058940D05DD3E006BFB54 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Daniel Tan (XXXXXXXXXX)"; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Breeze_Prefix.pch; GCC_VERSION = com.apple.compilers.llvmgcc42; INFOPLIST_FILE = "Breeze-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 4.0; PRODUCT_NAME = "Breeze"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "36F99F3E-805F-47A7-95D4-FF8324711CBE"; SDKROOT = iphoneos; }; name = Debug; }; 值得注意的是这一行: "PROVISIONING_PROFILE[sdk=iphoneos*]" = "36F99F3E-805F-47A7-95D4-FF8324711CBE"; 这是由构建错误报告的GUID;我的旧的,过期的配置文件的标识符。 我所要做的只是用新配置文件的GUID替换: "PROVISIONING_PROFILE[sdk=iphoneos*]" = "E6E6369E-FD58-4886-9C3A-72C9DAE36501"; 我再次在Xcode中打开我的项目,现在我的应用程序使用新的配置文件,成功地在我的设备上构建和安装。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |