Announcement

Collapse
No announcement yet.

You can legally run and test your Unreal games on devices with Xcode 7 without iOS Dev. subscription

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    You can legally run and test your Unreal games on devices with Xcode 7 without iOS Dev. subscription

    With Xcode 7 it is possible to run and test your apps on a real device (not a simulator) without Apple Developer subscription (~$100). It even works with Unreal 4.8.

    For a beta period you need the following:
    • Current stable version of Xcode to compile your game (get Xcode 6.4 from the Mac App Store)
    • Current beta version of Xcode 7 to generate certificates and provisioning

    You can get Xcode 7 from Apple here https://developer.apple.com/xcode/downloads (register a free Apple account first)

    Steps:
    1. Connect an iOS device that you want to use for testing
    2. Start Xcode 7, create a new iOS project from a template (anything will do)
    3. Go to Xcode Preferences — Accounts and add your Apple account information
    4. Close Xcode Preferences, now on the Xcode toolbar set the Active Scheme (near the Stop button) to your app, and set the connected iOS device as a deployment target
    5. Select the root item in the Project Navigator on the left to open project settings, select your app target, select the General tab
    6. Change the Bundle Identifier in Xcode to the bundle identifier of your Unreal game (Unreal Project Settings — iOS — Bundle Information — Bundle Identifier)
    7. Ensure that the Team drop-down is set to your Apple account and click the Fix button under it
    8. Run the empty app once on the target device
    9. It will set certificates and provisioning just for this specific bundle identifier and just for the following selected device
    10. Stop the app, close Xcode and go back to Unreal with your game

    Ensure that the bundle identifier was not changed. Run a level from Unreal on the device or build an IPA and install it with iTunes. It will work from now on. You need to repeat these steps once for every new iOS device or Unreal game (with a different bundle identifier).

    I hope it will be automated in some future version of Unreal after the Xcode 7 final release.

    Enjoy.

    #2
    I'm not seeing that this is any different than how it works already. The differences are completely on Apple's side, no? They just now allow you to run on device without spending $100 (I believe you still need the $100 to submit to the store, but not 100% sure).

    AFAICT, you just laid out a different way to get the provision and certificate than how we document (we point to Apple's website and using the editor to set your project to match the bundle ID, and import cert and provision in the editor). You are just using a different way to install the cert and provision.

    Or am I missing something here?
    Josh
    Josh Adams | Epic Games | Platform Team Lead

    Comment


      #3
      Josh, you're right, the original post doesn't have much to do with UE4 from the development perspective, and it's probably in the wrong section....but it's still interesting news.
      Last edited by jasonh2013; 07-23-2015, 03:46 PM.

      Comment


        #4
        With a subscription a user can generate a wildcard provisioning profile, put it on a device and use it for any UE4 game to test. UE4 iOS tools sign for whatever identifier we have for a project and the bundle passes checks on the device for a wildcard provisioning. With Xcode 7 without subscription it's not possible to a get a wildcard provisioning (for free, we can only get one for a specific bundle identifier). Plus, it seems it's not possible to put a generated provisioning on the device automatically on deployment (not sure what exactly, but Xcode needs to request/generate a new one for every project, and intervention from a user is required (to click on the Fix button)). That's the reason we need to create an empty project with the same identifier, click on Fix to send the generated/requested provisioning to the device, and only then use UE4 to deploy. I just hope (if it's possible) that iPhonePackager (or other iOS support tools) from UE will learn how to request/generate (directly or through >=Xcode 7) and install the free provisioning profile automatically on deployment.

        Comment


          #5
          If anyone is trying to do this so they can develop on PC you can find the provision in the package created for the app you ran the first time. I had to do a search for the app name I gave it and and it found it here:

          Mac HD > Users > UserName > Library > MobileDevice > Provisioning Profiles

          Right click, grab the mobile provision - mine was named embedded.mobileprovision - and copy to Dropbox or however you want to move it.

          The certificate was in the Keychain app on the Mac. Just search for Keychain Access in Spotlight on the Mac. Open the app and look for it there. For me, (not sure how it works for others with different setups) it was in the Login keychain under Keys. Both of those selections are in the left hand sidebar. Login at the top and Keys at the bottom. Once both are selected, look for an entry about iOS Developer: <your Apple ID> and it should be in there.

          Right click and export. You should be able to skip the password part and just enter the computer's password to allow you to save it.

          I got both over to my PC and set them up with no issues. Now I'm trying to figure out how to build to an iPad from my PC. It tried, but failed to find the iPad for some reason.
          Last edited by Gooner44; 04-07-2016, 06:38 PM. Reason: As of Xcode version 7.2, the provision is saved in a different location.
          Gooner44
          Cribbage Sample Project on MP

          Comment


            #6
            I wish it was possible to build iOS games on Windows and not be bound to OSX

            Comment


              #7
              Anyone have a work around to deploy an app on one phone from windows without paying the $99?
              In League

              Comment


                #8
                I cant get this to work, i've created a valid provision and both items are greenlighted in ue4, yet i get a license error when i try to deploy to my device. The provision works fine in spritekit and unity.

                Comment


                  #9
                  This is irritating. It is so easy in Unity, why such a PITA in Unreal?

                  I have followed rachmirof's instructions but keep getting errors "PackagingResults:Error: Error Launch failed! Failed to Code Sign" and the build fails. joshbadams - where is your official solution? All I can find is the instructions on how to do signing and provisioning if you have a paid apple dev account, which I don't have.

                  Comment


                    #10
                    Same for me. In unity this wasn't a problem at all, not sure why is it such a problem in here

                    Comment


                      #11
                      I have macbook Pro, I can use this? You can help me?
                      taxi noi bai , Taxi noi bai gia re nhat, gio qua tet,

                      Comment


                        #12
                        I know, you probably won't have enough time for this, but can you, please, try to create a video tutorial? Because it looks like there's something I'm missing, and my Provision Profile is invalid for UE4!

                        Comment


                          #13
                          Hello

                          I am able to run IOS 10 on PC using vmware and able to run xcode also. But I am having problem is certificate. requires the dumb $99 developer account.

                          Comment


                            #14
                            I know this thread is tagged Xcode7, but I'm having similar problems using Xcode9 beta 2.

                            It seems like it's not downloading the provision for the connected device.

                            Following this procedure you recommended I've been able to run a dumb ios app in my device from Xcode, matching the bundle/company/etc names of the project I'm trying to launch, and this process generated the proper provision for me.

                            After accepting the developer app certificate and accept trusting it from the device the dumb app installed and launched properlly from Xcode.

                            After that, the UE4 project seems to be able to locate valid provision and certificate, they show green and all seems fine...

                            But when I try to launch it to the device, errors about provision and signing appears...

                            Any suggestion on troubleshooting this kind of issues?

                            Comment


                              #15
                              Originally posted by ocalaf View Post
                              I know this thread is tagged Xcode7, but I'm having similar problems using Xcode9 beta 2.

                              It seems like it's not downloading the provision for the connected device.

                              Following this procedure you recommended I've been able to run a dumb ios app in my device from Xcode, matching the bundle/company/etc names of the project I'm trying to launch, and this process generated the proper provision for me.

                              After accepting the developer app certificate and accept trusting it from the device the dumb app installed and launched properlly from Xcode.

                              After that, the UE4 project seems to be able to locate valid provision and certificate, they show green and all seems fine...

                              But when I try to launch it to the device, errors about provision and signing appears...

                              Any suggestion on troubleshooting this kind of issues?
                              Hi, I had the same problem a few days ago.

                              I solved by renaming the provision (you can find it in users/username/library/mobiledevice/provisioning profiles/) with the name of the project and importing it manually.
                              Now Unreal Engine start to compile/pack/cook the game for your iOS device but it ends with an error.

                              Comment

                              Working...
                              X