I have a project which uses Settings.bundle including root.plist containing a list of key value pairs I want to register with user defaults. Until recently, these values were visible and editable from the device's "Settings" App. Now I can't see anything when tapping on my app in settings - the details panel is empty.
Its working fine in iOS8 and works on iOS 9.2 simulator. But not on device which has iOS 9.2.1.
I google it and find same problem with no answer yet :(
Apple Forum
StackOverflow
But seems not work for me.
So i think this is the bug in iOS 9.2.1. I perform the following steps and it showing my app settings in Device setting app.
Force quit the my app & settings app.
Relaunched the my app & settings app.
Now its showing the app settings in settings app.
Hope Apple fixed it in next iOS updates.
Related
I am developing an iPhone/iPad photo processing app on a Mac using Swift in XCode 13.4. When I connect an iPhone running iOS 15.6 as an external device, the app appear in the Settings list and I can allow it to have access to Photos. When I connect to an iPad running iOS 15.5 as an external device the program runs but fails when trying to access photos using info[UIImagePickerController.InfoKey.phAsset.rawValue]. This is commonly because permission to access photos has not been given to the app. When I tried to set this I found that the app did not appear in the Settings list. The app does appear in the iPhone settings list even though it has never been installed from the App Store.
Okay, so it turns out that you mean you're running from Xcode on the device. Good! But that is irrelevant to the question, as it turns out.
The question is why it is that, on the iPad, there is no entry for your app in the Settings app, is that right? So that would be because on the iPad you've never done anything that causes the app to request permission (such as photos).
The point is, you cannot initiate the granting of permissions from Settings; the app itself must first request permission from the user (using the correct PHPhotoLibrary call). Only after that happens will the app acquire a place in Settings where the user can modify the initial permissions.
Adding a programmatic definition of photo access options as suggested by Matt in main form viewWillAppear solved the problem as per https://developer.apple.com/documentation/photokit/delivering_an_enhanced_privacy_experience_in_your_photos_app. However, iOS 14 or newer is required.
I set my iOS Simulator (13.5) to German language for my app, which is fully localized:
But when I start my app up, I still get this dialog in English when asking for notification privileges:
I thought my Info.plist was fully localized. What am I missing here to make this dialog appear in German?
I filed a bug with Apple about this problem. Apple recently got back to me and said they’ve fixed it in Xcode 14 (with iOS 16). I’ve gone ahead and tested and confirmed that Xcode 14 does indeed fix it.
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".
I recently developed an iOS app using Xcode 8 beta. I ran it on my iPhone (which is currently operating on iOS 10 beta), and it worked fine.
However, my app uses the camera, and I have been attempting to have the user go to settings, and enable the camera.
But my app does not appear in the list of apps in settings. It does not show up in the developer section either.
How can I resolve this bug? Thanks.
Starting from iOS 10, it's mandatory to add "NSCameraUsageDescription" in info.plist which is just an informatory message to the user stating the reason for accessing camera. It will be presented to the user while trying to access the camera only for the first time after installing the application.
Though this key is existing since iOS 7, it has been made mandatory in iOS 10 beta. Please refer to below Apple reference link.
https://developer.apple.com/library/prerelease/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW15
Sometimes the debug log is helpful! I ended up adding the following to my info.plist:
NSCameraUsageDescription
Then in the right side, I described how the app uses the camera.
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.