Skip to content

Conversation

@TheRogue76
Copy link
Contributor

@TheRogue76 TheRogue76 commented Jan 26, 2025

Facebook SDK 18 introduced Google Privacy Sandbox adservices API, and when this SDK was updated to 18, that change was pulled in here in #595. This means that if a user has a package that tries to declare the same resource either A) The user has to do this override in their AndroidManifest or B) We do it here like how react-native-google-mobile-ads does it

Test Plan:

  1. I made the changes locally on my own project in Android Studio and made sure that it compiled successfully:
Screenshot 2025-01-26 at 09 01 40
  1. I made the change to the source code, changed the fork's example apps's npm package to github:TheRogue76/react-native-fbsdk-next and pulled my latest changes, made sure that it compiled successfully (Metro was giving warnings that the module doesn't exist in the simulator, but it did compile and i double checked that my manifest merger change in Android was present):
Screenshot 2025-01-26 at 09 03 49

Let me know if there is a better way of testing this locally. In Lottie, we link the package locally so changes could be pulled from the code right next to it so the example app can test what is already there

@TheRogue76 TheRogue76 changed the title chore: add override for the new AD_SERVICES_CONFIG introduced in V18 fix: add override for the new AD_SERVICES_CONFIG introduced in V18 Jan 26, 2025
@TheRogue76 TheRogue76 changed the title fix: add override for the new AD_SERVICES_CONFIG introduced in V18 fix: add replace for the new AD_SERVICES_CONFIG introduced in V18 Jan 26, 2025
@mikehardy mikehardy added the pending-merge Just waiting on clean CI test run. Any maintainer should feel free to merge if CI is passing. label Jan 26, 2025
Copy link
Collaborator

@mikehardy mikehardy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great for the XML - I added in the explanatory comment but I think this will do the trick, thank you!

@mikehardy mikehardy merged commit d94ba92 into thebergamo:master Jan 26, 2025
5 checks passed
@mikehardy mikehardy removed the pending-merge Just waiting on clean CI test run. Any maintainer should feel free to merge if CI is passing. label Jan 26, 2025
github-actions bot pushed a commit that referenced this pull request Jan 26, 2025
## [13.4.1](v13.4.0...v13.4.1) (2025-01-26)

### Bug Fixes

* **android:** handle AD_SERVICES_CONFIG manifest merge collision in SDK v18 ([#600](#600)) ([d94ba92](d94ba92))
@github-actions
Copy link

🎉 This PR is included in version 13.4.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit to holy-gd/react-native-fbsdk-next that referenced this pull request Nov 11, 2025
## 1.0.0 (2025-11-11)

### ⚠ BREAKING CHANGES

* **android:** upstream notes are vague, but they say:
"More use case for Integrity is supported. Apps violating
Meta’s Policy will no longer be allowed to send Traffic"
* **deps:** cocopaods >= 1.12 is required for privacy manifests
* **ios:** upstream login / limited login functionality changed,
https://developers.facebook.com/blog/post/2024/03/28/changes-made-to-fb-login-sdk/
instructs how to adapt. Most likely you will want to switch to
the relatively new "Limited Login" functionality.
* **sdks:** facebook-ios-sdk requires 2 additional iOS imports in AppDelegate, see step 3.2 of install guide
They are specifically:
new import 1 - `#import <AuthenticationServices/AuthenticationServices.h>`
new import 2 - `#import <SafariServices/SafariServices.h>`
* **sdks:** iOS / tvOS minimum deployment version now 12+. Stay on older version to support iOS/tvOS 11
* **expo, ios:** Only affects Expo users: If you use Expo, the expo config plugin no longer includes iosUserTrackingPermission by default. No one else is affected. If you specified "false" already in app.json for this value you are not affected.
* **sdk-v14:** per the underlying SDKs changes, OpenGraph share APIs have been
* **sdks:** this version uses new major versions of the underlying SDKs and has breaking changes:

- iOS mininum target now 11, alter your Podfile and in project.pbxproj as needed
- Xcode 13+ required going forward. Xcode 12 not supported
- Share dialog description and title were deprecated in v12,  removed now
- Client access token required: configure on Facebook console and in the app
- GMS AD_ID Android Permission added by native SDK by default, use AndroidManifest tools:remove if unwanted

Please note the Expo config plugin has not been updated yet to handle client access token, use v12 if you need Expo config plugins. Follow thebergamo#228 for updates or post a PR if this is important to you. Thanks!
* **release:** use conventional commits style for commit parsing
* update dependencies
* migrate to typescript (thebergamo#155)
* **ios:** iOS minimum 10.0, getAdvertiserID always null on iOS, setAdvertiserTrackingEnabled always returns true on iOS
* **app-events:** upstream SDKs removed updateUserProperties, there is no replacement
* Added the need to initialize the SDK on iOS on developer side.

* Merge pull request #2 from rnike/feature/wrap-initialize-sdk ([a7160da](a7160da)), closes [#2](#2)

### Features

* add clearUserID to AppEventsLogger (`setUserId(null)` throws exception from SDK) ([thebergamo#185](https://github.com/holy-gd/react-native-fbsdk-next/issues/185)) ([03306a6](03306a6))
* add logProductItem ([thebergamo#99](https://github.com/holy-gd/react-native-fbsdk-next/issues/99)) ([2f2b49a](2f2b49a))
* Add reauthorizeDataAccess method to LoginManager ([thebergamo#204](https://github.com/holy-gd/react-native-fbsdk-next/issues/204)) ([4aa7ff6](4aa7ff6))
* Add setAppID ([thebergamo#108](https://github.com/holy-gd/react-native-fbsdk-next/issues/108)) ([0c48a7e](0c48a7e))
* add setClientToken method ([thebergamo#428](https://github.com/holy-gd/react-native-fbsdk-next/issues/428)) ([791bfda](791bfda))
* add support for new architecture in compatibility mode ([thebergamo#505](https://github.com/holy-gd/react-native-fbsdk-next/issues/505)) ([7fda601](7fda601))
* adopt v18.0.0 of facebook-ios-sdk and facebook-android-sdk ([thebergamo#595](https://github.com/holy-gd/react-native-fbsdk-next/issues/595)) ([c325978](c325978))
* **android, sdks:** use facebook-android-sdk v12+, target/compile SDK 31 ([ef8363b](ef8363b))
* **android:** adopt facebook-android-sdk 17.0.0 ([c9cf51e](c9cf51e))
* create expo config plugin ([thebergamo#205](https://github.com/holy-gd/react-native-fbsdk-next/issues/205)) ([d44e360](d44e360))
* **EventLogger:** add type for AppEvents and AppEventsParams ([f696cdf](f696cdf))
* export all module types ([thebergamo#173](https://github.com/holy-gd/react-native-fbsdk-next/issues/173)) ([bd7f968](bd7f968))
* Export predefined app event names and parameters ([thebergamo#15](https://github.com/holy-gd/react-native-fbsdk-next/issues/15)) ([7ad2822](7ad2822))
* **expo:** upgrade expo config plugin to v51 ([thebergamo#577](https://github.com/holy-gd/react-native-fbsdk-next/issues/577)) ([a5b625c](a5b625c))
* implement initialize sdk ([3f81f47](3f81f47))
* **ios, expo:** bump Expo Adapters minimum target from 12.0 to 13.0 ([thebergamo#352](https://github.com/holy-gd/react-native-fbsdk-next/issues/352)) ([842a0ff](842a0ff))
* **ios, sdk:** bump facebook-ios-sdk to 12.3.2 ([7240a0d](7240a0d))
* **ios, sdk:** facebook-ios-sdk from 12.1.0 to 12.2.1 ([3af336c](3af336c))
* **ios, sdk:** upgrade to FBSDK version 9.3.x ([thebergamo#45](https://github.com/holy-gd/react-native-fbsdk-next/issues/45)) ([b2ea364](b2ea364))
* **ios:** adopt facebook-ios-sdk version 17.0.0 ([aa1d081](aa1d081))
* **ios:** AEM logger ([thebergamo#165](https://github.com/holy-gd/react-native-fbsdk-next/issues/165)) ([be1e861](be1e861))
* **ios:** make all permitted user profile fields available when using limited login ([thebergamo#582](https://github.com/holy-gd/react-native-fbsdk-next/issues/582)) ([b297eb6](b297eb6))
* **ios:** update facebook-ios-sdk to 17.1+, semver minor allowed ([d237632](d237632))
* **ios:** upgrade facebook-ios-sdk to v12 ([thebergamo#132](https://github.com/holy-gd/react-native-fbsdk-next/issues/132)) ([d813153](d813153))
* **ios:** Upgrade to Facebook iOS SDK 11.2.1 ([609c56f](609c56f))
* Limited login and Profile for IOS with type def ([thebergamo#18](https://github.com/holy-gd/react-native-fbsdk-next/issues/18)) ([ba45840](ba45840))
* **sdk-v14:** update to v14 of sdks, deprecated OpenGraph share APIs removed ([4c5785a](4c5785a)), closes [/github.com/facebook/facebook-android-sdk/blob/main/CHANGELOG.md#1400](https://github.com/holy-gd//github.com/facebook/facebook-android-sdk/blob/main/CHANGELOG.md/issues/1400)
* **sdks:** new v15 SDKs, iOS requires minimum iOS/tvOS of 12 now ([f6dc589](f6dc589))
* **sdks:** Update to v13 of native SDKs ([thebergamo#221](https://github.com/holy-gd/react-native-fbsdk-next/issues/221)) ([493a638](493a638))
* **sdks:** Upgrade FBSDK to 16.1.3 ([thebergamo#441](https://github.com/holy-gd/react-native-fbsdk-next/issues/441)) ([5281c2a](5281c2a))
* **sdk:** use facebook-ios-sdk 14.1.0 ([thebergamo#297](https://github.com/holy-gd/react-native-fbsdk-next/issues/297)) ([aba6afa](aba6afa))
* **settings:** Expose setAppName, setGraphAPIVersion, setAutoLogAppEventsEnabled & setAdvertiserIDCollectionEnabled methods ([e718501](e718501))
* **test:** add jest tests and mock file for library users ([thebergamo#140](https://github.com/holy-gd/react-native-fbsdk-next/issues/140)) ([cc904e7](cc904e7))
* **test:** add testID optional type to login button for use in testing ([thebergamo#101](https://github.com/holy-gd/react-native-fbsdk-next/issues/101)) ([8fe8480](8fe8480))
* Upgrade SDK to 9 + clean up on old FB stuff. ([6fa5d82](6fa5d82))

### Bug Fixes

* **android, build:** delete jcenter from rootProject - should not affect consuming apps ([thebergamo#184](https://github.com/holy-gd/react-native-fbsdk-next/issues/184)) ([a76c285](a76c285))
* **android, deprecation:** Replace deprecated GameRequestDialog ([thebergamo#172](https://github.com/holy-gd/react-native-fbsdk-next/issues/172)) ([a0c20d2](a0c20d2))
* **android, event-emitter:** add required stubs for react-native 0.65 ([ca801b2](ca801b2))
* **android, profile:** fix varargs call ambiguity ([0b8fdec](0b8fdec))
* **android, setUserId:** temporary android workaround for using setUserID(null) ([thebergamo#214](https://github.com/holy-gd/react-native-fbsdk-next/issues/214)) ([231f969](231f969))
* **android:** add gradle namespace for react-native 0.73 / android gradle plugin 8.0 ([thebergamo#485](https://github.com/holy-gd/react-native-fbsdk-next/issues/485)) ([d7f506d](d7f506d))
* **android:** avoid crash on react-native reload if not initialized ([60ed902](60ed902))
* **android:** handle AD_SERVICES_CONFIG manifest merge collision in SDK v18 ([thebergamo#600](https://github.com/holy-gd/react-native-fbsdk-next/issues/600)) ([d94ba92](d94ba92))
* **android:** handle onCatalystInstanceDestroy deprecation from rn74 ([a2baf92](a2baf92))
* **android:** handle setDataProcessingOptions params correctly to avoid crash ([thebergamo#256](https://github.com/holy-gd/react-native-fbsdk-next/issues/256)) ([1426cf8](1426cf8))
* **android:** remove dead code ([thebergamo#176](https://github.com/holy-gd/react-native-fbsdk-next/issues/176)) ([a24bdb4](a24bdb4))
* **android:** remove setUserID(null) android workaround ([thebergamo#307](https://github.com/holy-gd/react-native-fbsdk-next/issues/307)) ([3e8977a](3e8977a))
* **android:** ShareDialog.setMode('native') throws in Turkish language ([thebergamo#240](https://github.com/holy-gd/react-native-fbsdk-next/issues/240)) ([30d9dd3](30d9dd3))
* **app-events:** remove updateUserProperties method ([cc19463](cc19463))
* **build, typescript:** include tsconfig.json in npm package ([9c29bd5](9c29bd5))
* compileDebugJavaWithJavac ([thebergamo#31](https://github.com/holy-gd/react-native-fbsdk-next/issues/31)) ([913e792](913e792))
* **deps, ios:** use facebook-ios-sdk 16.3.1 ([e612900](e612900))
* **expo, ios:** add client token to info plist (fixes [thebergamo#228](https://github.com/holy-gd/react-native-fbsdk-next/issues/228)) ([thebergamo#249](https://github.com/holy-gd/react-native-fbsdk-next/issues/249)) ([facde8e](facde8e))
* **expo, ios:** iosUserTrackingPermission no longer added by default in Expo ([thebergamo#285](https://github.com/holy-gd/react-native-fbsdk-next/issues/285)) ([4d6f843](4d6f843))
* **expo, ios:** pass through config for ios user tracking permission ([thebergamo#250](https://github.com/holy-gd/react-native-fbsdk-next/issues/250)) ([3915fb6](3915fb6))
* **expo, ios:** remove unnecessary compiler_flags in plugin podspec ([thebergamo#211](https://github.com/holy-gd/react-native-fbsdk-next/issues/211)) ([ce57919](ce57919))
* **expo:** bump expo dependency ([381e03a](381e03a)), closes [thebergamo#309](https://github.com/holy-gd/react-native-fbsdk-next/issues/309)
* **expo:** revert javascript deps updates to ideally fix expo plugin ([thebergamo#559](https://github.com/holy-gd/react-native-fbsdk-next/issues/559)) ([d9b4f7b](d9b4f7b))
* **expo:** update expo config plugin dependencies ([b094741](b094741))
* **expo:** update scheme injection ([thebergamo#512](https://github.com/holy-gd/react-native-fbsdk-next/issues/512)) ([3b08371](3b08371))
* **ios, sdk:** adopt facebook-ios-sdk 17.3.0 ([f475f81](f475f81))
* **ios, sdk:** adopt facebook-ios-sdk 17.4.0 ([3c21c84](3c21c84))
* **ios:** handle facebook-ios-sdk deprecation warnings ([dda4b9c](dda4b9c))
* **ios:** unrecognized selector sent to instance when using props ([23364ba](23364ba)), closes [thebergamo#505](https://github.com/holy-gd/react-native-fbsdk-next/issues/505)
* **iOS:** update deprecated methods ([81fc259](81fc259))
* **ios:** use facebook-ios-sdk 13.2.0 / archive with Xcode < 13.3 ([thebergamo#246](https://github.com/holy-gd/react-native-fbsdk-next/issues/246)) ([d149b66](d149b66)), closes [/github.com/facebook/facebook-ios-sdk/issues/2062#issuecomment-1117736024](https://github.com/holy-gd//github.com/facebook/facebook-ios-sdk/issues/2062/issues/issuecomment-1117736024) [thebergamo#244](https://github.com/holy-gd/react-native-fbsdk-next/issues/244)
* **jest:** add all AppEventsLogger methods to jest mock file ([thebergamo#495](https://github.com/holy-gd/react-native-fbsdk-next/issues/495)) ([c991e14](c991e14))
* **jest:** add LoginManager.logOut + AccessToken mocks ([thebergamo#223](https://github.com/holy-gd/react-native-fbsdk-next/issues/223)) ([5ba05f3](5ba05f3))
* loosen engine semver to be node 18+ not 20+ ([cfa43ee](cfa43ee))
* move xml2js to devDependencies, update 0.6.2 to remove vulnerability ([thebergamo#467](https://github.com/holy-gd/react-native-fbsdk-next/issues/467)) ([ed3e027](ed3e027))
* NSStringArray warnings ([thebergamo#97](https://github.com/holy-gd/react-native-fbsdk-next/issues/97)) ([d66e9f0](d66e9f0))
* Profile.getCurrentProfile() always returns null in the first time ([63f9c6f](63f9c6f))
* **release:** use conventional commits style for commit parsing ([c311031](c311031)), closes [thebergamo#164](https://github.com/holy-gd/react-native-fbsdk-next/issues/164)
* tags are now prefixed with a `v` ([thebergamo#575](https://github.com/holy-gd/react-native-fbsdk-next/issues/575)) ([c9daf39](c9daf39))
* **test:** adjust import and jest eslint env ([thebergamo#144](https://github.com/holy-gd/react-native-fbsdk-next/issues/144)) ([be213b0](be213b0))
* **test:** safely dereference NativeModule for test compat ([ef3b4e8](ef3b4e8))
* **type:** add new testID to typescript definition file ([thebergamo#103](https://github.com/holy-gd/react-native-fbsdk-next/issues/103)) ([0808d60](0808d60))
* **types:** allow null value for AppEventsLogger.setUserID ([thebergamo#213](https://github.com/holy-gd/react-native-fbsdk-next/issues/213)) ([72f861b](72f861b))
* **types:** specify new types output dir after expo plugin addition ([b4bd5fc](b4bd5fc))
* update dependencies ([ddc968f](ddc968f))
* update package.json and yarn.lock for project renaming and version bump to 13.4.2 ([5b336e1](5b336e1))
* update React-Core pod ([thebergamo#42](https://github.com/holy-gd/react-native-fbsdk-next/issues/42)) ([a1e1141](a1e1141))
* Use correct GITHUB_TOKEN ([041385c](041385c))

### Performance Improvements

* **ci:** we know the exact paths of the files to use for cache freshness ([305fcd0](305fcd0))

### Code Refactoring

* migrate to typescript ([thebergamo#155](https://github.com/holy-gd/react-native-fbsdk-next/issues/155)) ([d55e203](d55e203))

### Build System

* **deps:** minimum cocoapods version increased to 1.12.0 ([54eeffe](54eeffe))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expo SDK 52 Android builds are failing: Manifest merger failed

2 participants