Skip to content

Instantly share code, notes, and snippets.

@steipete
Last active September 30, 2024 11:20
Show Gist options
  • Save steipete/d9b44d8e9f341e81414e86d7ff8fb62d to your computer and use it in GitHub Desktop.
Save steipete/d9b44d8e9f341e81414e86d7ff8fb62d to your computer and use it in GitHub Desktop.
Using iOS 15 devices with Xcode 12.5 (instead of Xcode 13)
# The trick is to link the DeviceSupport folder from the beta to the stable version.
# sudo needed if you run the Mac App Store version. Always download the dmg instead... you'll thank me later :)
# Support iOS 15 devices (Xcode 13.0) with Xcode 12.5:
sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/15.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
# Then restart Xcode and reconnect your devices. You will need to do that for every beta of future iOS versions
# (A similar approach works for older versions too, just change the version number after DeviceSupport)
@dunahee12
Copy link

_Download iOS 14.0 Zip from this link:

https://github.com/filsv/iPhoneOSDeviceSupport

_and past the folder to:

Xcode/Show Package Content/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Quit and Restart both XCode and iPhone

_In XCode go to:

Window/Device and Simulator and Click on + Button
Select your device
Click Next and Click Done, and then build and run your XCode

Note: You can also clear your cache before the build and run your XCode

Thanks, this worked for me!

@julianitow
Copy link

_Download iOS 14.0 Zip from this link:

https://github.com/filsv/iPhoneOSDeviceSupport

_and past the folder to:

Xcode/Show Package Content/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Quit and Restart both XCode and iPhone

_In XCode go to:

Window/Device and Simulator and Click on + Button
Select your device
Click Next and Click Done, and then build and run your XCode

Note: You can also clear your cache before the build and run your XCode

Thanks, this worked for me too !

@mlyongardiner
Copy link

_Download iOS 14.0 Zip from this link:

https://github.com/filsv/iPhoneOSDeviceSupport

_and past the folder to:

Xcode/Show Package Content/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Quit and Restart both XCode and iPhone

_In XCode go to:

Window/Device and Simulator and Click on + Button
Select your device
Click Next and Click Done, and then build and run your XCode

Note: You can also clear your cache before the build and run your XCode

Thank you!!

@ThasianX
Copy link

Yep that worked for me too. Everytime you update XCode 11, gotta do this

@tomaskraina
Copy link

Is this trick still working for iOS 14 beta 4? It used to work with beta 3 and now, I'm getting "Failed to start remote service on device." errors.

Screenshot 2020-08-06 at 11 32 23

@mbuchetics
Copy link

@tomaskraina same here :(

@hacknicity
Copy link

The Xcode 12 beta 4 release notes (https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) effectively states that the symbolic link workaround won't work with iOS 14 beta 4:

Debugging, testing, and profiling on devices running iOS 14, iPadOS 14, watchOS 7, or tvOS 14 beta 4 and later requires Xcode 12 beta 3 or later. Older versions of Xcode may display an error of “Failed to start remote service” when attempting to develop on unsupported operating system versions. (60850305)

@hacknicity
Copy link

hacknicity commented Aug 6, 2020

It's a real pain but you should be able to build with Xcode 11.5 or 11.6, open the "Products" folder, right click on the too and choose "Show in Finder" and copy the Xcode 11-built .app file somewhere safe. Then switch to Xcode 12 and launch an iOS 14 simulator. Dragging and dropping the .app file onto the simulator will install it. Unless you need the camera or some other feature that isn't available in the simulator, that might be a good enough workaround to allow testing Xcode 11 builds on iOS 14. EDIT: I just tried this and it didn't work :-( I have definitely used this trick in the past.

Using internal TestFlight builds is another way to get your Xcode11 builds running on iOS 14.

@mbuchetics
Copy link

That doesn't help with debugging. At least it's mentioned as a known issue, so there is hope that it's going to change again.

@siilver777
Copy link

siilver777 commented Aug 27, 2020

I updated to iOS 14 beta 6, and I have the same "Failed to start remote service" error on Xcode 11.6.

My workaround is as such: I keep both Xcode and Xcode-beta open, I run (Cmd+R) on Xcode 11.6 until it fails. Then, I run without building (Cmd+Ctrl+R) on Xcode-beta. That way, I keep using iOS 14 beta and Xcode 11.6 for work without updating the project to the iOS 14 SDK.

@mbuchetics
Copy link

mbuchetics commented Sep 16, 2020

Any news on Xcode 12 GM? It is not mentioned in the release notes anymore but I still can't get it to run.

@chkpnt
Copy link

chkpnt commented Sep 16, 2020

Having the same issue here debugging an iOS-13-SDK-app on iOS 14. But I've found a workaround for the workaround ;-)

  • Build (Archive) the app with Xcode 11
  • Deploy the app (Window -> Devices and Simulators) -> drag the app from the xcarchive to the device (the app can be found in subfolder Products/Application within the xcarchive)
  • Start the app on the device
  • Attach to the process with Xcode 12

At least for me, breakpoints, view hierarchy and memory graph is working this way.

EDIT: Just noticed that @silver777 described a workaround above which does the same but with a better UX. Didn't know that "Run without building"-Shortcut. 👍 (but you have to take care to not building with Xcode 12 by accident)

@JBenny25
Copy link

For me, building with Xcode 11.x and then running the project without building in Xcode 12 worked smoothly.
A weird yet super easy hack 🤣

@mbuchetics
Copy link

Wenn I do that, the different Xcode versions both modify the project file and each is complaining about the changed file. It's annoying, any workaround for that?

@hybridcattt
Copy link

hybridcattt commented Oct 18, 2020

I used a combination of os_log and viewing logs in Console.app with disabling debugging in the scheme to avoid the alert popping up.
Then I used Xcode 12 for the breakpoints when needed. I tried using "run without building" on Xcode 12, but since I had to rebuild a lot, it wasn't an optimal workflow for me.
I ended up writing an article about my experience debugging on iOS 14 with Xcode 11: https://hybridcattt.com/blog/debugging-on-ios14-with-xcode-11/

@dyncoch
Copy link

dyncoch commented Oct 23, 2020

Having the same issue here debugging an iOS-13-SDK-app on iOS 14. But I've found a workaround for the workaround ;-)

  • Build (Archive) the app with Xcode 11
  • Deploy the app (Window -> Devices and Simulators) -> drag the app from the xcarchive to the device (the app can be found in subfolder Products/Application within the xcarchive)
  • Start the app on the device
  • Attach to the process with Xcode 12

At least for me, breakpoints, view hierarchy and memory graph is working this way.

EDIT: Just noticed that @silver777 described a workaround above which does the same but with a better UX. Didn't know that "Run without building"-Shortcut. 👍 (but you have to take care to not building with Xcode 12 by accident)

Thanks! That worked for me. Xcode Version 12.1 (12A7403) iOS 14.2 (18B5083a)

@mjwvb
Copy link

mjwvb commented Dec 10, 2020

I updated to iOS 14 beta 6, and I have the same "Failed to start remote service" error on Xcode 11.6.

My workaround is as such: I keep both Xcode and Xcode-beta open, I run (Cmd+R) on Xcode 11.6 until it fails. Then, I run without building (Cmd+Ctrl+R) on Xcode-beta. That way, I keep using iOS 14 beta and Xcode 11.6 for work without updating the project to the iOS 14 SDK.

This actually works! Thank you @silver777, you saved my day

@AbdullahAshi
Copy link

I updated to iOS 14 beta 6, and I have the same "Failed to start remote service" error on Xcode 11.6.

My workaround is as such: I keep both Xcode and Xcode-beta open, I run (Cmd+R) on Xcode 11.6 until it fails. Then, I run without building (Cmd+Ctrl+R) on Xcode-beta. That way, I keep using iOS 14 beta and Xcode 11.6 for work without updating the project to the iOS 14 SDK.

A legend! Thank you !

@alekseilobankov
Copy link

Thank you, works like a charm!

@RohithSriram
Copy link

I got past all this and at the end of installation I’m getting: Unable to install KiteApp without any errors and app doesn’t get installed on my phone. I’m using Xcode 12.4 and running on iOS 15 beta device. Any suggestions?

@huohsien
Copy link

for Released Xcode 13's support file and iOS 15 (not beta) , it can be built but shows: "Unable to install 'app name'"
Please advise

@Aziaev
Copy link

Aziaev commented Sep 25, 2021

for Released Xcode 13's support file and iOS 15 (not beta) , it can be built but shows: "Unable to install 'app name'"
Please advise

I have same issue. I cant deploy my app to my IOS 15 device. What should I do?

@huohsien
Copy link

huohsien commented Sep 25, 2021

I found the solution. It's about signing. To my rough understanding, now Apple changed the way of signing.

In project:

TARGETS>Building Setting>

Find /search

"OTHER_CODE_SIGN_FLAGS"
Add the following flag to Debug mode(or Release mode depending on your purpose)

--generate-entitlement-der
RELEASE APPSTORE

@emirhankolver
Copy link

I found the solution. It's about signing. To my rough understanding, now Apple changed the way of signing.

In project:

TARGETS>Building Setting>

Find /search

"OTHER_CODE_SIGN_FLAGS" Add the following flag to Debug mode(or Release mode depending on your purpose)

--generate-entitlement-der RELEASE APPSTORE

Finally I've installed my app on my device, but I had little difficulty while finding the Other Code Signing Flags.
Don't forget to click on the All option that below Build Settings

@padmasrisekar
Copy link

Hi, Could anyone share ios 15 simulator package for Xcode12.4?
Is it possible to run ios15 in xcode 12.4?

Quick response would be helpful and really appreciated.

@tahirmt
Copy link

tahirmt commented Oct 8, 2021

I don’t believe you can create a link for that but if you launch Xcode 13 and open the simulator you want, then launch Xcode 12 the simulator should show up as run destination.

@shawn-frank
Copy link

Despite trying this for my release version

I found the solution. It's about signing. To my rough understanding, now Apple changed the way of signing.

In project:

TARGETS>Building Setting>

Find /search

"OTHER_CODE_SIGN_FLAGS" Add the following flag to Debug mode(or Release mode depending on your purpose)

--generate-entitlement-der RELEASE APPSTORE

We still are unable to install the ipa on iOS 14.7, iOS 15. Any ideas ?

image

@rshev
Copy link

rshev commented Nov 24, 2021

If you need iOS 15.1 support (Xcode 13.1 has only 15.0 directory) you can also do this as a follow up to the original gist:

sudo ln -s 15.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/15.1

which works at the time of writing (Xcode 13.1 and Xcode 12.5.1).

@rafaelks
Copy link

rafaelks commented Jun 8, 2022

If you need iOS 16 support on Xcode 13.4.1, here's the command (make sure you've Developer Mode enabled):

sudo ln -s /Applications/Xcode\ 14\ Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/16.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

@Jon889
Copy link

Jon889 commented Jul 3, 2023

I saw something in a build log (from Xcode 14) about CoreDevice being disabled, took a guess and if you do:

defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled

Then restart Xcode the iOS 17 device will show up in Xcode like this. Then you can run and debug the app as usual. I have Xcode 15 installed alongside Xcode 14 but not sure if thats a requirement. It took a while to copy symbols from device but eventually it got there.

Screenshot 2023-07-03 at 21 18 50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment