Code Monkey home page Code Monkey logo

Comments (17)

Jeanno avatar Jeanno commented on July 22, 2024 2

It's really bad when a "patch" update breaks dependants.

Generally speaking, the change to .dynamic should at least bump the minor version. That way you give yourself leeway when there is a critical security patch in the future.

Also when an xcode project has more than one build target, having them link to the same dynamic library is problematic. You can only have one "Embed and sign" and have the other one "Do not embed", which contributes to some other crashes in edge cases as well from what I observed.

from realm-swift.

igorvoytovich avatar igorvoytovich commented on July 22, 2024 1

@tgoyne

you can find the discussion here: firebase/firebase-ios-sdk#12557 (comment)

There was a problem with privacy manifest in static libraries for some time, but seems like everything is working normally now.

Hope this change can be made, so we can continue using the SDK the same way we’ve used for years.

from realm-swift.

shvetsjr avatar shvetsjr commented on July 22, 2024 1

Every dependency we used fixed their privacy manifests without making their library dynamic and only Realm did it. This caused us a lot of issue and at some point we even wanted to switch to SwiftData. Really hope we will be able to install Realm statically in the future.

from realm-swift.

nirinchev avatar nirinchev commented on July 22, 2024 1

There are workarounds proposed already, so we don't consider this issue to be a blocker. We're looking into options here, but at the same time, our top priorities are around issues that don't have workarounds, such as Xcode 16 support and a few other high impact tickets.

from realm-swift.

sync-by-unito avatar sync-by-unito commented on July 22, 2024

➤ PM Bot commented:

Jira ticket: RCOCOA-2360

from realm-swift.

tgoyne avatar tgoyne commented on July 22, 2024

Do you have any further information about what changes Apple has made to privacy manifest validation? I have not heard anything.

from realm-swift.

tgoyne avatar tgoyne commented on July 22, 2024

Validation for static libraries works, but the problem is that Xcode doesn't actually build static libraries; it builds object libraries which are a different thing that did not work when I last retested it after the May 1 deadline.

from realm-swift.

igorvoytovich avatar igorvoytovich commented on July 22, 2024

Ah, I get it now.

So, there is no way of installing SDK statically via SPM as it was before this change? The only option is to use RealmSwift with Embed & Sing, which would be dynamic installation, right?

We doubt how we should deal with this right now. Perhaps we should avoid using SPM specifically for Realm and consider other installation ways? Because we have many different dependencies, and for everyone else nothing seems to have changed after introduction of Privacy Manifests. (Firebase SDKs for example)

from realm-swift.

igorvoytovich avatar igorvoytovich commented on July 22, 2024

Every dependency we used fixed their privacy manifests without making their library dynamic and only Realm did it. This caused us a lot of issue and at some point we even wanted to switch to SwiftData. Really hope we will be able to install Realm statically in the future.

Same here.

At the moment we just don't know what to do next. I hope this will be changed in the next release so that the SDK can be updated and used normally.

from realm-swift.

nirinchev avatar nirinchev commented on July 22, 2024

We're going to investigate this and see if we can provide a better developer experience here. As a temporary workaround, you can either downgrade to 10.49.2 and copy the entries from the Realm privacy manifest to your app's privacy manifest or consume Realm through non-SPM package manager.

from realm-swift.

shvetsjr avatar shvetsjr commented on July 22, 2024

Hey, @nirinchev any update on this? Can't we simply remove type: .dynamic from the package like other do?

from realm-swift.

johnfrancmartin avatar johnfrancmartin commented on July 22, 2024

Also stuck on this, @nirinchev any updates?

from realm-swift.

igorvoytovich avatar igorvoytovich commented on July 22, 2024

Same for us. Really looking forward to a solution.

from realm-swift.

igorvoytovich avatar igorvoytovich commented on July 22, 2024

It's really bad when a "patch" update breaks a dependant.

Generally speaking, the change to .dynamic should at least bump the minor version. That way you give yourself leeway when there is a critical security patch in the future.

Also when an xcode project has more than one build target, having them link to the same dynamic library is problematic. You can only have one "Embed and sign" and have the other one "Do not embed", which contributes to some other crashes in edge cases as well from what I observed.

+1

IMO the best option would be to leave it as it was (without .dynamic) and to mention in docs that “due to some current Xcode bugs you’ll need to manually include some information in Privacy manifest when installing statically via SPM”.

from realm-swift.

nirinchev avatar nirinchev commented on July 22, 2024

We're not generally backporting fixes to old releases, so this being a minor or a patch release would have had no meaningful impact beyond automatically upgrading for people who configured their version range to be up to next minor.

That being said, I understand your frustration and it's undeniably annoying when what would seem like a trivial version bump results in more work and looking for workarounds. At the time we made the call, this felt like the lesser of two evils and we're still planning to try and mitigate it further. In the meantime my suggestion would be to switch to consuming the static xcframework directly or downgrade your dependency to a pre-.dynamic version.

from realm-swift.

shvetsjr avatar shvetsjr commented on July 22, 2024

Thanks for the replies @nirinchev, don't mean to annoy or add take much of your time, just curious, what are the complications, risks or issues with simple removing type: .dynamic from the package and slightly update docs? Pure interest question :)

from realm-swift.

nirinchev avatar nirinchev commented on July 22, 2024

The problem is that Xcode doesn't merge the privacy manifest for static targets, which then means that users will need to manually add the privacy entries from https://github.com/realm/realm-swift/blob/master/RealmSwift/PrivacyInfo.xcprivacy to your app's privacy manifest.

from realm-swift.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.