Post

Replies

Boosts

Views

Activity

Orientation of ARAnchor and attached SCNNode appear to be different
If I manually add an ARAnchor to the ARSession, I can see it's transform is updated as ARKit tracks the world around it. This is reflected in an attached SCNNode, with the nodes simdWorldTransform property matching the transform of the anchor. However, I've noticed the nodes' simdEulerAngles is different. If I derive euler angles from the transform of the ARAnchor, it gives me the same as if I derive them from the simdWorldTransform of the SCNNode. But these are different to the nodes simdEulerAngles, and never update. Is there a difference on how the simdEulerAngles of the node are caculated, and how can I the same updated values directly from the ARAnchor?
1
0
695
Nov ’20
CGImageDestinationCopyImageSource no longer merges metadata on iOS 15
As part of our workflow we update exif data using the Core Image API. Specifically we get metadata from an original Image, take the metadata, modify the metadata and then use CGImageDestinationCopyImageSource() to merge the new metadata into a copy of the original image. We have found that if we compile to an iOS 15 device from XCode 13, the updated metadata is no longer merged in. The following test code demonstrates the problem. (in order for it to work for you, you'll need to change the image input, and make sure to change an exif tag that exists in your image) The test will pass if the target device is below iOS 15, but fail if on iOS 15   func testCGImageDestinationCopyImageSource() throws {     guard let imageURL = Bundle(for: self.classForCoder).url(forResource: "Image_000001", withExtension: "jpg") else {       XCTFail()       return     }     // Work with the image data     let originalData = try Data(contentsOf: imageURL)     // Create source from data     guard let imageSource = CGImageSourceCreateWithData(originalData as CFData, nil) else {       XCTFail()       return     }     guard let UTI: CFString = CGImageSourceGetType(imageSource) else {       XCTFail()       return     }     // Setup a new destination to copy data too     let imageData: CFMutableData = CFDataCreateMutable(nil, 0)     guard let destination = CGImageDestinationCreateWithData(imageData as CFMutableData, UTI, 1, nil) else {       XCTFail()       return     }           // Get the metadata     var mutableMetadata: CGMutableImageMetadata     if let imageMetadata = CGImageSourceCopyMetadataAtIndex(imageSource, 0, nil) {       mutableMetadata = CGImageMetadataCreateMutableCopy(imageMetadata) ?? CGImageMetadataCreateMutable()     } else {       mutableMetadata = CGImageMetadataCreateMutable()     }     // Inspect and check the old value     guard let tag = CGImageMetadataCopyTagMatchingImageProperty(mutableMetadata,                                   kCGImagePropertyExifDictionary,                                   kCGImagePropertyExifLensModel) else {       XCTFail()       return     }     guard let originalValue = CGImageMetadataTagCopyValue(tag) as? String else {       XCTFail()       return     }     XCTAssertEqual(originalValue, "iOS.0")     // Set a new value in the metadata     CGImageMetadataSetValueMatchingImageProperty(mutableMetadata,                            kCGImagePropertyExifDictionary,                            kCGImagePropertyExifLensModel, "iOS" as CFString)     // Ensure new value is set in the metadata     guard let newTag = CGImageMetadataCopyTagMatchingImageProperty(mutableMetadata,                                   kCGImagePropertyExifDictionary,                                   kCGImagePropertyExifLensModel) else {       XCTFail()       return     }     guard let newValue = CGImageMetadataTagCopyValue(newTag) as? String else {       XCTFail()       return     }     XCTAssertEqual(newValue, "iOS")     // Combine the new metadata with the original image     let options = [       kCGImageDestinationMetadata as String : mutableMetadata,       kCGImageDestinationMergeMetadata as String : true       ] as [String : Any]     guard CGImageDestinationCopyImageSource(destination, imageSource, options as CFDictionary, nil) else {       XCTFail()       return     }     // Create a new source from the mutated data     guard let newSource = CGImageSourceCreateWithData(imageData as CFData, nil) else {       XCTFail()       return     }     // Get a new copy of the metadata     var mutableMetadata2: CGMutableImageMetadata     if let imageMetadata2 = CGImageSourceCopyMetadataAtIndex(newSource, 0, nil) {       mutableMetadata2 = CGImageMetadataCreateMutableCopy(imageMetadata2) ?? CGImageMetadataCreateMutable()     } else {       mutableMetadata2 = CGImageMetadataCreateMutable()     }     // Inspect and check the changed value     guard let updatedTag = CGImageMetadataCopyTagMatchingImageProperty(mutableMetadata2,                                   kCGImagePropertyExifDictionary,                                   kCGImagePropertyExifLensModel) else {       XCTFail()       return     }     guard let updatedValue = CGImageMetadataTagCopyValue(updatedTag) as? String else {       XCTFail()       return     }     XCTAssertEqual(updatedValue, "iOS")   }
4
0
2.0k
Sep ’21
App Store Connect won't let me manage my Testflight builds
Since late last week, it seem I can't manage my Testflight builds, I can upload them, but I cannot manage the compliance, I cannot edit the testing details, I cannot add testing groups to the build. I have all the correct permissions, just nothing works. I can add new versions and edit them in the Apps section, but I just can't seem to do anything with Testflight. I have the App Manager, Customer Support and Developer roles for all our apps. I've tried different browsers, restarting, logging in from a different device, it doesn't work. I've sent feedback, but I doubt that will get looked at promptly. With it being holiday season, we have limited people in the office, and we could be in the position where we are blocked from releasing new versions, so this is pretty urgent
1
0
572
Aug ’22
Going back to ARKit view in Navigation Stack causes application crash with iPhone 14 Pro
We started detecting crashes with our iPhone 14 Pro and Pro Max devices when going back to an ARKit view in a navigation stack. On going back to the view, the app crashes out. we get stack traces similar to this: Crashed: com.apple.arkit.capture 0 libsystem_kernel.dylib 0x7200 __pthread_kill + 8 1 libsystem_pthread.dylib 0x71ac pthread_kill + 268 2 libsystem_c.dylib 0x20ca0 abort + 180 3 AppleCV3D 0x16340e8 CV3DVIOAlignAndMergeMaps + 22728820 4 AppleCV3D 0xa8f3a8 CV3DVIOAlignAndMergeMaps + 10519348 5 AppleCV3D 0xa9c3fc CV3DVIOAlignAndMergeMaps + 10572680 6 AppleCV3D 0xa9c294 CV3DVIOAlignAndMergeMaps + 10572320 7 AppleCV3D 0xa9b934 CV3DVIOAlignAndMergeMaps + 10569920 8 AppleCV3D 0xa9cfcc CV3DVIOAlignAndMergeMaps + 10575704 9 AppleCV3D 0xad598 CV3DVIOAlignAndMergeMaps + 156964 10 ARKitCore 0x7d80 -[ARWorldTrackingTechnique processData:] + 4328 11 ARKitCore 0x6bdc -[ARParentTechnique processData:onTechniques:] + 188 12 ARKitCore 0x85b8 -[ARParentTechnique processData:] + 64 13 ARKitCore 0x6bdc -[ARParentTechnique processData:onTechniques:] + 188 14 ARKitCore 0x85b8 -[ARParentTechnique processData:] + 64 15 ARKitCore 0x8f58 -[ARSession sensor:didOutputSensorData:] + 728 16 ARKitCore 0x3664c -[ARDepthSensor pointCloudDataOutput:didOutputPointCloudData:timestamp:connection:] + 912 17 AVFCapture 0x6c9cc -[AVCapturePointCloudDataOutput _processSampleBuffer:] + 268 18 AVFCapture 0x6c724 __52-[AVCapturePointCloudDataOutput _updateRemoteQueue:]_block_invoke + 88 19 CMCapture 0x11ffd0 __FigRemoteOperationReceiverCreateMessageReceiver_block_invoke + 308 20 CMCapture 0x2e40fc __rqReceiverSetSource_block_invoke + 256 21 libdispatch.dylib 0x3fdc _dispatch_client_callout + 20 22 libdispatch.dylib 0x746c _dispatch_continuation_pop + 504 23 libdispatch.dylib 0x1aa58 _dispatch_source_invoke + 1588 24 libdispatch.dylib 0xb56c _dispatch_lane_serial_drain + 376 25 libdispatch.dylib 0xc214 _dispatch_lane_invoke + 436 26 libdispatch.dylib 0xd4f8 _dispatch_workloop_invoke + 1780 27 libdispatch.dylib 0x16e10 _dispatch_workloop_worker_thread + 652 28 libsystem_pthread.dylib 0xdf8 _pthread_wqthread + 288 29 libsystem_pthread.dylib 0xb98 start_wqthread + 8 I managed to reproduce the crash with a simple demo project, with some small modifications to an AR app XCode template. Simply adding the initial view to a UINavigationViewController, and having another view controller to push onto the stack after the AR view. The issue only seems to happen on iPhone 14 Pro and iPhone 14 Pro max, older devices seem unaffected. At least, those are the latest iPhones we have here for testing. I raised an issue using the feedback app, ref FB11595282, we really need to escalate this, but there doesn't seem to be a way to do it
1
1
797
Sep ’22
iPhone has become completely inaccessible due to app install notification on Lock screen
One of our iPhones has become completely inaccessible after a popup has appeared on the lock screen to install an internal build from bitrise.io The message reads: ""app.sbitrise.io" would like to install "OurApp"" There are buttons to install or cancel. Neither works. Tapping the screen anywhere else does nothing. Trying to power down the device, the swipe action to turn off the phone is not accessible. Holding the lock screen and volume up buttons for longer makes the iPhone emit an alarm sound. The iPhone appears to be completely inaccessible.
2
0
477
Jan ’23