Post not yet marked as solved
In order to get more accurate compass data it seems that iOS devices with a simcard installed can provide better results. To distinguish between data delivered I would like to retrieve a status telling me if there is a simcard available and connected to the mobile network or not. All recommendations are pointing to the deprecated CoreTelephony functions which are obsolete since I am working with iOS17 devices.
Is there a way to check if the device uses a simcard or not?
I have a tracking issung with the latest beta 17.4 and want to know if anyone encountered the same problem.
My app is using the pause=false functionality for multiroom that apple provided to let the ARSession run in the background:
roomCaptureView?.captureSession.stop(pauseARSession: false)
When resuming the scan/scanning the next room I initialize a new RoomCaptureView with the running ARSession:
let roomCaptureView = RoomCaptureView(frame: rcvc.view.bounds, arSession: arSession!)
This worked fine on all previous versions and different devices. Since the update to 17.4 I noticed that the tracking will be lost after initializing the next scan which feels like the pauseARSession is not working (the ARSession has still the same ID)
Devices:
This behaviour/error does not occur on devices with 17.3 or lower: 15 Pro Max, 14 Pro Max, 13 Pro
This behaviour/error occures on devices with 17.4: 15 Pro Max, 14 Pro Max
If anyone has noticed the same issue I would like to know that I'm not the only one. Thanks.
Post not yet marked as solved
A case occured where the Structure Builder is crashing with EXC_BAD_ACCESS and the error cannot be handled without the app crashing.
I have two minimalistic models, one even reduced to the minimum of the "coreModel" itself. (See attachment)
Each model alone in the StructureBuilder works fine.
Using both causes the crash.
Has anyone found a way to handle this error without the app crashing?
override func viewDidLoad() {
super.viewDidLoad()
let capturedRooms: [CapturedRoom] = [
loadCapturedRoom(fileName: "appleModel1"),
loadCapturedRoom(fileName: "appleModel2")
]
buildStructure(capturedRooms)
}
func buildStructure(_ capturedRooms: [CapturedRoom]) {
let structureBuilder = StructureBuilder(options: [])
Task {
print("----- START BUILDING STRUCTURE -----")
do {
let capturedStructure = try await structureBuilder.capturedStructure(from: capturedRooms)
} catch {
print("----- FAILED BUILDING STRUCTURE -----")
}
// Crashing with: EXC_BAD_ACCESS
// This part will never be reached
print("----- FINISH BUILDING STRUCTURE -----")
}
}
func loadCapturedRoom(fileName: String) -> CapturedRoom {
do {
guard let jsonFileURL = Bundle.main.url(forResource: fileName, withExtension: "json") else {
fatalError("JSON file not found.")
}
let data = try Data(contentsOf: jsonFileURL)
return try JSONDecoder().decode(CapturedRoom.self, from: data)
} catch {
fatalError(error.localizedDescription)
}
}
appleModel1.json
appleModel2.json
Post not yet marked as solved
I got multiple crashes with the issue that the app has crashed in the SlamEngine during CV3DSLAMAnchorUpdateCopySessionID. There is no pattern when this occurs and I do not know how to reproduce this error but since it is occuring multiple times I thought i will ask in this forum if anyone has a similar issue or knows a fix for this.
Post not yet marked as solved
How can i draw a CapturedRoom.Surface.Curve in Scenekit? Is there a way
by using an UIBezierPath or by splitting it up into segments?