How to simulate the WatchOS on Xcode 7.0.1 - ios

I recently updated my Xcode to Version 7.0.1 and I built my first Apple Watch app.
I would like to test it but it seems like I need the actual device to be able to simulate it?
I went to Hardware > External Devices > and I do not see the Apple Watch option anywhere.
Anybody else has experience this?
What can I do to fix it?

It is not the same simulator but another one called 'Simulator (Watch)'.
If you select the target for the Watch project, you end up with this (menu selection):
which will launch the two simulators

Select scheme for Apple Watch in XCode and display should appear after running the project.

My case is worse, there is even no simulator option under "Project WatchKit App" scheme.
However I am able to bring it up by adding new simulator paring with watch simulator from device management window.
Start any iOS simulator.
Go to Hardware -> Device -> Manage Devices...
Click the + button under the bottom left corner.
Then you will be able to add new iphone simulators paired with apple watch. Sorry, I do not have enough reputation to post image here.
Although I still can't find the watch simulator under the external displays dropdown, I can run the watch app from the "Project WatchKit App" scheme anyway.

Related

How to open iPhone simulator and paired watchOS simulator at the same time?

I am learning development for the Apple Watch app paired with the iOS app. I created an iPhone simulator and paired it with a watch simulator. I was going through this tutorial - https://developer.apple.com/tutorials/swiftui/creating-a-watchos-app downloaded the project files and opened the Xcode project from the 'Completed' folder.
When I run the app using the iOS scheme and select the paired simulator, I only see the iPhone simulator coming up. If I run the watch target, I only know the watch simulator and no iPhone simulator. I went ahead and unchecked "Supports running without iOS App Installation" from Watch Target -> General -> Deployment target and even after that I am just seeing the watch simulator getting displayed. I want to see both iPhone and watch side by side.
Please let me know how can I do this on Xcode 13.2.1. Below are some pics.
Apple watch tutorial (source - https://developer.apple.com/tutorials/swiftui/creating-a-watchos-app)
Open the simulator applications from your macOS applications, use the mouse options menu on the icon in the dock, and select -> device -> watchOS, you can start your paired watch simulator from there.

Why does my WatchKit extension cause a "Waiting to attach" message on an actual Apple Watch but not in a simulator?

I have a published iOS app and am trying to add a WatchKit extension for it.
For now, all I have is a watch interface.storyboard with a single label just to verify the entire building process. The app runs fine on the simulator (iPhone 6 (8.3)) and the Watch simulator.
When I run it on the iPhone and Apple Watch, it runs on the iPhone, installs on the Apple Watch, but then just displays a wait status when trying to run it on the Apple Watch.
The error in Xcode says "Waiting to attach", and when I try to attach it via Xcode > Debug > Attach to Process, it says "Lost connection to iPhone".
I am using Xcode 6.3.1.
The Waiting to attach message is bothering many people. Here are a few things that you can do:
Build the main iPhone app first, then stop it and build the WatchKit app
Wait some time for the attachment to finish (it can take 20 seconds or so)
I found that tapping the app icon on the Apple Watch sometimes helps to re-establish a lost connection. After tapping the app icon, the app often starts to update. So tap on your Apple Watch app after the message Waiting to attachappears.
If waiting does not help, stop all processes (make sure that the stop button in Xcode becomes gray) and then build and run your code again
Sometimes, restarting Xcode helps to solve problems
Force-quit your app on the Apple Watch as explained here
If that still does not help, deinstall and reinstall your WatchKit extension using the Apple Watchapp on your iPhone
Other things you could try:
Clean your project
Uninstall and re-install your watch app using the Apple Watchapp on your iPhone
Delete your iPhone app from the device
Delete/recreate the target scheme
In the WatchKit app target settings, set "Skip Install" to NO
I discovered that my WatchKit Bundle Names in my info.plist were not consistent. Ensure that the prefixes are exactly correct.
It was really never working for me.
I was able to fix it to remove any specific architectures in the build settings of the app target and leave it to Automatic (remove ARCHS = ... in project file)
Restarting the watch solved this for me.
Press and Hold the side button until you see the Power Off Slider.
Drag the slider to turn off your device completely. (Note it is NOT a button to press)
After you turn off your Apple Watch, press and hold the side button again until you see the Apple logo.
From this Apple Support Page: https://support.apple.com/en-gb/HT204510
I was developing a findersync extension for Mac and faced similar issue with XCode 7.2.1 and i found my changing bundle identifier of the extension project, it fixes the issue. I know this is not a permanent solution but atleast it will help you keep going forward if nothing else works
I have the same issue I have already two watch apps in the App Store but the current project with only some Interface objects runs fine in simulator but not on the watch I get only the waiting symbol and then it switch back to the apps screen on the watch.
I found the issue it was a setting of the Build architecture in the build setting. I used Xcode automatic problem solver to change the old project.
Now it works fine.

"Install of Apple Watch Application never finished" Error when deploying watch kit app to device

So I got my new watch (yay!). I manually added its UDID to the developer portal and refreshed the provisioning profiles and I was able to push an archive to ITC for testing but now I want to run the app in debug on my watch itself.
I try deploying the watch kit app target set to my phone as the device and it sits there and runs/ churns for a while and nothing happens.
If I wait long enough, Xcode eventually errors with
"Install of Apple Watch Application never finished"
Has anyone run across this or know of any tricks I can try?
I keep running into this as well with Xcode 7 beta and iOS 9 / watchOS 2 simulators.
One solution that worked for me was to reset and restart both simulators, but it didn't work reliably. So I tried some other things, and what eventually started to work reliably for me was:
Go to the "Apple Watch" companion app on the iOS simulator.
Click your app's name.
Toggle "Show App on Apple Watch" switch as shown in the screenshot below. (turn it off, and back on again)
Run the app again from Xcode.
Well with much testing and fooling around, I was able to fix the problem.
There was a mix of the error above as well as the usual verification error.
I had to double check and triple check that all 3 of the developer provisioning profiles for watch ext, watch app, and the app were up to date with the updated Watch UDID device.
Note: For debugging watch apps, I have found that you seem to have to select to run the app from your watch and then the debugger will trigger
I had this problem with the simulator. I solved it by resetting both simulators (File/"Reset Content and Settings..."). Not sure if I had to be that drastic... deleting the app may have worked also, restarting the simulator didn't.
I had this same problem, but for different reasons when developing with Xcode 7 and iOS 9.
If this helps for anyone developing their WatchKit Extension (not watchOS 2.0 app stand alone) with Xcode 7 beta (and iOS 9) and they wish to test on their actual Watch, I had to make sure the WatchKit App Device Id (on the Apple Dev Portal) AND the Xcode target had App Groups enabled.
This is different. Perviously just the Watch Extension required App Groups enabled.
My WatchKit app DEV provisioning profile also, of course, had to have the UUID of the watch used in development.
I had similar issue on a physical device. I fixed this by restart apple watch.
To do this just long press a button on right side of watch and select "Power off" from screen and after that next long press on right side button.
I had the exact issue, and after trying different combinations, I was able to resolve this issue.
Below is list of items you need to check before you debug your Watch App on Simulator:
Make sure that the Bundle Identifier of your WatchKit App and WatchKit Extension is set properly and you have selected proper provisioning profile and certificates for both.
The Bundle Identifier of your 'WatchKit extension' should contain the Bundle identifier of your 'WatchKit App'. For example if your 'WatchKit App' has bundle identifier as 'com.example.watchkitapp', then your 'WatchKit Extension's' bundle identifier should be 'com.example.watchkitapp.watchkitextension'
Make sure your Watch App & Extension has Version Number same as your iPhone app.
I hope the above steps will help you resolve your issue.
Happy Coding :)
I had this problem and solve it by turning 'Keychain sharing' off in Project->Target->Capabilities.

Can't install WatchKit app on Apple Watch

I have a WatchKit app that runs fine in the Simulator. But when I try to run it on an actual device it never finishes installing and never provides any error message or feedback.
The iOS app installs and runs fine. I bring up the Apple Watch app on the iPhone and it lists the app and shows the correct icon. Selecting that, the "Show App on Apple Watch" switch is on. Underneath it it says, "Installing...". And it stays there.
I can also see the app icon on the Apple Watch. Selecting it just shows the spinning wheel indicator as if it is trying to load.
Things I've tried based on other suggestions I've found here, on the Apple Developer forums, and around the web:
Verified that all app bundle IDs are correct and match.
Verified that the deployment target is iOS 8.2.
Verified that the WatchKit App runs in the simulator.
Verified that my provisioning profile includes my Apple Watch's UDID.
Verified that my Apple Watch shows up as a "Paired Watch" in Devices.
Deleted the app from my phone, and then rebooted my phone, watch, and Macbook before reinstalling.
None of the above work. Any suggestions?
Thanks!
Thomas Aylesworth
A friend who works on the USA Today iOS team, including the Apple Watch app, suggested I go to the project settings for the WatchKit App target and set "Skip Install" to NO. Sure enough, after doing this, I was able to install.
I've found it very useful for reading the iPhone console log. (Not to be confused with crash logs).
Use Xcode --> Window --> Devices -- select your plugged in iPhone, and make sure the log screen lower left arrow is down.
In my case, I had invalid provisioning profile entitlements, which were corrected via the Apple Dev portal, and re-downloading the profiles -- after making sure the entitlements were correctly being set in the WatchKit App Capabilities.
Check Info.plist file. In my experience if there is something added there that is not supposed to be there, it will cause this behavior. I added NSLocationWhenInUseUsageDescription and it caused this same issue.
I have found a similar problem due to my storyboard referencing an image which I later deleted (I no longer actually used it anymore). This gave the symptom of running ok on simulator but not deploying fully on hardware as you are seeing. To exclude this potential problem go through each image view on your apple watch storyboard and look out for the exclamation mark against image view entries.
I had the same problem but for me it actually turned out that the Apple Watch was running a WatchOS version lower than what what I had in XCode. I could not see a runtime warning about this (it just silently failed), but when selecting WatchKit scheme in XCode with device connected there was a small warning about version requirement.
You can also try deleting the watch app on the watch by long tapping on the icon and then you should get the giggle UI with a X on 3rd party apps. You can then delete the watch app and retry the install.
I was getting this error too, and I got it to install, after creating a new project from scratch in the non-beta Xcode, and copying my assets and code into the new project. I had the same problem, and tried everything that people suggested on other posts, without any success, including everything that you listed above.
Apparently, there was something incompatible with the way the project was stored in the beta Xcode, that I had created for the WatchKit app.
Here's what works for me with iOS 8.3 and Watch OS 1.0.1:
Make sure your app is finished installing on your iPhone.
Restart the iPhone by holding down the Home button and Wake/Sleep buttons.
Launch the TestFlight app on your iPhone.
Staying in TestFlight, go to your app's detail page and toggle the Install on Apple Watch to the On position.
Press the Home button on your iPhone to exit the TestFlight app.
Press the digital crown on the Watch to get to the Home screen. An icon for your Watch app should appear and begin installing.
make sure your app support 64Bit, otherwise it cannot run on Watch,just spinning there.
Did you add a custom entry to the of your Info.plist of the WatchKit App
This isn't allowed and it will fail validation and will just sit on Install...
Checkout the device console log for information on it
Yeah, had that problem too.
I deleted the Xcode Beta (and the .dmg) downloaded it again and installed it.
Don't have that problem anymore.
In my case, I disconnect the iPhone and the Mac, reconnect them via data line. Then something appear on my watch, a choice, agree or disagree, agree it. After that, Xcode begin to install symbols for watchOS 2.1:
When this is done, you can check it in Library->Developer->Xcode->watchOS DeviceSupport->Watch1,1 2.1 (13S661)->Symbols
Then I disconnect the watch and iPhone, reconnect it. Now I can install WatchKit App on my watch.
I have followed the answer by #hunterleebrown to see the log and found that the WatchOS version is not updated (i.e. Watch OS version is lower than the required version).
Here is the screenshot [ The log says (4th line): The system version is lower than the minimum OS version specified for bundle at ... ...]:
Then I went to the iPhone's watch app's-->general settings-->Software Update and found the watch OS is not updated (which is obvious). Then I downloaded the update and installed it. Then it worked!
Note: I also tried quitting XCode, restarting iPhone and Watch but didn't work for me.
Press "Trust this device on Apple Watch"
I had the same endless installation issue ending with a Time Out error and I finally fixed it thanks to this answer: https://stackoverflow.com/a/61636074/2854405
I had to:
Unpair my iPhone (from the "Devices and Simulators" screen),
Exit Xcode
Replug my iPhone
Trust the iPhone again when it was prompted
Start Xcode
Rebuild
I also had the same issue.
#SwampThingTom suggestion is good, but it changes the archive format as well size increases too.
In my case, the issue was DER entitlements not working only watch app, mobile app was fine.
Make the changes as per the comment over here This Code Signature is no longer supported when building app on iPhone 12
Upgrade to Xcode 13.1
In my case I resolved this problem when selecting the WatchApp target to creating AdHoc.
So, for example, there is three targets in project:
Demo;
Demo WatchKit App;
Demo WatchKit Extension;
If create AdHoc with Demo target, you will get infinite installation.
If create AdHoc with Demo WatchKit App target, the problem goes away.

Xcode 5 Deployment Device

I opened up Xcode5 but my app cannot deploy onto my phone.
The organizer lists it as a deployment device, but all I see in the main toolbar is just generic "iOS Device".
It's odd because on another project does list my phone when I hit the "Play" button. Anyone seen this?
I am new to Xcode. Are you only allowed to deploy one project on your phone at a time?
Both projects are Universal.
It could be that the device has an older version of the OS on it. If you are targetting a newer version of the OS it will not show.
There is no limitation to the number of apps that can be on the device, you can have multiple. It could be that the device is not registered with apple? Showing in the list, does it have a green dot?
here is a question with the answer: Provisioning New Device for Development Xcode
Also, is it possible it is just not selected, here is a screen shot and link: http://www.techotopia.com/index.php/Testing_Apps_on_iOS_7_Devices_with_Xcode_5
Go to /Library/Developer/Xcode/DerivedData and delete all the contents.
This should now allow your device to be seen in the devices for selection.
This has been tested and works as I had the exact problem.

Resources