I've been working with ARKit recently while doing some memory leak profiling and noticed that when resetting (calling .run again) the ARSession using the .resetTracking option, there is a memory leak that the Leaks tool reports as coming from somewhere to do with vImageMapping_CreateFromMap_Image8U. I'm not sure if it is something that I'm doing incorrectly or if it an issue on ARKit's side.
Here is a simple code snippet of the SceneKit ViewController setup (modified from an Apple sample):
override func viewDidLoad() {
super.viewDidLoad()
let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))
button.backgroundColor = UIColor.black
button.setTitle("Reset", for: .normal)
button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)
self.view.addSubview(button)
sceneView.delegate = self
sceneView.session.delegate = self
}
@objc func buttonClicked() {
resetTracking()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
resetTracking()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
session.pause()
}
func resetTracking() {
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.horizontal, .vertical]
if #available(iOS 12.0, *) {
configuration.environmentTexturing = .automatic
}
session.run(configuration, options: [.resetTracking])
}
To recreate, Start the app (can snapshot a memory profile here to see there are no leaks),
hit the "reset" button we've created,
generate a memory profile
In the profile, there is an indication that there is a 409600 byte-malloc block that has leaked for every reset.
Post
Replies
Boosts
Views
Activity
I'm trying to get a list of beta builds from an API call that looks like "https://api.appstoreconnect.apple.com/v1/builds?limit=10&sort=-version&filter[app]=#{APP_ID}&filter[preReleaseVersion.version]=#{version}&include=buildBetaDetail", this used to work last I tried but recently I haven't been seeing anything in the included key of the response dictionary. Did the API change or am I doing something wrong?