[GH-ISSUE #132] epic games ipa #118

Closed
opened 2026-03-03 15:30:44 +03:00 by kerem · 9 comments
Owner

Originally created by @n1cknam3l3ss on GitHub (Aug 21, 2024).
Original GitHub issue: https://github.com/LiveContainer/LiveContainer/issues/132

Describe the issue

so far i tested both fortnite and fall guys, fortnite shows black screen then crashes and fall guys works amazingly well. device: iphone 11 pro max ios 18 beta 3

Instructions to reproduce

download both ipa's here: https://github.com/atellies/EpicGamesStoreIPA/releases/tag/latest
install them in livecontainer
launch fortnite -> get black screen -> wait 10 sec onds -> get crash
launch fall guys -> works absolutely fine

What version of LiveContainer are you using?

2.1.2 latest

Other

when i installed fortnite through sidestore it showed epic games logo instead than said "please sign the app with correct entitlements".

Originally created by @n1cknam3l3ss on GitHub (Aug 21, 2024). Original GitHub issue: https://github.com/LiveContainer/LiveContainer/issues/132 ### Describe the issue so far i tested both fortnite and fall guys, fortnite shows black screen then crashes and fall guys works amazingly well. device: iphone 11 pro max ios 18 beta 3 ### Instructions to reproduce download both ipa's here: https://github.com/atellies/EpicGamesStoreIPA/releases/tag/latest install them in livecontainer launch fortnite -> get black screen -> wait 10 sec onds -> get crash launch fall guys -> works absolutely fine ### What version of LiveContainer are you using? 2.1.2 latest ### Other when i installed fortnite through sidestore it showed epic games logo instead than said "please sign the app with correct entitlements".
kerem 2026-03-03 15:30:44 +03:00
Author
Owner

@khanhduytran0 commented on GitHub (Aug 21, 2024):

Fortnite still requires additional memory entitlements to work.

<!-- gh-comment-id:2301522555 --> @khanhduytran0 commented on GitHub (Aug 21, 2024): Fortnite still requires additional memory entitlements to work.
Author
Owner

@n1cknam3l3ss commented on GitHub (Aug 21, 2024):

ok just wrote that down for those who wondering if it works

<!-- gh-comment-id:2301843080 --> @n1cknam3l3ss commented on GitHub (Aug 21, 2024): ok just wrote that down for those who wondering if it works
Author
Owner

@corysus commented on GitHub (Dec 20, 2024):

@khanhduytran0 There is a workaround for macOS and a free developer account. You can check it on this repository. This small app simply patches Fortnite.app with a custom mobileprovision and it works on macOS without problem. I am not sure if this can be applied to iOS as well since we can access Fortnite.app from LiveContainer?

<!-- gh-comment-id:2556982765 --> @corysus commented on GitHub (Dec 20, 2024): @khanhduytran0 There is a workaround for macOS and a free developer account. You can check it on this [repository](https://github.com/isacucho/FnMacAssistant). This small app simply patches `Fortnite.app` with a custom `mobileprovision` and it works on macOS without problem. I am not sure if this can be applied to iOS as well since we can access `Fortnite.app` from LiveContainer?
Author
Owner

@khanhduytran0 commented on GitHub (Dec 20, 2024):

This small app simply patches Fortnite.app with a custom mobileprovision and it works on macOS

Unfortunately it is not gonna work. First of all, during installation of a real app (app that goes through installd and managed by iOS), the provision profile is cached into a database and read there from now on, whereas LiveContainer apps are not visible outside of iOS. Secondly, swapping provision profile will make amfid fail to validate whether the signature in the profile is the same as that used to sign the app (I don’t know how it works on macOS, perhaps an exploit or reduced security something)

<!-- gh-comment-id:2557024659 --> @khanhduytran0 commented on GitHub (Dec 20, 2024): > This small app simply patches `Fortnite.app` with a custom `mobileprovision` and it works on macOS Unfortunately it is not gonna work. First of all, during installation of a real app (app that goes through `installd` and managed by iOS), the provision profile is cached into a database and read there from now on, whereas LiveContainer apps are not visible outside of iOS. Secondly, swapping provision profile will make `amfid` fail to validate whether the signature in the profile is the same as that used to sign the app (I don’t know how it works on macOS, perhaps an exploit or reduced security something)
Author
Owner

@hugeBlack commented on GitHub (Mar 3, 2025):

It's now possible to run Fortnite in LiveContainer with JIT enabled.

  1. Upgrade to LiveContainer 3.2.62+ https://nightly.link/hugeBlack/LiveContainer/workflows/build/main/com.kdt.livecontainer.ipa.zip
  2. Download patched Fortnite from https://github.com/appleipa/EpicGamesIPA/releases/tag/v1.1.8
  3. Download this entitlement file FortniteClient-IOS-Shipping.log and change .log to .xml
  4. Use ESign to sign the downloaded Fortnite ipa with whatever cert you have (can be expired). Import the entitlement xml to ESign, then sign the ipa. During signing, tap "More Settings"->Select entitlement file->select that entitlement xml->tap Signature
  5. Back to LiveContainer, go to settings, enable "Don't sign new apps"
  6. Install the signed IPA
  7. disable "Don't sign new apps"
  8. long press Fortnite->settings->enable "Launch with JIT", enable "Hide LiveContainer from Dyld Api"
  9. Launch Fortnite

For how to use ESign in LiveContainer, see https://github.com/khanhduytran0/LiveContainer/issues/146#issuecomment-2673823489

Explanation

UE uses this code to check if certain entitlement exist. In order for Fortnite to not crash, we have to ensure :

  1. entitlement blob exists in the executable's file in the file system
  2. Fortnite can find its main executable using dyld api
  3. Its mach header is of type MH_EXECUTE.
  4. Its entitlement dose not contain entitlement we don't actually have

Since the patched ipa still have these 2 entitlements, we have to sign it with ESign to remove them. We can't dlopen a dylib with entitlement, so we have to bypass dyld's library validation, which requires JIT, and enable "Hide LiveContainer from Dyld Api", which both hides LiveContainer and changes Fortnite's mach header's type to MH_EXECUTE.

<!-- gh-comment-id:2694898209 --> @hugeBlack commented on GitHub (Mar 3, 2025): It's now possible to run Fortnite in LiveContainer **with JIT enabled**. 1. Upgrade to LiveContainer 3.2.62+ https://nightly.link/hugeBlack/LiveContainer/workflows/build/main/com.kdt.livecontainer.ipa.zip 2. Download **patched** Fortnite from https://github.com/appleipa/EpicGamesIPA/releases/tag/v1.1.8 3. Download this entitlement file [FortniteClient-IOS-Shipping.log](https://github.com/user-attachments/files/19055748/FortniteClient-IOS-Shipping.log) and change .log to .xml 4. Use ESign to sign the downloaded Fortnite ipa with whatever cert you have (can be expired). Import the entitlement xml to ESign, then sign the ipa. During signing, tap "More Settings"->Select entitlement file->select that entitlement xml->tap Signature 5. Back to LiveContainer, go to settings, enable "Don't sign new apps" 6. Install the signed IPA 7. disable "Don't sign new apps" 8. long press Fortnite->settings->enable "Launch with JIT", enable "Hide LiveContainer from Dyld Api" 9. Launch Fortnite For how to use ESign in LiveContainer, see https://github.com/khanhduytran0/LiveContainer/issues/146#issuecomment-2673823489 Explanation UE [uses this code]( https://github.com/Alois44623/UnrealAndrogyn/blob/ab5ea5ef87ed7edacca47ea5d8349603bc4ed525/Engine/Source/Runtime/Core/Private/IOS/IOSPlatformMisc.cpp#L1345) to check if certain entitlement exist. In order for Fortnite to not crash, we have to ensure : 1. entitlement blob exists in the executable's file in the file system 2. Fortnite can find its main executable using dyld api 3. Its mach header is of type MH_EXECUTE. 4. Its entitlement dose not contain entitlement we don't actually have Since the patched ipa still have these 2 entitlements, we have to sign it with ESign to remove them. We can't dlopen a dylib with entitlement, so we have to bypass dyld's library validation, which requires JIT, and enable "Hide LiveContainer from Dyld Api", which both hides LiveContainer and changes Fortnite's mach header's type to MH_EXECUTE.
Author
Owner

@Obs0N commented on GitHub (Mar 21, 2025):

Hey, just wanted to say the method still works with updated patched IPAs, thanks. Another thing is my friends cannot hear me in a party, even though I can hear them just fine and my in-game settings are configured correctly. Is this just a LiveContainer limitation and Fortnite is unable to receive microphone permissions?

I tried to modify Fortnite’s app-specific settings, but I cannot find the app in the iOS settings app (can only see LiveContainer). I looked at the FAQ and in 5.5 it mentions the option to view ‘Container Preferences’, but I am unable to see this option when following the steps mentioned in the FAQ.

<!-- gh-comment-id:2742666124 --> @Obs0N commented on GitHub (Mar 21, 2025): Hey, just wanted to say the method still works with updated patched IPAs, thanks. Another thing is my friends cannot hear me in a party, even though I can hear them just fine and my in-game settings are configured correctly. Is this just a LiveContainer limitation and Fortnite is unable to receive microphone permissions? I tried to modify Fortnite’s app-specific settings, but I cannot find the app in the iOS settings app (can only see LiveContainer). I looked at the FAQ and in 5.5 it mentions the option to view ‘Container Preferences’, but I am unable to see this option when following the steps mentioned in the FAQ.
Author
Owner

@KohlerVG commented on GitHub (Apr 1, 2025):

@hugeBlack - Esign servers are going to not work in the future, does this method still work?

<!-- gh-comment-id:2770805109 --> @KohlerVG commented on GitHub (Apr 1, 2025): @hugeBlack - Esign servers are going to not work in the future, does this method still work?
Author
Owner

@corysus commented on GitHub (Apr 1, 2025):

You don't need ESign, you can use any tool to sign with any certificate even an expired one if you use it with LiveContainer. Only what you need is a patched Fortnite IPA. If you need on-device signing, then a good alternative is Feather.

<!-- gh-comment-id:2770825891 --> @corysus commented on GitHub (Apr 1, 2025): You don't need `ESign`, you can use any tool to sign with any certificate even an expired one if you use it with LiveContainer. Only what you need is a patched Fortnite IPA. If you need on-device signing, then a good alternative is [Feather](https://github.com/khcrysalis/Feather).
Author
Owner

@EnderRobber101 commented on GitHub (Jul 2, 2025):

is this still valid?

<!-- gh-comment-id:3029618157 --> @EnderRobber101 commented on GitHub (Jul 2, 2025): is this still valid?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LiveContainer#118
No description provided.