Comments (16)
@liamjones The 'VERSIONING_SYSTEM' => 'apple-generic'
was used very old versions, and we simply forgot to remove it in #4163 🙈. And by "we" I actually mean me!
from realm-js.
@kneth, Yes, I installed the version you shared but it is pending to deploy for development review due to the urgency. Once I receive any update regarding that I will share it here.
from realm-js.
➤ PM Bot commented:
Jira ticket: RJS-2810
from realm-js.
@aliza-khu Thank you for reporting, and hinting which categories we need to include. We will try to address the issue as soon as possible - as you know our first attempt failed.
from realm-js.
@aliza-khu Thank you for reporting, and hinting which categories we need to include. We will try to address the issue as soon as possible - as you know our first attempt failed.
@kneth, Pleasure. Can you please add the PrivacyInfo.xcprivacy ASAP. As 1st, May is too close now(Apple deadline for next release).
from realm-js.
@aliza-khu our understanding is that the realm-js SDK is not covered by the list of 3rd party SDKs that are covered by the requirement to have a privacy manifest: https://developer.apple.com/support/third-party-SDK-requirements/ by May 1st. So if you only use realm-js and not realm-swift, you should not be affected by the May 1st deadline.
from realm-js.
@nirinchev, Have you tried the command: sh required_reason_api_binary_scanner.sh {directory}
refer: https://github.com/Wooder/ios_17_required_reason_api_scanner/blob/main/required_reason_api_binary_scanner.sh
While executing this command I found the app binary file generated contains the statvfs method which only be found in the realm library I used.
Ref: Used symbols in binary ./XCFrameworkIntermediates/RealmJS/librealm-js-ios.a: fstat, stat, statvfs
The method statvfs relying under the privacy Declaration of the required reason API category due to which the app store asking the same for my app as using the realm library.
Feel free to ask the query.
from realm-js.
@aliza-khu We are trying to figure out how to fix it, and we would like to ask you to try the following:
- Add the following line to
node_modules/realm/RealmJS.podspec
(after thes.frameworks
line):
s.resource_bundles = { 'realm_js_privacy' => ['PrivacyInfo.xcprivacy'] }
- Add the following file as
node_modules/realm/PrivacyInfo.xcprivacy
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
</dict>
</array>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>
In my simple RN app, I don't see Ref: Used symbols in binary ./XCFrameworkIntermediates/RealmJS/librealm-js-ios.a: fstat, stat, statvfs
after adding it. If you can confirm, our confidence of a solution is higher.
from realm-js.
@kneth, I follow the instructions you provided and also refer to others and how they handle them. I created a sample react-native project and added only the realm dependency. Please use the link I shared, download it and follow the below instructions to reach the actual problem.
Link: https://drive.google.com/file/d/1mZ9-GbHf8xR6XUet3HFPeWqnL9dG4z1r/view?usp=sharing
Steps:
- Extract the above link go to RealmPrivacy/ios directory and hit the command
pod install
. - Open RealmPrivacy.xcworkspace with Xcode.
- Build the project, From Xcode menu Product -> Build.
- Download required_reason_api_binary_scanner.sh file into your system from this link: https://github.com/Wooder/ios_17_required_reason_api_scanner/blob/main/required_reason_api_binary_scanner.sh
- Open the Terminal and change the directory to where required_reason_api_binary_scanner.sh file downloaded in the system.
- Hit command
sh required_reason_api_binary_scanner.sh /Library/Developer/Xcode/DerivedData/RealmPrivacy-<anything>/Build/Products/Debug-iphoneos
and you will see the below log:
As you can see it says realm somewhere used directly or indirectly statvfs method. For your reference, you can visit this page: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278397 where Apple has a list of methods due to which realm has to declare the NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryDiskSpace in its PrivacyInfo.xcprivacy file.
Feel free to ask any query.
from realm-js.
@aliza-khu We have used your app to test in #6642. So far we have only validated the app locally, and we might want to upload the app (or a similar one) to Apple App Store for review. We plan to create a prerelease tomorrow or Friday for you to test.
from realm-js.
@kneth, Okay, Thank You!
from realm-js.
@aliza-khu We have released v12.8.1-alpha.0 with a privacy manifest which we believe solve the issue.
Please try to upgrade (npm install [email protected]
) and give us feedback before we do the final release.
from realm-js.
@aliza-khu Did you have a chance to install 12.8.1-alpha.0?
from realm-js.
I'm hitting the "asset validation failed" issue too. We're on Realm 11 but I backported the patch (both the old and new versions).
Somehow, there's a binary ending up in the resource bundle? I've not yet worked out why.
Realm's resource bundle:
An equivalent for another RN native module, react-native-device-info:
I don't really see a difference in the podspec with how Realm is doing it vs react-native-device-info: https://github.com/react-native-device-info/react-native-device-info/blob/98de4817c8911349023af5725f0a789dabb8641c/RNDeviceInfo.podspec#L17
The binary name always seems to match the resource bundle name, with the old patch it was realm_js_privacy
, with the new one it's RealmJS
.
from realm-js.
Okay, I found the cause of the issue, it's the 'VERSIONING_SYSTEM' => 'apple-generic'
definition in the podspec. I've removed it locally and the bundle only contains the Info.plist
and the PrivacyInfo.xcprivacy
now.
Removing it doesn't seem to break the app but I don't know why Realm was setting this - possibly the Realm code is now missing versioning information it used to rely on?
@kneth you probably need this in addition to what's already been done in PR #6715
from realm-js.
Actually, my mistake @kneth, it's already gone in 12.10-rc.0, it's only an issue for me since I'm backporting the patch to 11. 🙏
from realm-js.
Related Issues (20)
- libary instalation issue HOT 6
- after libary install facing below issue HOT 4
- Custom paths do not work when using sync HOT 1
- Data Loss in Nested Objects When Using Spread Operator for Update in Realm JS HOT 6
- Test helper waitForConnectionState is not doing anything HOT 1
- Provide defaults for `useUser()`'s generic type parameters HOT 2
- > I completely forgot I had opened this issue. I did manage to fix this back in the day but forgot to update... Back then I seemed to be the only one in the whole world with this problem :P HOT 4
- Generate SRI hash for our `realm-web` IIFE bundle HOT 1
- Revisit our workaround for flushing the microtask queue after calls from C++ into JS HOT 1
- RN event loop stuck when using realm with an expo development build HOT 9
- Refactor throwing uncaught exceptions from callbacks dispatched onto the event loop from C++ HOT 1
- Error: Realm at path *** already opened with a different schema mode in React Native HOT 4
- Package path . is not exported from package HOT 5
- 'object type 'f' not found in schema' occurs when updating the application via code push appcenter HOT 4
- Remapped Property Key Not Working with Sorting HOT 1
- Keep login information persistent with 12.0.0-browser.2 HOT 3
- toJSON() serialization of BSON.ObjectId to String HOT 1
- `@realm/react`: Passing an app as a prop to `AppProvider` HOT 1
- Error: Database has an unsupported version (24) and cannot be upgraded HOT 2
- Gradle lint error with 12.10.0 and yarn errors with 12.11.1 HOT 4
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-js.