iOs Unreal Engine 的配置证书在一台计算机上有效,但在另一台计算机上无效

iOs Provisioning certificate for Unreal Engine works on one computer but not on another

伙计们,我真的希望你能帮助我。

早在 2 月,我经历了创建 Apple Developer 证书的所有麻烦,并要求我的导师为我创建一个配置文件并添加我的设备(Apple Developer University Program)。这一切都适用于我的 MacBookPro,我很高兴。 Unreal 会以绿色突出显示我的配置文件和我作为 iPhone 开发人员的证书。

快进一个月,我正在全球范围内进行 8 小时的实习。我做的第一件事是让我的新导师给我分配一台 iMac,我安装 Xcode、Unreal,在 Xcode 上设置我的帐户,为 iMac 创建一个证书,下载配置文件并双击它(无论如何都不应该需要)。在我的 iPhone 上测试部署应用程序并完成,它有效。

切换到 Unreal,让我们测试这个新的 AR 模板,打开项目设置,然后...配置文件为红色,显示“未找到有效证书”,我的证书为 iPhone Developer RIGHT UNDER那里。

如果我手动导入配置文件,则会出现相同的“未找到有效证书”问题 如果我仍然尝试构建和部署,我会收到此错误:

LogPlayLevel: Code Signing Error: Provisioning profile "bartolomei-provisioning" doesn't include signing certificate "iPhone Developer: Massimo Bortolamei (2HEP25L8WM)".

LogPlayLevel: Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.2'

这没有任何意义,因为在同一张桌子上的下一台 MacBook Pro 上一切正常!

我尝试了什么:

我错过了什么?我还有其他事情要坚持,这不可能!感谢帮助

LogPlayLevel: ********** STAGE COMMAND STARTED **********
LogPlayLevel: Creating UE4CommandLine.txt
LogPlayLevel: Creating Staging Manifest...
LogPlayLevel: CookPlat IOS, this IOSPlatform
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 16.000683
LogPlayLevel: UPL Init: None
LogPlayLevel: Cleaning Stage Directory: /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS
LogPlayLevel: Copying NonUFSFiles to staging directory: /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS
LogPlayLevel: Copying DebugFiles to staging directory: /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS
LogPlayLevel: Copying UFSFiles to staging directory: /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS
LogPlayLevel: Running: mono "/Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/IOS/DeploymentServer.exe" Backup -file "/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS/Manifest_UFSFiles_IOS.txt" -file "/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS/Manifest_NonUFSFiles_IOS.txt" -de
vice fb578a13b17996a6436737f8863e068d017d8256 -bundle it.polimi.ARkitTest
LogPlayLevel:   [deploy] Created deployment server.
LogPlayLevel:   [DD] Trying to connect to mobile device running iOS ...
LogPlayLevel:   [DD] Mobile Device 'iPhone di Massimo' connected
LogPlayLevel:   Failed to connect to bundle 'it.polimi.ARkitTest' with Unknown error 0xE80000B7
LogPlayLevel:   [DD]  ... File to be written '/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS\iPhone di Massimo_Manifest_UFSFiles_IOS.txt'
LogPlayLevel:   [DD]  ... File to be written '/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Saved/StagedBuilds/IOS\iPhone di Massimo_Manifest_NonUFSFiles_IOS.txt'
LogPlayLevel:   [DD]  ... Error: Failed to connect to bundle 'it.polimi.ARkitTest'
LogPlayLevel:   [DD]
LogPlayLevel:   Exiting.
LogPlayLevel: Took 3.09494s to run mono, ExitCode=1
LogPlayLevel: ********** STAGE COMMAND COMPLETED **********
LogPlayLevel: ********** PACKAGE COMMAND STARTED **********
LogPlayLevel: Package /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/ARkitTest.uproject
LogPlayLevel: UPL Init: None
LogPlayLevel: Project: /Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/ARkitTest_IOS.xcworkspace
LogPlayLevel: Running: mono "/Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/UnrealBuildTool.exe" -XcodeProjectFiles -project="/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/ARkitTest.uproject" -platforms=IOS -game -nointellisense -IOSdeployonly -ignorejunk -nocreatestub -NoHotReload -ignorejunk
LogPlayLevel:   Discovering modules, targets and source code for project...
LogPlayLevel:   Writing project files... 0%33%67%100%
LogPlayLevel: Took 15.178321s to run mono, ExitCode=0
LogPlayLevel: Running: /usr/bin/env UBT_NO_POST_DEPLOY=true /usr/bin/xcrun xcodebuild build -workspace "/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/ARkitTest_IOS.xcworkspace" -scheme 'ARkitTest' -configuration "Development" -destination generic/platform=iOS -sdk iphoneos CODE_SIGN_IDENTITY="iPhone Developer: Massimo Bortolamei (2HEP25L8WM)" 
PROVISIONING_PROFILE_SPECIFIER=80bdffbe-a8a7-4914-a570-1d62ff3e2ddf
LogPlayLevel:   Build settings from command line:
LogPlayLevel:       CODE_SIGN_IDENTITY = iPhone Developer: Massimo Bortolamei (2HEP25L8WM)
LogPlayLevel:       PROVISIONING_PROFILE_SPECIFIER = 80bdffbe-a8a7-4914-a570-1d62ff3e2ddf
LogPlayLevel:       SDKROOT = iphoneos11.2
LogPlayLevel:   2018-03-15 16:48:49.903 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/massimobortolamei/Documents/Unreal Projects/ARkitTest/Config/DefaultEditor.ini" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:51.376 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Config/BaseEditorLayout.ini" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:51.596 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Plugins/Experimental/AlembicImporter/Source/ThirdParty/Alembic/alembic/houdini/SOP_AlembicIn/OPalembic/Object_1alembicarchive/Help" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:51.600 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Plugins/Experimental/AlembicImporter/Source/ThirdParty/Alembic/alembic/houdini/SOP_AlembicIn/OPalembic/Object_1alembicxform/Help" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:52.055 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Plugins/Experimental/AlembicImporter/Source/ThirdParty/Alembic/hdf5/tools/testfiles/tmulti-g.h5" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:52.072 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Plugins/Experimental/AlembicImporter/Source/ThirdParty/Alembic/hdf5/tools/testfiles/tnoddlfile.ddl" failed, errno = 2
LogPlayLevel:   2018-03-15 16:48:52.125 xcodebuild[44958:1128209] +dataWithFirstBytes:1024 ofFile:"/Users/Shared/Epic Games/UE_4.19/Engine/Plugins/Experimental/AlembicImporter/Source/ThirdParty/Alembic/hdf5/tools/testfiles/twithddlfile.ddl" failed, errno = 2
LogPlayLevel:   === BUILD TARGET ARkitTest OF PROJECT ARkitTest WITH CONFIGURATION Development ===
LogPlayLevel:   Check dependencies
LogPlayLevel:   Code Signing Error: Provisioning profile "bartolomei-provisioning" doesn't include signing certificate "iPhone Developer: Massimo Bortolamei (2HEP25L8WM)".
LogPlayLevel:   Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.2'
LogPlayLevel:   ** BUILD FAILED **
LogPlayLevel:   The following build commands failed:
LogPlayLevel:     Check dependencies
LogPlayLevel:   (1 failure)
LogPlayLevel: Took 5.906535s to run env, ExitCode=65
LogPlayLevel: ERROR: CodeSign Failed
LogPlayLevel:        (see /Users/massimobortolamei/Library/Logs/Unreal Engine/LocalBuildLogs/UAT_Log.txt for full exception trace)
LogPlayLevel: AutomationTool exiting with ExitCode=32 (Error_FailedToCodeSign)
LogPlayLevel: Completed Launch On Stage: Deploy Task, Time: 26.393563
LogPlayLevel: RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults: Error: Launch failed! Failed to Code Sign

打开项目设置时会发生这种情况

LogTemp: Running Mono...
LogTemp: Setting up Mono
LogTemp: /Users/Shared/Epic Games/UE_4.19/Engine /Users/Shared/Epic Games/UE_4.19
LogTemp: Executing iPhonePackager certificates Engine -bundlename it.polimi.ARkitTest
LogTemp: CWD: /Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/IOS
LogTemp: Initial Dir: /Users/Shared/Epic Games/UE_4.19/Engine
LogTemp: Env CWD: /Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/IOS
LogTemp: BranchPath = Massimos-iMac.local///Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/IOS/../.. --- GameBranchPath = Massimos-iMac.local///Users/Shared/Epic Games/UE_4.19/Engine/Binaries/DotNET/IOS/../..
LogTemp: CERTIFICATE-Name:iPhone Developer: Massimo Bortolamei (2HEP25L8WM),Validity:VALID,StartDate:2018-03-15T06:28:26.0000000Z,EndDate:2019-03-15T06:28:26.0000000Z
LogTemp: CERTIFICATE-Name:iPhone Developer: Massimo Bortolamei (2HEP25L8WM),Validity:VALID,StartDate:2018-03-15T06:28:26.0000000Z,EndDate:2019-03-15T06:28:26.0000000Z
LogTemp:   Looking for a certificate that matches the application identifier 'EDG8TGNYUA.*'
LogTemp: PROVISION-File:003de59d-3ce0-4c26-83c4-526d9e957553.mobileprovision,Name:iOS Team Provisioning Profile: *,Validity:NO_CERT,StartDate:3/15/2018 6:41:32 AM,EndDate:3/15/2019 6:41:32 AM,Type:DEVELOPMENT
LogTemp:   Looking for a certificate that matches the application identifier 'EDG8TGNYUA.*'
LogTemp:   .. Failed to find a valid certificate that was in date
LogTemp: PROVISION-File:80bdffbe-a8a7-4914-a570-1d62ff3e2ddf.mobileprovision,Name:bartolomei-provisioning,Validity:NO_CERT,StartDate:2/23/2018 10:42:23 AM,EndDate:2/23/2019 10:42:23 AM,Type:DEVELOPMENT
LogTemp:   Looking for a certificate that matches the application identifier 'EDG8TGNYUA.*'
LogTemp: PROVISION-File:UE4_003de59d-3ce0-4c26-83c4-526d9e957553.mobileprovision,Name:iOS Team Provisioning Profile: *,Validity:NO_CERT,StartDate:3/15/2018 6:41:32 AM,EndDate:3/15/2019 6:41:32 AM,Type:DEVELOPMENT
LogTemp:   Looking for a certificate that matches the application identifier 'EDG8TGNYUA.*'
LogTemp:   .. Failed to find a valid certificate that was in date
LogTemp: PROVISION-File:UE4_80bdffbe-a8a7-4914-a570-1d62ff3e2ddf.mobileprovision,Name:bartolomei-provisioning,Validity:NO_CERT,StartDate:2/23/2018 10:42:23 AM,EndDate:2/23/2019 10:42:23 AM,Type:DEVELOPMENT
LogTemp:   Looking for a certificate that matches the application identifier 'EDG8TGNYUA.*'
LogTemp:   .. Failed to find a valid certificate that was in date
LogTemp: PROVISION-File:bartolomeiprovisioning.mobileprovision,Name:bartolomei-provisioning,Validity:NO_CERT,StartDate:2/23/2018 10:42:23 AM,EndDate:2/23/2019 10:42:23 AM,Type:DEVELOPMENT
LogTemp: MATCHED-Provision:,File:,Cert:

好的,我找到了我认为的解决方案。

我对代码签名有非常基本的了解,但我在 MacBookPro 上使用的相同密钥和证书似乎以某种方式链接到我使用的配置文件。 在 iMac 上移动配置文件对 Xcode 来说效果很好,因为它会自动管理,不幸的是 Unreal 不会这样做,它会抱怨缺少签名密钥。 然后我从另一个方面解决了这个问题(因为我在开发中心没有完全权限,因为它是一个大学项目)并研究了如何将密钥从一台计算机导出到另一台计算机。

这完美地解决了这个问题 The issues of exporting/importing certificate , private key under keychain access for Iphone

对于懒惰的人:在工作电脑上转到 Xcode>首选项>帐户>+ 和 -> 旁边的小齿轮图标 > 导出 记得输入密码,因为这是很重要的东西。

将文件传输到另一台电脑,双击,输入密码,一切都会自动导入!

关闭并重新打开 Xcode 首选项并登录帐户。

在 Unreal 中,一切都应该自动导入。

请记住从干净的情况开始(实际上我不得不导入文件几次)手动删除钥匙串中的所有密钥和证书。 这次 unreal 会在配置文件旁边显示 "Valid",并且在部署时会要求输入钥匙串密码。

大功告成!

就我而言,我必须: .更改 Bundle Name 的名称与 Bunder Identifier com.company.projectname .复选框:用于在包装菜单中分发。