Select to view content in your preferred language

Issue using SDK 200.5 with XCode16, with code example

809
10
Jump to solution
09-05-2024 05:41 AM
HåkanDaxberg
Emerging Contributor

I have a project using arcgis-maps-sdk-swift 200.5. It builds with XCode 15.4 but now I´m testing XCode 16 and get some errors when trying to build.

Undefined symbol: ArcGIS.UniqueValue.__allocating_init(description: Swift.String, label: Swift.String, symbol: ArcGIS.Symbol?, values: [Any], alternateSymbols: [ArcGIS.Symbol]) -> ArcGIS.UniqueValue

Undefined symbol: ArcGIS.Graphic.attributes.getter : [Swift.String : Any]

Undefined symbol: ArcGIS.Graphic.__allocating_init(geometry: ArcGIS.Geometry?, attributes: [Swift.String : Any], symbol: ArcGIS.Symbol?) -> ArcGIS.Graphic

Undefined symbol: ArcGIS.Location.__allocating_init(position: ArcGIS.Point, horizontalAccuracy: Swift.Double, verticalAccuracy: Swift.Double, speed: Swift.Double, course: Swift.Double, isLastKnown: Swift.Bool, timestamp: Foundation.Date, additionalSourceProperties: [ArcGIS.Location.SourcePropertyKey : Any]) -> ArcGIS.Location

Example code:

 

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundStyle(.tint)
            Text("Hello, world!")
        }
        .padding()
    }
    func test() -> Void {
        let g = ArcGIS.Graphic()
    }
}

 

0 Kudos
2 Solutions

Accepted Solutions
Ting
by Esri Contributor
Esri Contributor

Thanks for reaching out. We are planning on a quick patch 200.5.1 soon after Xcode 16 is officially released, stay tuned!

Backstory: When Xcode 16 beta first came out, we noticed that some changes we made to squelch the warnings related to strict concurrency/existential/sendable causes the compiler to give these false errors in Xcode 16. We immediately raised the problem to Apple DTS team and they are aware of this problem and was working on a fix. We waited for about a month, but so far it hasn't been fixed in the latest Xcode 16 beta.

So the plan would be recompiling the framework once Xcode 16 is released, then release a patch for our developers.

View solution in original post

Nicholas-Furness
Esri Regular Contributor

ArcGIS Maps SDK for Swift 200.5.1 was released today. It addresses the compatibility issue with Xcode 16.

Once you update your Xcode projects to use 200.5.1, you will be able to use either Xcode 16 or Xcode 15.4. Depending on your project settings, you may need to address build warnings or errors after updating to ArcGIS Maps SDK for Swift 200.5.1 (see the release notes for more information).

The blog post here on Esri Community has been updated.

If you continue to experience issues, please DM me or let us know here in the forums.

View solution in original post

10 Replies
Ting
by Esri Contributor
Esri Contributor

Thanks for reaching out. We are planning on a quick patch 200.5.1 soon after Xcode 16 is officially released, stay tuned!

Backstory: When Xcode 16 beta first came out, we noticed that some changes we made to squelch the warnings related to strict concurrency/existential/sendable causes the compiler to give these false errors in Xcode 16. We immediately raised the problem to Apple DTS team and they are aware of this problem and was working on a fix. We waited for about a month, but so far it hasn't been fixed in the latest Xcode 16 beta.

So the plan would be recompiling the framework once Xcode 16 is released, then release a patch for our developers.

HåkanDaxberg
Emerging Contributor

Thanks for the information.

0 Kudos
Ting
by Esri Contributor
Esri Contributor

A quick update: Xcode 16.0 RC came out yesterday and we have confirmed that it didn't resolve these build errors. While we are escalating this problem to Apple DTS, it is likely that we'll ship a patch to mitigate this issue shortly. Again, this is a moving situation and we haven't committed to a certain solution yet.

HåkanDaxberg
Emerging Contributor

Great, do you have a timelite for that?

0 Kudos
Ting
by Esri Contributor
Esri Contributor

We cannot say for sure now, but we are looking at within a week after iOS 18's official release date, around September 20th.

0 Kudos
MikeLeavy
New Contributor

Why the artificial deadline of "after iOS 18's official release date"? You do realize that Xcode 16 RC is the blessed version of Xcode that Apple is requiring developers to use in order to target iOS 18, yes? It is, effectively, the official version of Xcode, and your software doesn't work with it. I would prefer that you just let the warnings fly and put out a working version of your SDK rather than force developers to wait a week after iOS 18's release date to start adding iOS 18 features. The way you have decided to approach this is by putting your clients at a competitive disadvantage for having chosen to use your software - how can you defend this decision?

0 Kudos
MikeLeavy
New Contributor

I'd like to also point out that iOS 18's release date is Sept. 16, not 20. You might have it confused with the iPhone release date. But again, tying your fixes to either of these release dates seems artificial when the toolchain you need in order to release a working SDK is and has been available for weeks now.

0 Kudos
Nicholas-Furness
Esri Regular Contributor

Hi @MikeLeavy.

As experienced iOS developers, the team is as excited to work with iOS 18 as everyone else, and we have been working closely with Apple to identify a solution since Xcode 16 RC was posted last week. It did surprise us that Xcode 16 RC did not address this Swift Concurrency compatibility issue since we had raised it with Apple early in the Xcode 16 beta and, historically, compatibility issues like this have often existed through the entire Xcode beta period only to be resolved in the RC. 

In our discussions with Apple last week, they did not completely discount the option that the Xcode bug could be fixed in final, but we expect it will not.

With that in mind, we will be publishing guidance today, and rest assured we're working hard to come up with a solution, which we hope to deliver this week.

In the meantime, if you want to use ArcGIS Maps SDK for Swift 200.5, you will need to do so with Xcode 15. ArcGIS Maps SDK for Swift 200.4 should work with Xcode 16, but I only mention that in case it helps to tide you over.

We recognize that for most, these options are not a good solution, and the current situation is highly frustrating.

I'll reply to this thread as soon as we have a solution.

Nicholas-Furness
Esri Regular Contributor