Give us the minimum amount of code that reproduces your issue, and we'll have a look. It's very difficult to diagnose things like this without seeing your code.
If a website is downloading a file automatically, the last thing I would do is try to open it. Have you never heard of online scams?!
Anyway, aside from that, are you using any browser extensions? Does the website open correctly in another browser, maybe Firefox or Chrome? Does it work on a Mac before Sequoia?
What's a ControlWidgetTemplate? I can't find that in the Developer app.
The error is because you're returning a ControlWidgetButton in a struct that says it's a ControlWidgetTemplate type.
It looks like you just want to return the right 'thing' in the ControlWidget struct. Something like this: (tweak it to get it to do what you want)
func chooseControlWidgetContent() -> ControlWidgetButton {
if (applaunched) {
return ControlWidgetButton(action: Aintent()) {
Label("xxxx", systemImage: "calendar")
}
} else {
return ControlWidgetButton(action: Bintent()) {
Label("xxxx", systemImage: "calendar")
}
}
}
@available(iOS 18.0, *)
struct ControlWidgetContent: ControlWidget {
let kind: String = "ControlWidgetInterface"
var body: some ControlWidgetConfiguration {
StaticControlConfiguration(
kind: kind
) {
chooseControlWidgetContent()
}.displayName("xxxx")
}
}
I don't think this has changed in a while, and AFAIK won't change in iOS 18, but SMS is sent over a carrier's network not Wi-Fi, but it's up to the carrier to decide how to route an SMS.
iMessage messages are sent via any data connection, so cellular or Wi-Fi.
Some carriers support SMS over Wi-Fi, but that's up to your carrier.
If you're thinking about RCS, well that might work, but again your carrier has to support it for it to work.
It looks like something is trying to get the boolValue of an NSDictionary, which is not possible, hence the unrecognized selector sent to instance error.
Is this a method you have access to? [RCTModuleMethod invokeWithBridge:module:arguments:]. Maybe that will give you a hint as to where it's going wrong.
If you've checked everything, searched everywhere for "HK" and "Health" then you might have to ask on the Google forums to see if Firebase is causing this.
You should probably raise this as a bug in the usual way. It won't really get progressed if it's only posted in these Developer Forums.
You need to raise each issue you find separately at https://feedbackassistant.apple.com/ You can post the FB numbers here if you want, so that others can link to them.
Do you mean your app is already showing a sheet (not the login or logout sheets), and when you try to display the login/logout sheet you get either a warning about presenting multiple sheets or they just don't work properly?
What I do is dismiss the already-presented sheet and then show the login/logout sheet.
You can do this by changing the other sheets to something like this:
.sheet(isPresented: $showImageSelector && !$loginManager.isShowingLogin && !$loginManager.isShowingLogout) {
ImageSelector()
}
I don't know if this is the 'correct' way to do it, but it makes sense to me.
Give us the minimum amount of code that reproduces your issue, and we'll have a look. It's very difficult to diagnose things like this without seeing your code.
If a website is downloading a file automatically, the last thing I would do is try to open it. Have you never heard of online scams?!
Anyway, aside from that, are you using any browser extensions? Does the website open correctly in another browser, maybe Firefox or Chrome? Does it work on a Mac before Sequoia?
What's a ControlWidgetTemplate? I can't find that in the Developer app.
The error is because you're returning a ControlWidgetButton in a struct that says it's a ControlWidgetTemplate type.
It looks like you just want to return the right 'thing' in the ControlWidget struct. Something like this: (tweak it to get it to do what you want)
func chooseControlWidgetContent() -> ControlWidgetButton {
if (applaunched) {
return ControlWidgetButton(action: Aintent()) {
Label("xxxx", systemImage: "calendar")
}
} else {
return ControlWidgetButton(action: Bintent()) {
Label("xxxx", systemImage: "calendar")
}
}
}
@available(iOS 18.0, *)
struct ControlWidgetContent: ControlWidget {
let kind: String = "ControlWidgetInterface"
var body: some ControlWidgetConfiguration {
StaticControlConfiguration(
kind: kind
) {
chooseControlWidgetContent()
}.displayName("xxxx")
}
}
I don't think this has changed in a while, and AFAIK won't change in iOS 18, but SMS is sent over a carrier's network not Wi-Fi, but it's up to the carrier to decide how to route an SMS.
iMessage messages are sent via any data connection, so cellular or Wi-Fi.
Some carriers support SMS over Wi-Fi, but that's up to your carrier.
If you're thinking about RCS, well that might work, but again your carrier has to support it for it to work.
It looks like something is trying to get the boolValue of an NSDictionary, which is not possible, hence the unrecognized selector sent to instance error.
Is this a method you have access to? [RCTModuleMethod invokeWithBridge:module:arguments:]. Maybe that will give you a hint as to where it's going wrong.
If you've checked everything, searched everywhere for "HK" and "Health" then you might have to ask on the Google forums to see if Firebase is causing this.
You should probably raise this as a bug in the usual way. It won't really get progressed if it's only posted in these Developer Forums.
You need to raise each issue you find separately at https://feedbackassistant.apple.com/ You can post the FB numbers here if you want, so that others can link to them.
Do you mean your app is already showing a sheet (not the login or logout sheets), and when you try to display the login/logout sheet you get either a warning about presenting multiple sheets or they just don't work properly?
What I do is dismiss the already-presented sheet and then show the login/logout sheet.
You can do this by changing the other sheets to something like this:
.sheet(isPresented: $showImageSelector && !$loginManager.isShowingLogin && !$loginManager.isShowingLogout) {
ImageSelector()
}
I don't know if this is the 'correct' way to do it, but it makes sense to me.