Comments (17)
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.
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.
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.
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.
➤ PM Bot commented:
Jira ticket: RCOCOA-2360
from realm-swift.
Do you have any further information about what changes Apple has made to privacy manifest validation? I have not heard anything.
from realm-swift.
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.
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.
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.
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.
Hey, @nirinchev any update on this? Can't we simply remove type: .dynamic
from the package like other do?
from realm-swift.
Also stuck on this, @nirinchev any updates?
from realm-swift.
Same for us. Really looking forward to a solution.
from realm-swift.
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.
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.
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.
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)
- Xcode 16: Write Blocks Risk Data Races Warnings HOT 11
- Update all uses of _unsafeInheritExecutor to use #isolation instead HOT 1
- Code sign our published xcframeworks HOT 1
- Update Binding for iOS 18's API changes HOT 1
- Switch to building RealmSwift in Swift 6 mode HOT 1
- Investigate explicitly built modules for RealmSwift HOT 1
- Add support for logging categories HOT 1
- After upgrading to 10.52.0 our app crashes on launch when we attempt to observe a collection HOT 3
- App crash for iOS 12 using 'RealmSwift', '~> 3.20.0' HOT 5
- Delete Realm if file is an unsupported version HOT 1
- Is it possible to fully deallocate the Memory used by Realm HOT 4
- Doesn't Map value type work at all? HOT 3
- Multiple methods named 'initWithValue:' found with mismatched result, parameter type or attributes v10.50.1 HOT 2
- ObjectId does not conform to SortableType - sorted(by:ascending:) not working as expected HOT 3
- Namespace DYLD, Code 1 Library missing HOT 1
- RealmSwift Crashing on Xcode 16 beta 2 when used in XCFramework as Dependency HOT 1
- Support "Cascading/Inheritable" Writes HOT 10
- Realm crash when accessing PersistableEnum HOT 3
- 极个别用户数据会莫名删除清空 HOT 2
- Query Syntax: Incorrect NSPredicate When Using `.values` on a Map Property HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from realm-swift.