tl;博士:原来我只需要手动编辑项目文件来告诉 Xcode 新的配置文件。现在,我不知道为什么我必须手动更新项目文件。也许我在将新配置文件导入 Xcode 的过程中做错了什么,所以它没有意识到我的新配置文件已经进入。或者文件系统在中途阻塞并且 Xcode 无法自我更新。那好吧。
现在对于乐趣技术部分:
重要提示:与其他任何涉及修改您不应该修改的文件一样:确保备份您的.xcodeproj
包和/或您的整个 Xcode 项目,或确保您的 Xcode 项目保持在适当的版本控制中。你不想搞砸并导致 Xcode 停止在你的设备上构建你的项目,而没有任何依赖。
我查看了我的应用程序.xcodeproj
包的内容(此时 Xcode 没有运行)。要查看这些,请在 Finder 中打开您的项目文件夹,然后按住 Control 键单击您的.xcodeproj
文件并选择Show Package Contents:
Breeze.xcodeproj/
丹尼尔.mode1v3
丹尼尔.pbxuser
项目.pbxproj
然后project.pbxproj
在文本编辑器中打开(它是文本,而不是二进制),并四处寻找构建配置信息。
有一个部分标记/* Begin XCBuildConfiguration section */
(您可以使用编辑器的搜索功能找到)。它是一个条目列表,每个条目代表给定构建配置中给定配置文件的代码签名配置。
以下是有关我用于签署二进制文件以进行开发的配置文件的信息:
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 中打开我的项目,现在我的应用程序使用新的配置文件成功构建并安装在我的设备上。