How to remove a partially installed app on Apple Watch - ios

There is a partially installed app on my Apple Watch and I can't find a way to remove it. I have removed all the my apps that I've installed using Xcode to iPhone and the Watch still shows an icon that you see when a Watch app is about to be installed on the watch (see the screenshot blow)

You should be able to delete it using Jiggle Mode after a reboot.

In my case, the Apple Maps Watch app was partially loaded, and the only solution I found was resetting the watch and restoring from backup. This corrected the issue.
Aside: you can figure out which app it is that is partially installed by going to the Apple Watch iPhone app and choosing App Layout. The icons will all be complete there.

Related

WatchOS app not detecting companion iOS app

I am making an independent Apple Watch app (but with a companion iPhone app which is not necessary for the watch app to function.)
The app uses WatchConnectivity to sync data between devices if iPhone companion app is installed. I am able to call session.updateApplicationContext() on the iOS app and receive session(didReceiveApplicationContext) on the Watch app. But going the other way is not possible. I always get an NSError code of 7018 which means the iOS companion app is not installed.
I have made sure both watchOS and iOS app are installed in simulator (and tested on my actual devices, iPhone 11 & Watch series 5.) But getting the same failed results from watchOS -> iOS.
I noticed there is a new WCSession instance variable available for watchOS 6.0+ isCompanionAppInstalled. When I read this variable after my WCSession is activated on my watch app, it always return false.
Is there anything else I need to look out for? I am thinking maybe there is something I did wrong in all the different info.plist. But I have checked them multiple times.
my info.plist files:
In my watch app:
WKWatchKitApp is YES
WKCompanionAppBundleIdentifier is com.abc.myapp
In my watch extension:
App can run independently of companion iPhone app is YES
NSExtension
WKAppBundleIdentifier is com.abc.myapp.watchkitapp
NSExtensionPointIdentifier is com.apple.watchkit
iOS app bundle identifier is com.abc.myapp
watchOS app is com.abc.myapp.watchkitapp
watchOS app extension is com.abc.myapp.watchkitapp.watchkitextension
Is there anything else I might be overlooking?
Thank you very much for any help/insight you can offer into this.
Ok. I found a way to get rid of the error and have the watch connectivity work from watch to iPhone.
Originally I wanted the watch app to be independent so in the watch extension target in Xcode, the check box "Supports Running Without iOS App Installation" is checked. But as soon as I uncheck this box, WCSession.isCompanionAppInstalled returns true and error goes away. Syncing from watch to iPhone starts working.
So hopefully this is not intended behavior and will soon be fixed by Apple. (I filed a bug report.) But for now, I am just going to leave the independent watchOS app unchecked because I do want WatchConnectivity in case iPhone app is installed by user.
Thank you for reading and good luck with your programming.
If you have "App is only available as a standalone watchOS app" in Info.plist, delete it even if it is false. Leave only "App can run independently of companion iPhone app". Also don't forget to set "WKCompanionAppBundleIdentifier" for Watch App (not extension). At least it works on real device for me with these parameters.
This seems to be a bug. Sometimes when I start my WatchOS app, it gets WCSession.isCompanionAppInstalled = false all the time, even though the companion app on the iPhone is running, and other apps are able to communicate with the phone.
This seems to go away when I force-restart the app on the watch (press side button, then swipe the app to the left and press the big red button, then start the app again). After the restart, everything seems to work fine.
This has happened only on Testflight builds so far. If it happens in production builds, I'm going to file a bug.
My iOS app will not launch in the Simulator if I uncheck "Supports Running Without iOS App Installation".

Apple Watch app rejection for "Booting to White Screen"

My app just got rejected, and the reason was that the Apple Watch Extension was "Booting to White Screen" on Apple Watch. They sent me a screencapture of Apple Watch screen that just has white screen. Not much information.
I honestly have no clue where I went wrong... seeing that the app runs fine on both iPhone and the Simulator.
I don't have an Apple Watch to test this with or any logs on real device to show you although I wish I could give as much information on this question.
I don't have any info I can supply other than the fact that they rejected the app, and app doesn't seem to run on real device.
I don't think it would be a code issue seeing that the First Screen in my app is just a few buttons for menu, without much things happening.
Could anyone give me any insight to how to approach this problem? or has anyone had a similar issue?
Here's the response from Apple.
2.2 Details
We discovered one or more bugs in your app when reviewed on iPhone
running iOS 8.2 on both Wi-Fi and cellular networks.
Specifically, upon review we found the Apple Watch app will boot to
white screen display upon launch.
Next Steps
Please run your app on a device to identify the issue(s), then revise
and resubmit your app for review.
For new apps, uninstall all previous versions of your app from a
device, then install and follow the steps to reproduce the issue(s).
For updates, install the new version as an update to the previous
version, then follow the steps to reproduce the issue(s).
If we misunderstood the intended behavior of your app, please reply to
this message in the Resolution Center to provide information on how
these features were intended to work.
Just in case anyone is wondering or having the same issue... it was really a stupid mistake.
I didn't put the images used for Apple Watch in the correct asset catalog with correct target membership. That's why it was displaying the images correctly on simulator, but not on real Apple Watch, since images weren't embedded within the app.
These kind of things needs to be double-triple checked before submitted to app store because it doesn't show on the simulator.

iOS 8 enterprise apps are stuck in limbo inside the device

In trying to release a new update to one of my enterprise iOS apps, I'm finding that the OTA download is failing. It will give me the "Would you like to install 'xxx'" alert, and tapping 'Install' is about as far as it will go. There's no indication that anything is happening. This occurs on my iPhone 6 and iPad both running the most recent release of iOS 8.
Running the devices on the iPhone Configuration Utility, it shows the list of installed apps, and the one app that is refusing to install has an "Install" button where all the others have "Uninstall." In the screen cap below you'll see the renamed bundle and the original bundle.
When I click the "Install" button, the iPhone Configuration Utility crashes.
I managed to get it to work using a workaround that I found elsewhere on StackOverflow, which requires renaming the app's Bundle Identifier, but it still seems like a pi$$-poor way to do it.
It seems clear that the app is somehow stuck in limbo, showing up on the app list but not showing up on the iPhone screen, and also is refusing to be overwritten. My question is, is there a way to purge the old app from the iPhone's memory, and possibly reload it using the original Bundle Identifier?
Apple still hasn't fixed this correctly in even the latest versions. There are several manifestations: the app does download, but the device doesn't quit the calling app, so you don't know if the app downloads or not. If the app was never on your device before, it usually downloads. If it was there before, and was deleted, it doesn't download. If the downloaded app is already running in the background, or you're doing in-app downloading, it often doesn't download because it doesn't want to replace a running app. I usually start the download, then switch immediately to the springboard to watch it download. If I see the clock dial on the app icon, then I know it's downloading. Changing the bundle is not a good thing, not to mention not giving any user feedback when you tap "Install."
As far as updating the app from the in app prompt.
It's a problem with apple/ios8. They aren't exiting the app after the install. If you quickly tap the home button after you hit install. Occasionally you will get a successful download.
For future use you could find out a way to use exit which will kill the app but apple warns against using exit due to poor user experience. But if apple isn't providing a good user experience in the first place for this process I think this warrants the use imho.

Removing iPad support from app

I uploaded an app to the App Store a while ago, but I have to delete the iPad support for different reasons. I am not talking about removing the app from the iPad App Store, only removing the iPad support. The Developer website states the following:
Developers who wish to issue updates, but remove device support, have three choices:
Fix their app so that it can work on the devices they originally set out to support.
Target a newer version of iOS that requires a newer device.
Remove their app from the store, and upload the new app with a different bundle ID.
The problem is that if I remove the app from the app store and upload it again, I can not use the same app name. That is not an option.
Is there any way out of this mess?
Answering my own question - no, there is no other way! I ended up creating a decent looking iPad app to fix the problem.
Apple will not allow you to remove support for iPad if you ever offered it on a given app name. Further, the app has to be well enough designed for iPad that Apple likes it enough to allow it to pass. We had an app rejected for this reason.

iOS apps without developer license / app store

I'm new to iPhone development and was wondering if there is a good/easy guide I could follow to install an iOS app on a jailbroken phone without joining the developer program.
Basically, I don't know if I'm going to have the time to learn everything I need to learn, but would like to make a start and see where it leads. Once I have something decent put together I can make plans to go through official channels.
I followed a guide that I found in SO, but when launching the app it immediately dies/crashes back to the springboard. So I can only assume I did something wrong, or the guide is outdated.
I'm using iOS 4.3.3 and xCode 4.
here is the link to the guide I followed: iPhone App Minus App Store?
Thanks
Just to get the warning away.
I just found a guide that worked for me: How can I deploy an iPhone application from Xcode to a real iPhone device?. all I had to do was change the 4.2 in one of the commands to 4.3
With Xcode 7 it's now free to run your apps on your iPhone, iPad or Apple Watch (beta): https://developer.apple.com/xcode/
Now everyone can get their app on their Apple device. Xcode 7 and
Swift now make it easier for everyone to build apps and run them
directly on their Apple devices. Simply sign in with your Apple ID,
and turn your idea into an app that you can touch on your iPad,
iPhone, or Apple Watch. Download Xcode 7 beta and try it yourself
today. Program membership is not required.
This isn't my own method, but I thought I'd help you out since I've just read this elsewhere:
Answer by WrightsCS
There's a way you can do this.
You will need ROOT access to edit the following file.
Navigation to /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk and open the file SDKSettings.plist.
In that file, expand DefaultProperties and change CODE_SIGNING_REQUIRED to NO, while you are there, you can also change ENTITLEMENTS_REQUIRED to NO also.
You will have to restart Xcode for the changes to take effect. Also, you must do this for every .sdk you want to be able to run on device.
Now, in your project settings, you can change Code Signing Identity to Don't Code Sign.
Your app should now build and install on your device successfully."

Resources