I have the same problem. Can't run Apple Watch simulator at all.
Post
Replies
Boosts
Views
Activity
Here is what I did on my project.
Use .privacySensitive(false) and .unredacted() if you want your text to be visible even when the device is locked AND the settings in Face ID & Passcode>Allow Access when Locked>Lock Screen Widgets is enable.
I am not sure why it has to be these two modifiers or why I did this way but using these 2 modifiers together works for me. Please keep in mind that I apply this modifiers to the entire view, not just some texts.
If you don't use these two modifiers, it means that it will follow that settings here (Face ID & Passcode>Allow Access when Locked>Lock Screen Widgets).
So...
First I would suggest you check the settings in Settings first and make sure that the Lock Screen Widgets is disabled. This way you can then test your code.
Second, if you want to hide the second Text, you should do the opposite by applying the modifier to the first Text instead. Like this
Text("Name of Subject")
.font(.system(size: 15.0))
.privacySensitive(false)
.unredacted()
Text(entry.dataIsOutdated ? "-.--" : entry.valueAsString!)
.font(.system(size: 28.0))
.fontWeight(.bold)
.minimumScaleFactor(0.5)
If this doesn't work you may try to put .privacySensitive(true) to your second Text.
Note that sometimes I have to delete the widget and re-add it to have it worked.
Hope this might help.
Fixed!
I don't know which one of this is the one that fixes this issue. I didn't try it separately, just did both the same time.
In String Catalog, I marked all English locale to be "Reviewed". Doing this will turn the existing grey texts into black
App Store Connect warned me that I didn't have a localization for custom intent (for widgets). In Xcode, in the intent file, I click Localize in the Inspectors. Doing this will increase the number of File Localized to 1 for each locale.
Note: I just realized that in App Store Connect, when you will your app in TestFlight tab. There is a Build Metadata, and if you scroll down you will see Store Information section. This will list all supported languages. You can check this before actually publish your app.
Fixed!
I don't know which one of this is the one that fixes this issue. I didn't try it separately, just did both the same time.
In String Catalog, I marked all English locale to be "Reviewed". Doing this will turn the existing grey texts into black
App Store Connect warned me that I didn't have a localization for custom intent (for widgets). In Xcode, in the intent file, I click Localize in the Inspectors. Doing this will increase the number of File Localized to 1 for each locale.
Note: I just realized that in App Store Connect, when you will your app in TestFlight tab. There is a Build Metadata, and if you scroll down you will see Store Information section. This will list all supported languages. You can check this before actually publish your app.
Problem fixed.
Well..... Not sure if this is the cause of this problem but after applying this fix I don't see this error anymore..
It turns out that I have error in accessing EKEventStore. Xcode gives me this error:
"Client tried to open too many connections to calaccessd. Refusing to open another."
In my app, I have carelessly initialized EKEventStore() many times. While this had no problem in iOS16, it caused me the above error in iOS17
let eventStore = EKEventStore()
The fix is to create a new class like this:
class EventStoreManager: ObservableObject {
static let shared = EventStoreManager()
let eventStore: EKEventStore
private init() {
eventStore = EKEventStore()
}
}
Then when I want to access the EKEventStore either in View Struct or function, do this:
let eventStore = EventStoreManager.shared.eventStore
After doing this I have no error from Xcode anymore. And no issue with access to EKEventStore.
Hope this might help.
In the same place you set Localization Prefers String Catalogs. Have you enabled Use Compiler to Extract Swift Strings?
And you need to build your project in order for the text to be displayed in the catalog.
I have the same problem. I use English as as my development language and set it as base language. Then I localize into Japanese with String Catalog in Xcode 15. I also localize the plist file and it works just fine as well.
I don't know why it shows 0 Files Localized for both English and Japanese. But the app works just fine. Even the one I download from Live App Store still provides the two languages.
But on App Store it displays only Japanese like this.
Looking for answer.
I have the same issue. Using Version 15.0.1 (15A507)
I have both iOS and macOS version. The macOS version went through fine. Only iOS faces this issue.
I experience the same. I think it is a bug because it used to be working fine prior to watchOS10. I have also tested a few of third party widgets and they have the same problem - not redacted when not worn. Only Apple's own widgets like calendar seems to be working just fine though.
I don't know the reason why but #available(iOSApplicationExtension 17.0, macOSApplicationExtension 14.0, *) doesn't work for me. Well, it sometimes works sometimes doesn't work. By 'Work' I mean the widgets get refreshed correctly.
I have to change it to
#available(iOS 17, macCatalyst 17, *)
And it works like a charm.
Problem fixed.
Well..... Not sure if this is the cause of this problem but after applying this fix I don't see this error anymore..
It turns out that I have error in accessing EKEventStore. Xcode gives me this error:
"Client tried to open too many connections to calaccessd. Refusing to open another."
In my app, I have carelessly initialized EKEventStore() many times. While this had no problem in iOS16, it caused me the above error in iOS17
let eventStore = EKEventStore()
The fix is to create a new class like this:
class EventStoreManager: ObservableObject {
static let shared = EventStoreManager()
let eventStore: EKEventStore
private init() {
eventStore = EKEventStore()
}
}
Then when I want to access the EKEventStore either in View Struct or function, do this:
let eventStore = EventStoreManager.shared.eventStore
After doing this I have no error from Xcode anymore. And no issue with access to EKEventStore.
Hope this might help.
I have similar problem. Just happen to me on iOS 17.0.3 and macOS Sonoma. I have an incident where calendar full access permission is granted in Settings>Privacy, but in the app it says No calendar access (status NotDeterminded). But I mean... in the Settings app it is clear that the permission is granted. I thought once the permission is granted, no matter what my code does or if there is any error in my code, the Full Access Permission should stay the same, no?
I have experienced the same. widgets on watchOS won't use latest data in userDefaults. Even though the AW's app itself uses the latest data in userDefaults.
However, from my experience, if I wait for hours (but not more than 24 hours.) the widget uses correct latest data from userDefaults. And subsequent widget rendering will also use latest data in userDefaults.
Can anyone confirm that if you wait for says 4-5 hours or overnight, the widget will read correct data?
Same here and still couldn't figure it out. But...if I wait for hours (not more than 24 hrs), and restart my Apple Watch few times, the widget finally reads correct data from userDefaults.
Here what I got.
When I first install app on Apple Watch, in the AW app itself I can see correct data in userDefaults that are sent from iPhone. This is working right away.
But, when the widget renders, it does not use the latest updated data in userDefaults. It uses default value in userDefaults. (the values that I initialize it with)
Now... I have to wait for hours, with a help of free restart the Apple Watch.
Once the widget renders correctly, that is it using the latest updated data from userDefaults, it will continue to use this. Subsequent widget rendering will have no issue. userDefaults in Apple Watch's app and the widgets are the same.
Still don't know how to fix this.. Right now I just advice users to wait.....
Update! It is working as expected as of May 2023.
My Settings:
Mac Ventura 13.3.1(a)
Xcode 14.3
Works on both real device and simulator with iOS16.4.
Now we can get back to work. lol