加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – Xcode将无法识别我的新的配置文件

发布时间:2020-12-15 02:02:53 所属栏目:百科 来源:网络整理
导读:我的应用程序的开发配置配置文件在几周前过期,所以我去了配置门户,以获得一个新的。获取后,我访问了Xcode管理器,从我的设备以及我的Mac中删除过期的配置文件,然后导入新配置文件。 Xcode立即将配置文件安装到我的设备上,我的应用程序在设备上再次运行
我的应用程序的开发配置配置文件在几周前过期,所以我去了配置门户,以获得一个新的。获取后,我访问了Xcode管理器,从我的设备以及我的Mac中删除过期的配置文件,然后导入新配置文件。 Xcode立即将配置文件安装到我的设备上,我的应用程序在设备上再次运行。

问题是,当主办单位能够看到新的配置文件并将其正常安装时,IDE会在旧版本和新版本之间混淆。每次尝试构建应用程序时,它都会立即失败。错误控制台告诉我,Xcode找不到旧的配置文件,因为列出的GUID属于旧配置文件。真奇怪;我以为Xcode现在已经意识到了这个新的配置文件。

我尝试从我的设备和Mac中删除新的配置文件,然后重新安装该配置文件。不行,Xcode仍然在寻找旧的。我也尝试选择不同的配置文件,使Xcode忘记旧的配置文件,然后选择新的配置文件。我甚至尝试在其他选择中手动输入新的GUID。然而,Xcode仍然坚持寻找旧的配置文件,现在已经从我的Mac中消失了。

如何说服Xcode我已经为我的应用程序生成了一个新的配置文件供它使用?

解决方法

tl; dr:原来我只需要手动编辑项目文件来告诉Xcode的新配置文件。现在,我不知道为什么我不得不手动更新项目文件。也许在将新配置文件导入Xcode的过程中,我做错了,所以没有意识到我的新配置文件进来了,或者文件系统在中途窒息,Xcode无法更新。好吧。

现在有趣的技术部分:

IMPORTANT: As with anything else that involves modifying files you shouldn’t be modifying: make sure to back up your .xcodeproj bundle and/or your entire Xcode project,or make sure your Xcode project is kept in proper version control. You don’t want to mess up and cause Xcode to stop building your project onto your device,without anything to fall back on.

我偷看了我的应用程序的.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中打开我的项目,现在我的应用程序使用新的配置文件,成功地在我的设备上构建和安装。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读