|
POST
|
Jake, how are things going with this issue? Is there anything else that we can help with? Thanks
... View more
03-30-2026
08:20 AM
|
0
|
0
|
428
|
|
POST
|
Killing the app with the app switcher will kill all downloads associated with the app, even ones started with background URLSessions. That is the case whether you use the ArcGISURLSession or your own URLSession. That is documented behavior from Apple. How do I got about wiring that up, assuming I'm using the ArcGIS SDK to download it? What do I need to do to get that resume functionality? To wire that up, you should just need to make the same exact request you made before with, when the app is re=launched. Make sure you are using `ArcGISEnvironment.backgroundURLSession`. So you need to save some sort of state for when you make a download, and remove that state when it is finished. If an app is launched and there were downloads in progress, you can tell from that state that was saved, and remake those requests.
... View more
03-25-2026
02:37 PM
|
0
|
0
|
505
|
|
POST
|
It might be best to create a new thread and outline in detail the problem that you are seeing and how to reproduce the issue. Please make sure the thread is in the correct community for the product you are asking about. Thanks
... View more
03-25-2026
10:44 AM
|
0
|
0
|
434
|
|
POST
|
If you can reproduce what your clients are seeing and get us a reproducible case we can look into what might be missing in order to make sure it's not interrupted. The download will run out of process when using the method you referenced above. It will continue to run when the app is backgrounded. It will even continue if iOS decides to terminate the app while the app is backgrounded. In that case where a backgrounded app is terminated, iOS will relaunch the app once the download is complete. However, there is a step required in that relaunch where you will need to re-request the download on relaunch and that will wire it up to the request that was completed in the background and it will finish immediately. If you are seeing issues with that, get us a reproducible case and we can help you out. iOS 26 has new the BGContinuedProcessingTask which simplifies all this and I highly recommend using that when available. Here is some code that you can use for iOS 26 along with that "experimental" (`_DownloadContoller`) API I mention above: #if os(iOS) && !targetEnvironment(macCatalyst)
public import BackgroundTasks
@available(iOS 26.0, *)
public extension BGContinuedProcessingTask {
/// Binds a download controller to this continued processing task such that
/// the download progress is monitored and the task progress is updated accordingly.
/// - Parameter downloadController: The download controller to bind to.
@MainActor
func _bind(to downloadController: _DownloadController) {
// Cancel download if task expires or is cancelled.
expirationHandler = {
downloadController.cancel()
}
// Set initial progress on the task.
let taskProgress = progress
taskProgress.totalUnitCount = 100
// Observe progress on the job and update the task.
Task {
let observer = downloadController.progress.observe(\.fractionCompleted, options: [.initial]) { progress, _ in
taskProgress.completedUnitCount = Int64(progress.fractionCompleted * 100)
}
do {
_ = try await downloadController.response
setTaskCompleted(success: true)
} catch {
setTaskCompleted(success: false)
}
observer.invalidate()
}
}
}
#endif And the usage of it will look something like this: @available(iOS 26.0, *)
func startContinuedProcessingTask(for download: _DownloadController, url: URL) throws {
let cptIdentifier = (Bundle.main.bundleIdentifier ?? "") + ".cpt.jobs" + ".\(UUID().uuidString)"
BGTaskScheduler.shared.register(forTaskWithIdentifier: cptIdentifier, using: .main) { task in
let task = task as! BGContinuedProcessingTask
task._bind(to: download)
}
let request = BGContinuedProcessingTaskRequest(
identifier: cptIdentifier,
title: "Downloading File",
subtitle: url.lastPathComponent
)
request.strategy = .fail
try BGTaskScheduler.shared.submit(request)
}
... View more
03-24-2026
04:23 PM
|
0
|
2
|
549
|
|
POST
|
@jakeHawkenTC wrote: Using the normal path for downloading an .mmpk file using the Esri SDK triggers a type of download that will be terminated if the app crashes, is killed, or is for some reason unloaded from memory by the OS. Please, can you provide details for what you mean by "normal path for downloading"? If you are talking about Jobs, it will utilize ways of keeping the download going. This session goes into great detail in the section on backgrounding, its worth watching: https://mediaspace.esri.com/media/t/1_a756nhrs If you are kicking off a download from a URL using ArcGISURLSession, you will want to use the method: `ArcGISEnvironment.backgroundURLSession.download(for:, to:)` That will utilize a background URLSession, which is out of process, for your download. Note: There is also experimental api that allow you to pause/resume downloads, etc like so: `let download = ArcGISEnvironment.urlSession._download(for: request, to: destinationURL)` This also uses a background URLSession. Now, if you are targeting iOS 26, you can use BGContinuedProcessingTask, and you can wrap a Job or download in one of those and that is a nice experience. If you want to go down that road let me know and I can provide sample code. As for this question: So, is there a way I can repurpose/reuse the credentials we employed in our `ArcGISAuthenticationChallengeHandler` type to authenticate this background download? No, there is not really a way to do that holistically. The authentication system is extremely complex and usually not just a matter of appending a token. The best way to make requests is to go through ArcGISURLSession. Again, the session I reference above from last year's dev summit talks through this. It's worth watching. Especially sections 2 and 3.
... View more
03-24-2026
03:20 PM
|
0
|
1
|
559
|
|
POST
|
It should be possible to add/remove graphics from the graphics overlay from any queue/actor/thread that you need to. GraphicsOveraly is Sendable and if you are compiling with Swift 6.0 or greater, you will see that the compiler lets you do as much. That being said, the thread-safe nature of GraphicsOverlay is the same no matter what version of Swift you are using. I recommend updating to Swift 6 or greater, however, because the compiler will let you know if you are violating thread-safety. You can find more information on our journey in Sensibility here: https://www.esri.com/en-us/software-engineering/blog/articles/full-send-how-data-race-safety-was-added-to-the-arcgis-maps-sdk-for-swift
... View more
07-10-2025
01:39 PM
|
0
|
0
|
413
|
|
POST
|
What version of Xcode are you using? If you start a clean project and add 200.5, then upgrade that project to 200.6 does it reproduce the issue? Do you have a reproducible case you can get to us?
... View more
05-19-2025
12:30 PM
|
0
|
11
|
2483
|
|
POST
|
We have found the cause of this issue and have fixed it. The fix will be available in our next release which is scheduled for August, 2025 and should be version number 200.8. Thank you for reporting this issue.
... View more
04-21-2025
11:36 AM
|
1
|
0
|
1325
|
|
POST
|
The ideas so far that I have are to try to use identify(on:...) as opposed to identifyLayers(...), in case there are one or two slower layers slowing down the call. Another idea is to try to pass 1 for the parameter value of maximumResults. Passing 1 for that allows it to use GPU test for identify which may speed it up a bit.
... View more
02-19-2025
09:30 AM
|
0
|
1
|
1267
|
|
POST
|
What kind of layer are you calling it on? (ie Vector tiled layer, feature layer, etc)
... View more
02-18-2025
07:11 PM
|
0
|
1
|
1287
|
|
POST
|
Why do you need to set the URLSession every time a map is loaded?
... View more
01-21-2025
03:59 PM
|
0
|
1
|
1893
|
|
POST
|
At some point in the app are you doing any projecting to arrive at the geometries that you are placing on the map and zooming to?
... View more
01-21-2025
09:59 AM
|
0
|
1
|
2964
|
|
POST
|
> we noticed that this configuration causes a memory leak each time the map is loaded. Does this occur more than once per run of your app? If so, how much memory is leaked in a typical run of the app?
... View more
01-21-2025
09:50 AM
|
0
|
1
|
1902
|
|
POST
|
This is expected based on the way our tool is implemented. We don't usually expect people to be able to accurately place vertices as fast as you are tapping in that video, so we don't expect it to be a problem in real life scenarios. However, if this is something you would like to see fixed, it might be something we can look at changing in our implementation. I'm not sure if it is feasible.
... View more
01-13-2025
02:52 PM
|
1
|
0
|
736
|
|
POST
|
Are you adding the graphics overlays to the mapview?
... View more
10-21-2021
06:35 AM
|
0
|
1
|
1538
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 04-21-2025 11:36 AM | |
| 1 | 01-13-2025 02:52 PM | |
| 1 | 12-04-2018 09:10 AM | |
| 1 | 07-08-2021 07:45 AM | |
| 1 | 06-14-2021 08:03 AM |
| Online Status |
Offline
|
| Date Last Visited |
03-31-2026
09:20 AM
|