PCにiOSデバイスを接続しても反応しない
ケーブルの接続を確認する
Apple純正のUSBケーブルは非常に断線しやすいため、別のケーブルがあればそちらで試してみてください。
デバイスドライバを更新する(Windowsのみ)
デバイスマネージャーを開き、[Apple Mobile Device USB Driver]を探します。
こちらの記事を参考にデバイスドライバを更新すると、iOSデバイスが反応する可能性があります。WindowsでC++プロジェクトが作成できない
必要なコンポーネントがインストールされているか確認する
Visual Studioをインストールする際に、追加でオプションをインストールする必要があります。
Visual Studioをインストールした際のexeファイルが手元にない場合は再度ダウンロードしてきてください。
少なくとも以下のオプションは必要です。
- .NET テスクトップ開発
- C++によるデスクトップ開発
- C++によるゲーム開発
- Windows 8.1 SDK(最新版では不要だったはず)
※抜けがありましたらご指摘ください。
プロジェクト設定でプロビジョニング プロファイルがValidにならない
Apple Developer Program登録直後はしばらく待ってみる
Apple Developer Programに登録した直後は、開発証明書やプロビジョニング プロファイルが正しかったとして も No Valid Certificate Found のままになってしまうことがあります。
きちんと設定出来ていれば、表示がこの状態でもiOS実機で動作させることが可能です。
Valid に表示が変わるには翌日まで待つ必要があることもあるそうです。
開発証明書(.cer)ファイルをインポートしたのに使えない
別のPCで生成した開発証明書(.cer)ファイルをインポートした場合、キーチェーン上やUE4のプロジェクト設定上では有効であるかのように表示されます。
しかし、プロビジョニング プロファイルの方はInValidの表示になっています。
この状態でiOSデバイスをターゲットにして起動しようとしても、エラーが出力されます。
開発証明書の状態は、XcodeのPreferenceから確認することができます。
Xcodeを起動し、メニューから[Xcode]>[Preferences…]>[Accounts]を選択し、アカウントを選択した状態で右下の[Manage Certificates…]を選択します。
[Status] が Missing Private Key と表示されています。結論としては、開発証明書(.cer)のみをインポートした場合、秘密鍵が手元にないため実際に使用して通信することができません。
これを解決するには、個人情報交換ファイル(.p12)という秘密鍵を含んだファイルが必要となります。こちらを参考に対応してください。
もし利用できない開発証明書を登録してしまった場合は、こちらを参考に削除してください。
リモートビルドが成功しない
エラー内容としてはMacにリモートで接続するための秘密鍵のパーミッションが正しくないと怒られています。
(参考:Chmodding RemoteToolChainPrivate.key for iOS remote builds – UE4 AnswerHub)
修正方法はこちらをご確認ください。
LogPlayLevel: ********** BUILD COMMAND STARTED **********
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 1.763970
LogPlayLevel: Running: C:\Program Files\Epic Games\UE_4.20\Engine\Binaries\DotNET\UnrealBuildTool.exe Test4_20 IOS Development -Project=E:\Test4_20\Test4_20.uproject E:\Test4_20\Test4_20.uproject -NoUBTMakefiles -remoteini="E:\Test4_20" -skipdeploy -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -generatema
nifest -NoHotReload -log="C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.20\UBT-Test4_20-IOS-Development.txt"
LogPlayLevel: Picking the default remote server Wanchan-Mac
LogPlayLevel: Doing date +"%s" && sysctl hw.memsize | awk '{print $2}' && sysctl hw.logicalcpu | awk '{print $2}'
LogPlayLevel: Execute took 00:00:00.2149971
LogPlayLevel: ERROR: Failed to run init commands on remote server Wanchan-Mac. Output = Permission denied (publickey,password,keyboard-interactive).
LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.20\UBT-Test4_20-IOS-Development.txt for full exception trace)
LogPlayLevel: Took 1.6399809s to run UnrealBuildTool.exe, ExitCode=5
LogPlayLevel: ERROR: UnrealBuildTool failed. See log for more details. (C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.20\UBT-Test4_20-IOS-Development.txt)
LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.20\Log.txt for full exception trace)
LogPlayLevel: AutomationTool exiting with ExitCode=5 (5)
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 1.254058
LogPlayLevel: BUILD FAILED
PackagingResults: Error: デプロイに失敗しました! Unknown Error
「Permission denied (publickey,password,keyboard-interactive).」の原因はいくつか考えられますが、その中で私がハマったものを紹介します。
WinからMacへリモートビルドを行うために、事前に[プロジェクト設定] -> [iOS] -> [Build] -> [Remote Build Options] にてリモートビルドのセットアップを行いますが、[新規SSHキーを生成]する際に、リモート先のMacのOpenSSHのssh-keygenを使用して秘密鍵を生成します。
しかしMacのOSバージョンが 10.14 Mojave 以上の場合、OpenSSHのバージョンが7.8になり、ssh-keygenで使用する秘密鍵のデフォルト形式がPEM形式からOpenSSH形式に変更されたようで、これはUE4が使用しているDeltaCopyのバージョン5.1には対応していません。このため、上記のエラーが発生します。
(参考:OpenSSH 7.8p1 での変更点のまとめ)
これは[新規SSHキーを生成]をMojave以前のOSでしていても、その後にMojaveにアップデートして新たに[新規SSHキーを生成]をし直してしまうと発生するはずです。
この不具合はUE4の4.21.1にて修正済みです。もし発生する場合は、4.21.1以降のバージョンで再度[新規SSHキーを生成]を実行してください。
記録として手動での修正方法を下記に残しておきます。
根本対応としてはUE4付属のDeltaCopyで使用しているOpenSSHをOpenSSH形式の秘密鍵に対応したバージョンまで引き上げることですが、とりあえず簡単にできる暫定対応として、Mac側にssh-keygenをリクエストする際に、オプションをつけてPEM形式で秘密鍵を生成してもらうようにします。
UE4の下記のフォルダにある MakeAndInstallSSHKey.bat を編集します。
C:\Program Files\Epic Games\UE_4.xx\Engine\Build\BatchFiles\MakeAndInstallSSHKey.bat
%SSH% -p %SSHPORT% "%USER%@%MACHINE%" "if [[ ! -e .ssh ]]; then mkdir .ssh; fi && cd .ssh && if [[ -e authorized_keys ]]; then cp -f authorized_keys authorized_keys_UEBackup; fi && ssh-keygen -t rsa -f RemoteToolChain -m PEM && mv -f RemoteToolChain.pub RemoteToolChainPublic.key && mv -f RemoteToolChain RemoteToolChainPrivate.key && cat RemoteToolChainPublic.key >> authorized_keys";
36行目の後ろの方に ssh-keygen を呼び出している箇所がありますので、引数に -m PEM というオプションを追記します。
その後、改めて[プロジェクト設定]から[新規SSHキーを生成]を実行して、PEM形式の秘密鍵を作り直すことで、このエラーは解消されます。
LogPlayLevel: ********** BUILD COMMAND STARTED ********** LogPlayLevel: Completed Launch On Stage: Build Task, Time: 3.020741 LogPlayLevel: Running: C:\Program Files\Epic Games\UE_4.21\Engine\Binaries\DotNET\UnrealBuildTool.exe FinalTest IOS Development -Project=E:\FinalTest\FinalTest.uproject E:\FinalTest\FinalTest.uproject -NoUBTMakefiles -remoteini="E:\FinalTest" -skipdeploy -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -Manifest=E: \FinalTest\Intermediate\Build\Manifest.xml -NoHotReload -log="C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.21\UBT-FinalTest-IOS-Development.txt" LogPlayLevel: [Remote] Using remote server 'Wanchan-Mac' on port 22 (user 'wanchan') LogPlayLevel: Error: ERROR: Unable to determine home directory for remote user LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.21\UBT-FinalTest-IOS-Development.txt for full exception trace) LogPlayLevel: Took 1.323003s to run UnrealBuildTool.exe, ExitCode=5 LogPlayLevel: Error: ERROR: UnrealBuildTool failed. See log for more details. (C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.21\UBT-FinalTest-IOS-Development.txt) LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.21\Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=5 (5) LogPlayLevel: Completed Launch On Stage: Build Task, Time: 1.003527 LogPlayLevel: BUILD FAILED PackagingResults: Error: デプロイに失敗しました! Unknown Error
UE4の4.21から、秘密鍵周りのエラーがこの文言に集約されてしまったようです。
上記のエラー1、エラー2の原因が当てはまる可能性が高いので、そちらを試してみてください。
LogPlayLevel: Compiling with non-standard Xcode (xcode-select): xcode-select: error: unable to get active developer directory, use `sudo xcode-select --switch path/to/Xcode.app` to set one (or see `man xcode-select`)/ LogPlayLevel: Doing ls xcode-select: error: unable to get active developer directory, use `sudo xcode-select --switch path/to/Xcode.app` to set one (or see `man xcode-select`)/Platforms/iPhoneOS.platform/Developer/SDKs LogPlayLevel: Execute took 00:00:00.2409961 LogPlayLevel: Triggered an exception while looking for SDK directory in Xcode.app LogPlayLevel: System.ArgumentException: �p�X�ɖ����ȕ������܂܂�Ă��܂��B LogPlayLevel: �ꏊ System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) LogPlayLevel: �ꏊ System.IO.Path.GetFileName(String path) LogPlayLevel: �ꏊ System.IO.Path.GetFileNameWithoutExtension(String path) LogPlayLevel: �ꏊ UnrealBuildTool.AppleToolChainSettings.SelectSDK(String BaseSDKDir, String OSPrefix, String& PlatformSDKVersion, Boolean bVerbose) LogPlayLevel: Compiling with iPhoneOS SDK on Mac Wanchan-Mac LogPlayLevel: ERROR: System.FormatException: ���͕�����̌`��������������܂���B LogPlayLevel: �ꏊ System.Number.ParseSingle(String value, NumberStyles options, NumberFormatInfo numfmt) LogPlayLevel: �ꏊ System.Single.Parse(String s, IFormatProvider provider) LogPlayLevel: �ꏊ UnrealBuildTool.IOSToolChainSettings..ctor(String DevicePlatformName, String SimulatorPlatformName) LogPlayLevel: �ꏊ UnrealBuildTool.IOSToolChainSettings..ctor() LogPlayLevel: �ꏊ UnrealBuildTool.IOSToolChain.<>c.<.ctor>b__1_0() LogPlayLevel: �ꏊ System.Lazy`1.CreateValue() LogPlayLevel: �ꏊ System.Lazy`1.LazyInitValue() LogPlayLevel: �ꏊ UnrealBuildTool.IOSToolChain.ModifyBuildProducts(ReadOnlyTargetRules Target, UEBuildBinary Binary, List`1 Libraries, List`1 BundleResources, Dictionary`2 BuildProducts) LogPlayLevel: �ꏊ UnrealBuildTool.UEBuildBinary.GetBuildProducts(ReadOnlyTargetRules Target, UEToolChain ToolChain, Dictionary`2 BuildProducts, Boolean bCreateDebugInfo) LogPlayLevel: �ꏊ UnrealBuildTool.UEBuildTarget.PrepareReceipts(UEToolChain ToolChain, Boolean bCreateDebugInfo, EHotReload HotReload) LogPlayLevel: �ꏊ UnrealBuildTool.UEBuildTarget.Build(BuildConfiguration BuildConfiguration, CPPHeaders Headers, List`1 OutputItems, List`1 UObjectModules, ISourceFileWorkingSet WorkingSet, ActionGraph ActionGraph, EHotReload HotReload) LogPlayLevel: �ꏊ UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String[] Arguments, FileReference ProjectFile, Boolean bCatchExceptions) LogPlayLevel: Took 2.4989677s to run UnrealBuildTool.exe, ExitCode=5 LogPlayLevel: ERROR: Command failed (Result:5): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe iOSWinCpp IOS Development -Project=D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject -NoUBTMakefiles -remoteini="D:\wanchan\UnrealProjects\iOSWinCpp" -skipdeploy -ini:Game :[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -generatemanifest -NoHotReload. See logfile for details: 'UnrealBuildTool-2018.05.19-06.13.48.txt' LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.19\UAT_Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=5 (5) LogPlayLevel: Completed Launch On Stage: Build Task, Time: 2.007986 LogPlayLevel: BUILD FAILED PackagingResults: Error: Deployment failed! Unknown Error
Mac側でXCodeがインストールされてないとこのようなエラーが出力されます。XCodeの最新版をインストールしてください。
LogPlayLevel: [DD] Trying to connect to mobile device running iOS ... LogPlayLevel: [DD] Error: Timed out while trying to connect to a mobile device. Make sure one is connected. LogPlayLevel: Exiting. LogPlayLevel: Took 7.1286866s to run DeploymentServer.exe, ExitCode=1 LogPlayLevel: ERROR: Command failed (Result:1): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\IOS\DeploymentServer.exe Install -ipa "D:\wanchan\UnrealProjects\iOSWinCpp\Binaries\IOS\iOSWinCpp.ipa" -device All_iOS_On_WANCHAN-PC -additionalcommandline "-SessionId=C1E337F04EFBACFDA65A0690A8111E81 -SessionOwner="wanch" -SessionName="Launch On Device " ". See logfile for details: 'DeploymentServer-2018.05.19-07.01.42.txt' LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.19\UAT_Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=1 (Error_Unknown) LogPlayLevel: Completed Launch On Stage: Deploy Task, Time: 21.070055 LogPlayLevel: BUILD FAILED PackagingResults: Error: Deployment failed! Unknown Error
これはログを見ればすぐわかると思います。ただ、iPhoneの純正ケーブルはすぐ接触が悪くなるので、接続しているつもりでも正しく通信出来ていないことがあるかもしれません。
LogPlayLevel: IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound LogPlayLevel: ... remove temporary key chain LogPlayLevel: Using signing identity 'iPhone Developer: Tomoya Ito (**********)' LogPlayLevel: ... working folder: "/Users/Wanchan/UE4/Builds/WANCHAN-PC/D/wanchan/UnrealProjects/iOSWinCpp/Binaries/IOS/XcodeSupportFiles/.." LogPlayLevel: ... security list-keychains -s "$HOME/Library/Keychains/login.keychain" && security delete-keychain "$HOME/Library/Keychains/UE4TempKeychain.keychain" LogPlayLevel: ... full command: Wanchan-Mac "/Users/Wanchan/UE4/Builds/WANCHAN-PC/D/wanchan/UnrealProjects/iOSWinCpp/Binaries/IOS/XcodeSupportFiles/.." security list-keychains -s "$HOME/Library/Keychains/login.keychain" && security delete-keychain "$HOME/Library/Keychains/UE4TempKeychain.keychain" LogPlayLevel: Running SSH on Wanchan-Mac ... LogPlayLevel: Execute took 00:00:00.3109947 LogPlayLevel: Finished creating .app directory on Mac (took 16.40 s) LogPlayLevel: ... zipping LogPlayLevel: ... working folder: "/Users/Wanchan/UE4/Builds/WANCHAN-PC/D/wanchan/UnrealProjects/iOSWinCpp/Binaries/IOS" LogPlayLevel: ... zip -q -r -y -0 -T iOSWinCpp.ipa Payload iTunesArtwork -x Payload/iOSWinCpp.app.dSYM/ -x Payload/iOSWinCpp.app.dSYM/* -x Payload/iOSWinCpp.app.dSYM/Contents/ -x Payload/iOSWinCpp.app.dSYM/Contents/* -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/ -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/* -x Payload/iOSWinCpp.app.dSYM/Contents /Resources/DWARF/ -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/DWARF/* LogPlayLevel: ... full command: Wanchan-Mac "/Users/Wanchan/UE4/Builds/WANCHAN-PC/D/wanchan/UnrealProjects/iOSWinCpp/Binaries/IOS" zip -q -r -y -0 -T iOSWinCpp.ipa Payload iTunesArtwork -x Payload/iOSWinCpp.app.dSYM/ -x Payload/iOSWinCpp.app.dSYM/* -x Payload/iOSWinCpp.app.dSYM/Contents/ -x Payload/iOSWinCpp.app.dSYM/Contents/* -x Payload/iOSWinCpp.app.dS YM/Contents/Resources/ -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/* -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/DWARF/ -x Payload/iOSWinCpp.app.dSYM/Contents/Resources/DWARF/* LogPlayLevel: Running SSH on Wanchan-Mac ... LogPlayLevel: Execute took 00:00:01.2049850 LogPlayLevel: IPP WARNING: Error in previous command; suppressing: GetStubIPA LogPlayLevel: Finished packaging into IPA (took 1.20 s) LogPlayLevel: ERROR: System.Exception: ** BUILD FAILED **IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound LogPlayLevel: �ꏊ UnrealBuildTool.IOSToolChain.PostBuildSync(UEBuildTarget Target) LogPlayLevel: �ꏊ UnrealBuildTool.IOSPlatform.PostBuildSync(UEBuildTarget Target) LogPlayLevel: �ꏊ UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String[] Arguments, FileReference ProjectFile, Boolean bCatchExceptions) LogPlayLevel: Total build time: 104.12 seconds (Remote executor: 2.43 seconds) LogPlayLevel: Took 104.3576263s to run UnrealBuildTool.exe, ExitCode=57 LogPlayLevel: ERROR: Command failed (Result:57): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe iOSWinCpp IOS Development -Project=D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject -NoUBTMakefiles -remoteini="D:\wanchan\UnrealProjects\iOSWinCpp" -skipdeploy -ini:Gam e:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.05.19-07.05.30.txt' LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.19\UAT_Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=57 (Error_RemoteCertificatesNotFound) LogPlayLevel: Completed Launch On Stage: Build Task, Time: 106.632136 LogPlayLevel: BUILD FAILED PackagingResults: Error: Deployment failed! Failed to sign executable. Make sure your developer certificates have been installed in the System Keychain on the remote Mac.
MacのXcode側でApple IDアカウントが正しくセットアップされていません。Xcodeを起動して、メニューの[Xcode]->[Preferences]->[Accounts]からApple IDアカウントを正しく入力し直してください。
LogPlayLevel: Compiling with iPhoneOS SDK 11.3 on Mac Wanchan-Mac LogPlayLevel: ssh: connect to host Wanchan-Mac port 22: Connection timed out LogPlayLevel: rsync: connection unexpectedly closed (0 bytes received so far) [sender] LogPlayLevel: rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4] LogPlayLevel: LocalExe: iOSWinCpp LogPlayLevel: Doing rm -f /Users/Wanchan/UE4/Builds/WANCHAN-PC/D/wanchan/UnrealProjects/iOSWinCpp/Binaries/IOS/AssetCatalog/Assets.car LogPlayLevel: Execute took 00:00:21.1004939 LogPlayLevel: Command: -vzrltgoDe "ssh -i '/cygdrive/C/Users/wanch/AppData/Roaming/Unreal Engine/UnrealBuildTool/SSHKeys/Wanchan-Mac/Wanchan/RemoteToolChainPrivate.key' -p 22" --rsync-path="mkdir -p /Users/Wanchan/UE4/Builds/WANCHAN-PC && rsync" --chmod=ug=rwX,o=rxX --delete --files-from="/cygdrive/C/Users/wanch/AppData/Local/Temp/tmp5591.tmp" --include-fr om="/cygdrive/C/Users/wanch/AppData/Local/Temp/tmp5592.tmp" --include='*/' --exclude='*.o' --exclude='Timestamp' '/cygdrive' "Wanchan@Wanchan-Mac":'/Users/Wanchan/UE4/Builds/WANCHAN-PC' LogPlayLevel: ssh: Could not resolve hostname Wanchan-Mac: no address associated with name LogPlayLevel: rsync: connection unexpectedly closed (0 bytes received so far) [sender] LogPlayLevel: rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4] LogPlayLevel: ssh: Could not resolve hostname Wanchan-Mac: no address associated with name LogPlayLevel: rsync: connection unexpectedly closed (0 bytes received so far) [sender] LogPlayLevel: rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4] LogPlayLevel: Doing sh tmp5F48.tmp.sh && rm tmp5F48.tmp.sh LogPlayLevel: Execute took 00:00:02.3260297 LogPlayLevel: BatchFileInfo took 00:00:04.7609653 LogPlayLevel: ERROR: Received the wrong number of results from BatchFileInfo LogPlayLevel: Took 57.0910162s to run UnrealBuildTool.exe, ExitCode=5 LogPlayLevel: ERROR: Command failed (Result:5): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe iOSWinCpp IOS Development -Project=D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject D:\wanchan\UnrealProjects\iOSWinCpp\iOSWinCpp.uproject -NoUBTMakefiles -remoteini="D:\wanchan\UnrealProjects\iOSWinCpp" -skipdeploy -ini:Game :[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.05.19-07.51.54.txt' LogPlayLevel: (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.19\UAT_Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=5 (5) LogPlayLevel: Completed Launch On Stage: Build Task, Time: 59.204475 LogPlayLevel: BUILD FAILED PackagingResults: Error: Deployment failed! Unknown Error
リモート先のMacの電源が入っていなかったり、スリープになっていたり、ディスプレイの蓋が閉まっている可能性があります。
UATHelper: Packaging (iOS): IPP ERROR: Application exception: System.Security.Cryptography.CryptographicException: Keyset does not exist UATHelper: Packaging (iOS): UATHelper: Packaging (iOS): at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) UATHelper: Packaging (iOS): at System.Security.Cryptography.X509Certificates.X509Utils._ExportCertificatesToBlob(SafeCertStoreHandle safeCertStoreHandle, X509ContentType contentType, IntPtr password) UATHelper: Packaging (iOS): at System.Security.Cryptography.X509Certificates.X509Certificate.ExportHelper(X509ContentType contentType, Object password) UATHelper: Packaging (iOS): at iPhonePackager.CompileTime.CopyFilesNeededForMakeApp() UATHelper: Packaging (iOS): at iPhonePackager.CompileTime.CreateApplicationDirOnMac() UATHelper: Packaging (iOS): at iPhonePackager.CompileTime.PackageIPAOnMac() UATHelper: Packaging (iOS): at iPhonePackager.Program.Main(String[] args) UATHelper: Packaging (iOS): ERROR: System.Exception: IPP ERROR: Application exception: System.Security.Cryptography.CryptographicException: Keyset does not exist UATHelper: Packaging (iOS): at UnrealBuildTool.IOSToolChain.PostBuildSync(UEBuildTarget Target) UATHelper: Packaging (iOS): at UnrealBuildTool.IOSPlatform.PostBuildSync(UEBuildTarget Target) UATHelper: Packaging (iOS): at UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String[] Arguments, FileReference ProjectFile, Boolean bCatchExceptions) UATHelper: Packaging (iOS): Total build time: 275.78 seconds (Remote executor: 25.19 seconds) UATHelper: Packaging (iOS): Took 276.0377943s to run UnrealBuildTool.exe, ExitCode=1 UATHelper: Packaging (iOS): ERROR: Command failed (Result:1): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe Labyrinth IOS Development -Project=D:\wanchan\UnrealProjects\Labyrinth\trunk\Labyrinth\Labyrinth.uproject D:\wanchan\UnrealProjects\Labyrinth\trunk\Labyrinth\Labyrinth.uproject -NoUBTMakefiles -remoteini="D:\wanchan\U nrealProjects\Labyrinth\trunk\Labyrinth" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.05.16-21.26.51.txt' UATHelper: Packaging (iOS): (see C:\Users\wanch\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.19\UAT_Log.txt for full exception trace) UATHelper: Packaging (iOS): AutomationTool exiting with ExitCode=1 (Error_Unknown) UATHelper: Packaging (iOS): BUILD FAILED PackagingResults: Error: Application exception: System.Security.Cryptography.CryptographicException: Keyset does not exist PackagingResults: Error: System.Exception: IPP ERROR: Application exception: System.Security.Cryptography.CryptographicException: Keyset does not exist PackagingResults: Error: Command failed (Result:1): C:\Program Files\Epic Games\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe Labyrinth IOS Development -Project=D:\wanchan\UnrealProjects\Labyrinth\trunk\Labyrinth\Labyrinth.uproject D:\wanchan\UnrealProjects\Labyrinth\trunk\Labyrinth\Labyrinth.uproject -NoUBTMakefiles -remoteini="D:\wanchan\UnrealProje cts\Labyrinth\trunk\Labyrinth" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.05.16-21.26.51.txt' PackagingResults: Error: Unknown Error
とてもわかりにくいエラーで、日本語環境だとエラーログも文字化けしてしまうので何のことかわかりにくいです。文字化けしていない状態のエラーログにはKeyset does not existと表示され、秘密鍵周りで何かが存在しないと言われていることがわかります。
この場合、以下のフォルダのアクセス権限を確認してください。
C:\ProgramData\Microsoft\Crypto
重要なのはこのフォルダ以下の RSA\MachineKeys のフォルダで、その中に必要なファイルが存在しているはずが、フォルダのアクセス権が間違っているとファイルが空っぽになってしまいます。
Cryptoのプロパティを開き、[セキュリティ]->[詳細設定]を開き、アクセス許可を以下のように書き換えます。
その後、UE4のProject SettingsからCertificateファイルのインポートをやり直すことで、秘密鍵のファイルが正しくコピーされます。
(参考:Resolve Cryptographic Exception ‘Keyset Does Not Exist or Access is Denied issue’)
LogPlayLevel: Running: D:\UE4\Engine\Binaries\DotNET\IOS\DeploymentServer.exe Deploy -manifest "D:\labyrinth\trunk\Labyrinth\Saved\StagedBuilds\IOS\Manifest_DeltaUFSFiles_000000000000000000000000.txt" -device 00000000-0000000000000000 -additionalcommandline "-SessionId=00000000000000000000000000000000 -SessionOwner="wanch" -SessionName="Launch On Device" " -bundle com.soramame.labyrinth LogPlayLevel: Wrong server running, restarting the server ... LogPlayLevel: LogPlayLevel: Exception: System.NullReferenceException: �I�u�W�F�N�g�Q�Ƃ��I�u�W�F�N�g �C���X�^���X�ɐݒ肳��Ă��܂���B LogPlayLevel: �ꏊ DeploymentServer.Program.ClientLoop(TcpClient IsServiceRunning, String[] Args, String LocalCommand) �ꏊ D:\UE4\Engine\Source\Programs\IOS\DeploymentServer\Program.cs:�s 984 LogPlayLevel: Took 5.7668751s to run DeploymentServer.exe, ExitCode=0 LogPlayLevel: ********** DEPLOY COMMAND COMPLETED ********** LogPlayLevel: ********** RUN COMMAND STARTED ********** LogPlayLevel: Starting Client.... LogPlayLevel: Launching via UFE: LogPlayLevel: ClientCmdLine: -run=Launch -Device=IOS@00000000-0000000000000000 -Exe="D:\labyrinth\trunk\Labyrinth\Saved\StagedBuilds\IOS\Labyrinth\Binaries\IOS\Labyrinth" -Targetplatform=IOS -Params="../../../Labyrinth/Labyrinth.uproject /Game/Labyrinth/Maps/Stage00/Stage00_P -stdout -Messaging -CrashForUAT -SessionId=00000000000000000000000000000000 -SessionOwner="wanch" -SessionName="Launch On Device" " LogPlayLevel: ********** RUN COMMAND COMPLETED ********** LogPlayLevel: BUILD SUCCESSFUL LogPlayLevel: Completed Launch On Stage: Deploy Task, Time: 36.886334 LogPlayLevel: Completed Launch On Stage: Run Task, Time: 0.000797 LogPlayLevel: AutomationTool exiting with ExitCode=0 (Success)
ビルドが成功しているように見えて、よく見ると途中でエラーが吐かれていてゲームアプリが転送できていません。
4.22.0でのみ発生するバグで、パス文字列の操作に不具合があるためです。
この不具合は4.22.1で修正済みです。
LogPlayLevel: Executing command 'ExportCertificate' '' ... LogPlayLevel: Looking for a certificate that matches the application identifier '0123456789.com.soramame.labyrinth' LogPlayLevel: .. Provision entry SN '0123456789012345' matched 1 installed certificate(s) LogPlayLevel: .. .. Installed certificate 'iPhone Developer: xxxxxxx (0123456789)' is valid (choosing it) (range '2018/11/05 11:40:59' to '2019/11/05 11:40:59') LogPlayLevel: Error: IPP ERROR: Error while executing command: System.Security.Cryptography.CryptographicException: 指定された状態で使用するには無効なキーです。 LogPlayLevel: 場所 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) LogPlayLevel: 場所 System.Security.Cryptography.X509Certificates.X509Utils._ExportCertificatesToBlob(SafeCertStoreHandle safeCertStoreHandle, X509ContentType contentType, IntPtr password) LogPlayLevel: 場所 System.Security.Cryptography.X509Certificates.X509Certificate.ExportHelper(X509ContentType contentType, Object password) LogPlayLevel: 場所 iPhonePackager.CompileTime.ExportCertificate() 場所 D:\Build\++UE4\Sync\Engine\Saved\CsTools\Engine\Source\Programs\IOS\iPhonePackager\CompileTime.cs:行 237 LogPlayLevel: 場所 iPhonePackager.CompileTime.ExecuteCompileCommand(String Command, String RPCCommand) 場所 D:\Build\++UE4\Sync\Engine\Saved\CsTools\Engine\Source\Programs\IOS\iPhonePackager\CompileTime.cs:行 749 LogPlayLevel: 場所 iPhonePackager.Program.ExecuteCommand(String Command, String RPCCommand) 場所 D:\Build\++UE4\Sync\Engine\Saved\CsTools\Engine\Source\Programs\IOS\iPhonePackager\iPhonePackager.cs:行 564 LogPlayLevel: Error: ERROR: IphonePackager failed. LogPlayLevel: Took 1.3438376s to run UnrealBuildTool.exe, ExitCode=5 LogPlayLevel: Error: ERROR: UnrealBuildTool failed. See log for more details. (C:\Users\Wanchan\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.22\UBT-CppTest-IOS-Development.txt) LogPlayLevel: (see C:\Users\Wanchan\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.22\Log.txt for full exception trace) LogPlayLevel: AutomationTool exiting with ExitCode=5 (5) LogPlayLevel: Completed Launch On Stage: Build Task, Time: 0.751477 LogPlayLevel: BUILD FAILED PackagingResults: Error: Launch failed! Unknown Error
「指定された状態で使用するには無効なキーです。」という表記が特徴的なこのエラーは、上記の その8 のエラーと同様のもので、最近のUE4のバージョンだとこのように表示されます。Windowsを新規インストールした際などによく発生するようです。
LogPlayLevel: Executing command 'Clean' ... LogPlayLevel: Cleaning temporary files from PC ... LogPlayLevel: ... cleaning: D:\labyrinth\master\project\trunk\Labyrinth\Intermediate\IOS-Deploy\LabyrinthMaster\Development\ LogPlayLevel: Error: IPP ERROR: Failed to find stub IPA 'D:\labyrinth\master\project\trunk\Labyrinth\Binaries\IOS\LabyrinthMaster.stub' LogPlayLevel: Took 0.0747991s to run IPhonePackager.exe, ExitCode=1 LogPlayLevel: Command failed (Result:1): C:\Program Files\Epic Games\UE_4.23\Engine\Binaries\DotNET\IOS\IPhonePackager.exe RepackageFromStage "D:\labyrinth\master\project\trunk\Labyrinth\LabyrinthMaster.uproject" -config Development -schemename LabyrinthMaster -schemeconfig "Development" -sign -codebased -stagedir "D:\labyrinth\master\project\trunk\Labyrinth \Saved\StagedBuilds\IOS" -project "D:\labyrinth\master\project\trunk\Labyrinth\LabyrinthMaster.uproject" -iterate -provision "Labyrinth.mobileprovision" -certificate "iPhone Developer: Tomoya Ito (NNKBPY85V5)". See logfile for details: 'IPhonePackager-2019.11.15-10.32.33.txt' LogPlayLevel: AutomationTool exiting with ExitCode=1 (Error_Unknown) LogPlayLevel: Completed Launch On Stage: Deploy Task, Time: 7.767157 LogPlayLevel: BUILD FAILED PackagingResults: Error: デプロイに失敗しました! Unknown Error
生成されたstub形式のファイルとプロジェクト名が一致しないと発生される不具合のようです。
私の場合、LabyrinthMasterというUE4プロジェクトを作って、Labyrinthというプロビジョニングファイルを使ってビルドした際に発生しました。
エンジンのソースコードを見てみると、どうやら .uproject のファイル名が使われるようなので、あきらめてUE4プロジェクト名をあわせるか、エンジンコードを変更する必要があります。(他の設定で対応可能でしたら教えてください!)
Mac側のホスト名に問題があるようです。
手っ取り早く対応するならば、Windows側のUE4の[プロジェクト設定]>[Remote Server Name]をホスト名ではなくMacのIPアドレスにすると成功するようになります。
Macのホスト名に関しては、半角スペースが入っているとダメなようです。
Mac側のローカルに保存されているデータを削除してビルドし直します。
ホーム > UE4 > Builds 以下を削除してください。
iOS実機でアプリが起動できない
起動しても画面が真っ暗のまま
(調査中)
起動時にエラーが表示される
iOSを更新したのにアプリが古い可能性があります。UE4でIPAを作成し直すと起動できるようになるかもしれません。(調査中)
最近のコメント