刷新Xcode 7管理的团队配置文件中的设备?

79

以前,在“偏好设置”->“账户”中,点击刷新箭头/循环按钮会拉取一个包含所有新设备的新配置文件。

现在它只会下载您已经拥有的那些设备的配置文件。但是,如果您需要更新的配置文件由Xcode管理,则我找不到任何添加设备到该配置文件的方法!

14个回答

124

以下是在Xcode 8和9上适用的步骤:

  1. 将您的设备添加到developer.apple.com中。
  2. 前往目标的“常规”选项卡,点击“Xcode管理配置文件”旁边的(i),然后将弹出窗口中的配置文件图标拖到桌面以获取配置文件的文件名。 enter image description here
  3. 前往~/Library/MobileDevice/Provisioning Profiles并删除与#2中获取的相同文件名的配置文件。
  4. Xcode应该会重新生成您的应用程序配置文件,并添加在#1中添加的设备。

我的developer.apple.com帐户没有显示任何Xcode管理配置文件,因此这是使其正常工作的唯一方法。


1
这对我来说终于解决了添加Fabric/Crashlytics Beta分发设备的问题。遗憾的是,他们的“Beta Walkthrough”文档页面仍然没有反映出Xcode 8中的这种差异。谢谢。 - Eugene
  1. 嗯,刚刚添加了设备 developer.apple.com。
  2. 下载配置文件。
  3. 在“通用”选项卡中重新导入它(单击“签名调试”下拉菜单并选择导入配置文件)...这应该包括新添加的设备。
- greaterKing
亲爱的 @yood,我以前一直为那个隐藏的配置文件烦恼,现在终于解决了 :) - Kevin Machado
可以,但是我如何在需要时刷新这7天呢?等待证书过期很麻烦,我想每天运行一个脚本来自动化它(这是为了Kodi在Apple TV 4K上)。 - Michele Dall'Agata
在XCode 9上为Fabric/Crashlytics/Beta工作过。谢谢。 - user402642
显示剩余2条评论

87

最简单的方法:

使用终端删除 mobileprovision 文件

rm + 从 Xcode 中拖动文件路径

输入图片描述


4
这是最快的方法。删除后,只需返回Xcode,它将使用新设备重新创建配置文件。 - Jonathan Cabrera
一些项目在使用Xcode 10时无法创建“iOS Team Provisioning Profile: com.xyz.appname”。您提供的解决方案非常有效!谢谢 :) - balazs630
这似乎是目前在XCode 11中唯一可靠的方法,而且它非常令人恼火,因为它很不正规。天哪,为什么XCode不提供一种刷新自动配置文件的方法呢?这似乎是一个如此明显的需求。 - Danny
对于我来说,XCode 14起作用了,我只需要取消选中并重新选中“自动管理签名”选项,以强制XCode更新配置文件,在我的情况下,这并没有自动完成。 - jr_gen

42
在会员中心添加了UDID后,我遇到了同样的问题。必须说明的是,我有一个由XCode管理的iOS团队开发配置文件。
最终解决的方法是从会员中心删除配置文件。
在XCode首选项中,删除与应用程序相关的团队开发配置文件。
进入你的目标,你会看到一个“修复问题”的按钮。点击它,它将生成一个新的包含相关设备的配置文件。
希望这可以帮助您。

1
是的,这确实有效。向前迈了两步,又退了一步 :) - Will Larche
1
谢谢!在所有在线解决方案中,这是真正的解决方法。 - Eric Chen
1
更新此答案:随着XCode 7(版本7.0.1(7A1001))的最新更新,这可能是一个新事物,但不再有删除预配资料的选项。如果您右键单击它们,什么也不会发生。我最终成功将我的设备添加到预配资料的方法是通过将测试项目部署到它上面。然后,XCode提示我说该设备不属于任何预配资料,并给出了“修复问题”选项。顺便说一下,仅仅点击“修复问题”是不够的,我必须让它完成在设备上部署测试应用程序的过程。 - Matheus Guimaraes
@MatheusGuimaraes - 我在版本7A1001中仍然可以将配置文件发送到垃圾桶,也许这是你的Mac上的管理员账户问题? - Youval Vaknin

15

我也遇到了这个问题,我使用的是Xcode 7.2。然后按照以下步骤进行操作即可:

  1. 在会员中心添加新设备的UDID
  2. 选择Xcode -> Preference...
  3. 选择账户并点击“View Details...”
  4. 在左下角点击“Download All”按钮,将下载一个新的团队配置文件。
  5. 现在可以从列表中删除旧的团队配置文件了。(右键单击->移动到废纸篓)
  6. 在“Build Settings”选项卡中更新配置文件。
  7. 在“General”选项卡中点击“Fix Issue”按钮。

现在你就可以在新设备上运行应用程序了。


3
与其下载所有配置文件然后逐个右键删除旧配置文件,不如右键单击任何旧的预配配置文件并选择“在 Finder 中显示”(退出 Xcode),在 Finder 中 shift-选择所有配置文件并将它们拖到废纸篓中(或右键单击并选择“移动到废纸篓”)(重新启动 Xcode),然后仅下载您想要/需要的配置文件。(不确定是否需要退出/重新启动 Xcode,但谨慎起见最好这样做。) - Mark A. Durham
对我来说,步骤1-4就足以刷新配置文件,以包含新设备。 - Mike Taverne
当我只有免费的开发者账户时,我该如何实现这一点?在我的会员中心,我无法管理我的配置文件... - Gerrit Horeis
抱歉,在第6步中提到的“Build Settings”选项卡在哪里? - Alireza Mirian
找到了。你需要知道,在项目管理器中双击项目名称会打开一个非常重要的项目设置部分。我讨厌 X-code! - Alireza Mirian
这对我有用。在尝试其他答案之前,我决定尝试这个答案,因为它似乎是这个主题中最少风险的建议之一。例如,我的应用程序已经为APNS进行了配置,所以风险很高。实际上,我只删除了需要自动更新的特定配置文件(步骤5),以便我不必触及其他配置文件。@anusha-k救了我的命。当您搞砸了配置时,我曾看到Xcode陷入了自由落体状态,我真的很高兴这个方法完美地解决了问题。 - Rob

8

花了很多时间尝试解决Xcode 7上的同样问题,即刷新Xcode管理的配置文件。

在成员中心添加UDID后,对我有用的方法是从偏好设置 -> 账户中删除该帐户,然后再次添加它。这将更新所有配套文件。


谢谢,它有效!这种方式似乎比手动删除配置文件更好。 - Zapko
这是对我有效的一个解决方案,适用于XCode 7.1.1!不需要添加一个从未见过的设备(我没有多余的设备),也不需要将新的测试项目部署到设备上(想先尝试其他答案)。 - Mike Lambert
在Xcode 8.1中,有一个偏好设置->账户->[账户名称]->查看详细信息按钮,它显示该帐户的签名标识和配置文件。右键单击配置文件可以删除。删除帐户的团队配置文件后,我的刷新了,新的UUID也正常工作了。(这是通过Fabric进行的开发部署)。 - Tony Adams

4
问题:有时在开发者账户中更新设备会导致自动管理签名无法反映,即使在xcode帐户中更新了配置文件。
解决方案:找到配置文件文件夹并删除所有配置文件。~/Library/MobileDevice/Provisioning Profiles
自动管理签名将创建一个新的配置文件。您的设备将在配置中更新。

2

Xcode 8更新

在Xcode 8中,您不再需要在“会员中心”中添加设备,并且可以跳过一些繁琐的步骤。

您仍需完成以下步骤:

  1. 打开“Xcode → 首选项…”(,)。
  2. 从窗口左侧的“Apple IDs”列表中选择相应的“Apple ID”,然后从窗口右下方的列表中选择相应的“Team”。
  3. 点击“查看详细信息…”,然后点击“下载所有配置文件”。
  4. 关闭“首选项”窗口,选择方案和受影响的设备,构建您的项目。最终让Xcode自动注册设备。

这对于刷新现有配置文件(例如添加更多设备时)无效。您仍然需要在磁盘上删除配置文件。 - marsbear

1
我也找不到在Xcode中删除或刷新配置文件的方法。
我成功地通过退出Xcode,在Apple开发者网站上删除开发配置文件 - 标记为“Active(由Xcode管理)”的配置文件,然后重新打开Xcode并在应用程序目标的常规设置中选择团队来拉取新设备的配置文件。Xcode重新创建了配置文件(在开发者网站上确认),并且设备已被包括在内。

是的,对我来说也不是“自动魔法”。我最终在开发者网站上删除了该配置文件,重新添加一个(包括新设备),然后进入Xcode首选项账户页面,重新下载并在Finder中显示,在另一个位置进行复制。然后进入设备窗口,在新设备上安装它。 - Dave Nottage

1

我刚从会员中心下载了配置文件,并在XCode中点击了“修复问题”。

我使用的是OSX 10.15和XCode 11.3 beta。


1
我遇到了类似的问题并找到了以下解决方法 - 在根目录下(与config.xml同级别),添加一个名为build.json的文件,并将以下内容添加到其中 - 将developmentTeam的值替换为您在此处看到的Team Id https://developer.apple.com/account/#/membership/
{
  "ios": {
    "debug": {
      "codeSignIdentity": "iPhone Developer",
      "developmentTeam": "DP7KW42777",
      "packageType": "development"
    },
    "release": {
      "codeSignIdentity": "iPhone Developer",
      "developmentTeam": "DP7KW42777",
      "packageType": "app-store"
    }
  }
}

我发现在config.xml中添加以下内容,放在

下方:
<platform name="ios">

不再需要设置各种信息,例如隐藏状态栏

<config-file parent="NSBluetoothPeripheralUsageDescription" platform="ios" target="*-Info.plist">
  <string>${EXECUTABLE_NAME} requires bluetooth access to function properly</string>
</config-file>
<config-file parent="NSCalendarsUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires calendar access to function properly</string>
</config-file>
<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires camera access to function properly</string>
</config-file>
<config-file parent="NSContactsUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires contacts access to function properly</string>
</config-file>
<config-file parent="NSLocationAlwaysAndWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
</config-file>
<config-file parent="NSLocationAlwaysUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
</config-file>
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} would like to check your location when app is active or in background</string>
</config-file>
<config-file parent="NSMicrophoneUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires microphone access to function properly</string>
</config-file>
<config-file parent="NSMotionUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires motion detection access to function properly</string>
</config-file>
<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} requires photo library access to function properly</string>
</config-file>
<config-file parent="NSRemindersUsageDescription" platform="ios" target="*-Info.plist">
<string>${EXECUTABLE_NAME} equires reminders access to function properly</string>
</config-file>
<config-file parent="UIStatusBarHidden" platform="ios" target="*-Info.plist">
<true/>
</config-file>
<config-file parent="UIViewControllerBasedStatusBarAppearance" platform="ios" target="*-Info.plist">
<false/>
</config-file>

最后,通过添加

标签


<icon height="1024" src="resources/ios/icon/AppIcon.png" width="1024" />

添加到图标列表后,我不再需要手动添加1024大小的图标。现在,我只需构建、归档和上传,无需更改任何设置。希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接