Hello.
I installed the last 18 update this week, since I installed this my iPad Pro 11-inch (M4) has been very, very hot.
Posts under iOS tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I'm making an app where there are two widgets. Both widgets are supposed to get their timelines once per day, as all data for the day is known at midnight. I'm having an issue where when put on a development device, the widgets' timelines work correctly, but do not refresh the next day. I've tried both .atEnd and .after(Date) refresh policies and neither seems to work. Does anyone know why the widget isn't refreshing properly? I'm almost certain that I'm under the daily limit of refreshes (one timeline refresh and ~12 timeline entries per day). Thank you for any help! Dev device iPhone 15 Pro on 17.5.1 (21F90) with Xcode Version 15.4 (15F31d). Below is the timeline code for one of the widgets:
struct EndTimeProvider: TimelineProvider {
var currentHour: Int {
Calendar.current.component(.hour, from: .now)
}
var currentMinute : Int {
Calendar.current.component(.minute, from: .now)
}
var placeholderSixthPeriod: Period {
var endMinute: Int = 0
var endHour: Int = 0
if currentMinute > 60-14 {
endHour = currentHour + 1
endMinute = (currentMinute + 14) % 60
} else {
endHour = currentHour
endMinute = currentMinute + 14
}
return Period(name: "Period 6", start: "00:00", end: "\(endHour):\(endMinute)")
}
func placeholder(in context: Context) -> EndTimeEntry {
return EndTimeEntry(date: .now, displayPeriod: placeholderSixthPeriod, scheduleName: "Regular Day")
}
func getSnapshot(in context: Context, completion: @escaping (EndTimeEntry) -> ()) {
if context.isPreview {
completion(placeholder(in: context))
return
}
let entry = EndTimeEntry(date: .now, displayPeriod: placeholderSixthPeriod, scheduleName: "Regular Day")
completion(entry)
}
func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [EndTimeEntry] = []
let context = PersistenceController.shared.backgroundContext
let scheduleFetch = StoredScheduleOnDate.fetchRequest()
do {
let storedSchedules = try context.fetch(scheduleFetch)
let currentDate = Date()
if let todaySchedule = storedSchedules.first(where: {
Calendar.current.isDate($0.date!, equalTo: currentDate, toGranularity: .day)
})?.schedule?.asDayType() {
// Have an entry at midnight when schedules are needed
let morningStart = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: .now)!
let morningPeriod = Period(name: "Good morning", start: "00:00", end: todaySchedule.periods.first!.start)
let morningEntry = EndTimeEntry(date: morningStart, displayPeriod: morningPeriod, scheduleName: todaySchedule.name)
entries.append(morningEntry)
// Passing periods should show the next full period's end time.
// This means that an entry's date should be the past period's end, or the start in the first period's case.
let firstPeriod = todaySchedule.periods.first!
let firstPeriodEntry = EndTimeEntry(date: firstPeriod.getStartAsDate(), displayPeriod: firstPeriod, scheduleName: todaySchedule.name)
entries.append(firstPeriodEntry)
for index in 1..<todaySchedule.periods.count {
let entry = EndTimeEntry(date: todaySchedule.periods[index-1].getEndAsDate(), displayPeriod: todaySchedule.periods[index], scheduleName: todaySchedule.name)
entries.append(entry)
}
// Have an entry at the end of the day to have the start time of the next day shown
if let tomorrowSchedule = storedSchedules.first(where: {
Calendar.current.isDate($0.date!, equalTo: Calendar.current.date(byAdding: .day, value: 1, to: currentDate)!, toGranularity: .day)
})?.schedule?.asDayType() {
// At EOD, show tomorrow's start
let endOfDay: Date = todaySchedule.periods.last!.getEndAsDate()
let overnightPeriod: Period = Period(name: "Good night", start: todaySchedule.periods.last!.end, end: "00:00")
let overnightEntry = EndTimeEntry(date: endOfDay, displayPeriod: overnightPeriod, scheduleName: tomorrowSchedule.name, overrideDisplayDate: tomorrowSchedule.periods.first!.getStartAsDate())
entries.append(overnightEntry)
}
}
} catch {
fatalError("Could not fetch from Core Data for widget timeline. \(error)")
}
let tomorrowMorning = Calendar.current.date(bySettingHour: 0, minute: 1, second: 0, of: Calendar.current.date(byAdding: .day, value: 1, to: .now)!)!
let timeline = Timeline(entries: entries, policy: .after(tomorrowMorning))
completion(timeline)
}
}
struct EndTimeEntry: TimelineEntry {
let date: Date
let displayPeriod: Period
let scheduleName: String
let overrideDisplayDate: Date?
init(date: Date, displayPeriod: Period, scheduleName: String, overrideDisplayDate: Date) {
self.date = date
self.displayPeriod = displayPeriod
self.scheduleName = scheduleName
self.overrideDisplayDate = overrideDisplayDate
}
init(date: Date, displayPeriod: Period, scheduleName: String) {
self.date = date
self.displayPeriod = displayPeriod
self.scheduleName = scheduleName
self.overrideDisplayDate = nil
}
}
...
Hi Guys,
I want to support my client for enable the developer mode, But they not accept to connect with any other devices(Mac Xcode) to enable developer mode.
They are nearly 10 people to enable developer mode. But I think without mac we can't enable developer mode in some of devices. So I need a clarification with IOS versions. That's only we are excepting to list out which IOS versions don't have developer mode option default. Please list out that IOS versions
Like below:
default developer mode available IOS 17.4.1
default developer mode not available IOS 17.5.1
Hi,
I am developing an iOS application using React Native on the Expo platform with EAS. I have followed all of the Expo documentation for setting up my development environment, but in order to create a development build to test my app on my iPhone 12 mini, it says that I need to enable Developer Mode on my device.
The issue I'm running into is that when I go to Settings > Privacy & Security, here is no Developer Mode option as expected. I ensured that my device is registered in the Apple Developer portal, and I tried restarting my device multiple times to no avail. I also tried searching the developer forums for a solution, but the only solution I saw was to hook my device up to XCode which isn't an option since I'm developing my app on Windows using EAS.
Note that I'm running iOS 17.5.1 on my iPhone 12 mini.
Please let me know if there's anything I can do or anything I'm missing to enable Developer Mode on my device.
I have implemented the Large Title for UITableView correctly. The Navigation bar collapses when scrolling down the table view. However, when pulling to refresh, the Large Title moves down the screen instead of staying stationary. I suspect that this is the default behavior. Is there a way to keep the large title stationary when pulling downward to refresh the UITableView?
Hi,
I'm currently wrestling with the .chartXScale(domain:) modifier in order to get my Chart to display correctly. The basics of the Chart look like this.
Chart(measurements, id: \.timestamp) { measurement in
if let total = measurement.production?.total {
BarMark(
x: .value(
"Timestamp",
measurement.timestamp,
unit: .weekOfYear,
calendar: .current
),
y: .value(
"Solar production",
total
)
)
}
}
As anyone familiar with Charts can see, I sort data into columns based on what week of the year the measurements belong to. Some of them can be null, and when they are, I still want space in the Chart where a BarMark would've been to be taken up, like week number 4 in this example chart (in which I've defaulted all measurements that are null in week 4 to 0, for demonstration purposes):
To achieve that, as I understand, I'm meant to use the .chartXScale(domain:) modifier, but when I apply the following modifier...
.chartXScale(domain: firstDayOfMonth...firstDayOfNextMonth)
... (where the domain is from the first day of the month to the first day of the next month), to the code above, I end up with this weird half step when the last week of measurements are all null:
For reference, here's how the domain dates are set in my minimum reproducible example:
firstDayOfMonth = Calendar.current.date(from: Calendar.current.dateComponents([.year, .month], from: .now))!
firstDayOfNextMonth = Calendar.current.date(byAdding: .month, value: 1, to: firstDayOfMonth)!
Am I misusing this modifier somehow, or is this a bug? Would love some help figuring this out, thanks!
We are experiencing an issue with the Call Blocking and Identification feature in iOS 18 Beta. This feature was functioning correctly in iOS 17, but after updating to the iOS 18 Beta, it no longer works as expected
looks like iOS is blocking the number because we are getting notification but still we are getting the direct calls.
We have attached the
Kindly waiting for you replay.
Thanks.
when i use font-family:system-ui on the web, i found the text will be smaller on ios 18 beta, the problem also appear on ios 17 when using iphone 15 pro max.
It looks ok if i use font-family:PingFang SC instead of system-ui.
when use the css below, the text will be smaller than iOS17.
font-family:system-ui
If i use font-family: PingFang SC, that will be ok.
If system-ui was modified by system?
When having my iPhone connected to my Mac via USB cable, how can I take a screenshot of the home screen from a swiftUI app?
I tried using libimobiledevice (idevicescreenshot) but that requires install the developer disk image. When looking for it, it turns that my Xcode (version 15.4) only provides that kind of images up to iOS 16.4.
I have looked everywhere on this site, but couldn't fine the required image or otherwise, how to take the screenshot I need.
Thanks!
Hi! I find this code does not work as expected on iOS 17 simulator and device. It was working correctly with iOS 16:
struct ContentView: View {
@State private var numberText = ""
var color: Color {
let result = (Int(numberText) ?? 0) <= 0
if result {
return .black
}
return .red
}
var body: some View {
VStack {
TextField("Enter a number", text: $numberText)
.font(.title)
.foregroundStyle(
color
)
Text("Font color will turn red if number > 0")
.foregroundColor(.gray)
}
.padding()
}
}
I tried a workaround and it works:
struct ContentView: View {
@State private var numberText = ""
@State private var color = Color.black
func updateColor() ->Color {
let result = (Int(numberText) ?? 0) <= 0
if result {
return .black
}
return .red
}
var body: some View {
VStack {
TextField("Enter a number", text: $numberText)
.font(.title)
.foregroundStyle(
color
)
.onChange(of:numberText) {
color = updateColor()
}
Text("Font color will turn red if number > 0")
.foregroundColor(.gray)
}
.padding()
}
}
What is the latest IOS beta developer out
Hello,
Has anyone encountered issues with CoreBluetooth advertising and scanning between iOS 18/iPadOS 18 Beta 3 ? I'm want to know this is a bug or an intended change in behavior.
Issue Summary:
Central device on iOS 18/iPadOS 18 Beta 3 (foreground) and Peripheral device on iOS 17.5.1 (background) fail to communicate via BLE advertising.
The reverse setup or using non-iOS 18 devices works as expected.
Detailed Description:
I am developing an iOS/iPadOS application using CoreBluetooth for advertising and scanning. Here are the specifics of my setup:
The application uses a fixed BLE service UUID, and scanning is performed with the specified service UUID.
Background Modes Uses Bluetooth LE accessories and Acts as a Bluetooth LE accessory are enabled to allow advertising and scanning even when the app is in the background.
When the Central device is running iOS 18/iPadOS 18 Beta 3 and the app is in the foreground scanning, and the Peripheral device is running iOS 17.5.1 with the app in the background advertising, the Central device cannot receive the advertisements from the Peripheral device. ( CBCentralManagerDelegate.centralManager(_:didDiscover:advertisementData:rssi:) don't work.)
In the reverse scenario (Central on iOS 17.5.1 in the foreground scanning, and Peripheral on iOS 18/iPadOS 18 Beta 3 in the background advertising), the advertisements are received correctly.
Additionally, advertisements are received correctly in cases where both devices are not on iOS 18/iPadOS 18.
I am wondering if anyone else has encountered this issue or if there is any information available regarding whether this is a bug or an intended behavior change in iOS 18/iPadOS 18.
Thank you.
I am trying to use the Speech Synthesizer to speak the pronunciation of a word in British English rather than play a local audio file which I had before. However, I keep getting this in the debugger:
#FactoryInstall Unable to query results, error: 5 Unable to list voice folder Unable to list voice folder Unable to list voice folder IPCAUClient.cpp:129 IPCAUClient: bundle display name is nil Unable to list voice folder
Here is my code, any suggestions??
` func playSampleAudio() {
let speechSynthesizer = AVSpeechSynthesizer()
let speechUtterance = AVSpeechUtterance(string: currentWord)
// Search for a voice with a British English accent.
let voices = AVSpeechSynthesisVoice.speechVoices()
var foundBritishVoice = false
for voice in voices {
if voice.language == "en-GB" {
speechUtterance.voice = voice
foundBritishVoice = true
break
}
}
if !foundBritishVoice {
print("British English voice not found. Using default voice.")
}
// Configure the utterance's properties as needed.
speechUtterance.rate = AVSpeechUtteranceDefaultSpeechRate
speechUtterance.pitchMultiplier = 1.0
speechUtterance.volume = 1.0
// Speak the word.
speechSynthesizer.speak(speechUtterance)
}
One week before I encountered the problem, I excitedly installed the beta version of iOS 18 to my iPhone XR. Little did I know that that was the beginning of a nightmare for me. A week or so after the installment, my iPhone's screen suddenly went black and in a few seconds into a process that I found other people have described as a boot loop. This means that my iPhone will attempt to start by getting into the logo screen but then either will it start just for a few seconds before it turns off again or will it just go off. and then the process is repeated again and again. I found that this seems to be a common problem for many people out there who also installed the beta version of this software. I also tried to get help in an Apple Store but they just said that my phone was dead and there was nothing they could do. This is just outrageous! Can't believe that a company as rich as Apple will just release software with this kind of deleterious bugs out there and won't try to help their clients after such a huge mess the cause. Will never buy an iPhone again. You should really try to do better.
It’s so frustrating. Every single turn my phone’s crashed. It doesn’t matter what I do. I take a picture, crash. I browse the net, crash. I MAKE A CALL, CRASH. I DO ANYTHING AND IT CRASHES. Not the apps, the whole phone panics. The kind with the spinning logo on a black screen. I’m so over it. I wish I could go back to DB1.
any advice would be appreciated
Hello all,
We got app crashes on dataSource.apply(snapshot, animatingDifferences: false) after refactoring our tableView code to UITableViewDiffableDataSource. This doesn't happen every time.
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
var snapshot = getCurrentSnapshot()
snapshot.deleteItems([...])
snapshot.appendItems([...], toSection: section)
dataSource.apply(snapshot, animatingDifferences: false)
}
And the controller has deallocated before it.
Crash log:
controller (0x110a64800): deallocated
*** Assertion failure in NSInteger _UITableViewRowDataNumberOfRowsInSection(UITableViewRowData *__unsafe_unretained, NSInteger)(), UITableViewRowData.m:1761
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Requested the number of rows for section (4) which is out of bounds.'
*** First throw call stack:
(
0 CoreFoundation 0x0000000180491128 __exceptionPreprocess + 172
1 libobjc.A.dylib 0x000000018008412c objc_exception_throw + 56
2 Foundation 0x0000000180d11770 -[NSMutableDictionary(NSMutableDictionary) classForCoder] + 0
3 UIKitCore 0x0000000185538ad0 -[UITableViewRowData numberOfRowsInSection:] + 260
4 UIKitCore 0x00000001855052f0 -[UITableView _shouldDrawSeparatorAtBottomOfSectionForCellAtIndexPath:] + 152
5 UIKitCore 0x0000000185504dbc -[UITableView _updateSeparatorStateForCell:atIndexPath:] + 100
6 UIKitCore 0x0000000185504cf0 -[UITableView _updateSeparatorStateForVisibleCells] + 188
7 UIKitCore 0x00000001854f4bd0 -[UITableView _updateAnimationDidStopWithOldVisibleViews:finished:context:] + 1108
8 UIKitCore 0x00000001854f2630 __46-[UITableView _updateWithItems:updateSupport:]_block_invoke_4 + 36
9 UIKitCore 0x00000001857fcb1c __UIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK__ + 28
10 UIKitCore 0x00000001857fce24 -[UIViewAnimationBlockDelegate _sendDeferredCompletion:] + 100
11 libdispatch.dylib 0x000000010e5100f0 _dispatch_call_block_and_release + 24
12 libdispatch.dylib 0x000000010e51193c _dispatch_client_callout + 16
13 libdispatch.dylib 0x000000010e5215e4 _dispatch_main_queue_drain + 1228
14 libdispatch.dylib 0x000000010e521108 _dispatch_main_queue_callback_4CF + 40
15 CoreFoundation 0x00000001803f1a30 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
16 CoreFoundation 0x00000001803ec148 __CFRunLoopRun + 1936
17 CoreFoundation 0x00000001803eb5a4 CFRunLoopRunSpecific + 572
18 GraphicsServices 0x000000018e9fbae4 GSEventRunModal + 160
19 UIKitCore 0x00000001852f02e4 -[UIApplication _run] + 868
20 UIKitCore 0x00000001852f3f5c UIApplicationMain + 124
21 appName 0x0000000103e8b0dc $s22appNameySpySpys4Int8VGGXEfU_ + 192
22 appName 0x0000000103e8b480 _swift_se0333_UnsafeMutablePointer_withMemoryRebound + 900
23 appName 0x0000000103e8af30 main + 1320
24 dyld 0x000000010e409544 start_sim + 20
25 ??? 0x000000010e61a0e0 0x0 + 4536246496
26 ??? 0xca54000000000000 0x0 + 14579277893705138176
)
libc++abi: terminating due to uncaught exception of type NSException
So for my project it's a SwiftUI Project however if I Add '@objc' to expose this instance method to Objective-C it doesn't want it for some reason and the other error code is Argument of '#selector' refers to instance method 'refreshWebView' that is not exposed to Objective-C mainly this is the error I need to fix thanks in advance
this code is what's giving me the error
refreshControl.addTarget(self, action: #selector(refreshWebView(_:)), for: UIControl.Event.valueChanged)
this is for a pull to refresh the page
We currently have an Account Authentication Modification Extension in our iOS App so that users can update their passwords directly from within the Passwords section in the iOS Settings App.
On iOS 18 beta3 the extension is not executed from the new Passwords app. Instead the URL associated with the credentials is opened when choosing to change a password.
Will it still be possible to integrate with the new Passwords app or is this no longer supported?
https://developer.apple.com/wwdc24/10125 only mentions https://example.com/.well-known/change-password
Also, can we provide the information to the Passwords app that our service does not support verification codes? So that the "set up verification code" option is not displayed for our website in the Passwords app.
Our Ionic App running on iOS 17.5.1, crashed.
Attaching the crash report
crash report 1.txt