Priavacy Policy aggregation errors on empty dict
Description
pod update will failed when it tries to aggregate a privacy policy with an empty dict. For example
<?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>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict/>
</array>
</dict>
</plist>
I came across this in https://github.com/TimOliver/TOCropViewController which is a dependency of https://github.com/ivpusic/react-native-image-crop-picker
Steps to reproduce
- yarn add react-native-image-crop-picker
- cd ios
- pod update
React Native Version
0.74.1
Affected Platforms
Build - MacOS
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: Linux 6.8 Ubuntu 23.10 23.10 (Mantic Minotaur)
CPU: (32) x64 AMD Ryzen 9 7950X 16-Core Processor
Memory: 9.27 GB / 30.50 GB
Shell:
version: 5.2.15
path: /bin/bash
Binaries:
Node:
version: 20.11.1
path: ~/.nvm/versions/node/v20.11.1/bin/node
Yarn:
version: 1.22.22
path: ~/work/gladly/mobile/node_modules/.bin/yarn
npm:
version: 10.7.0
path: ~/work/gladly/mobile/node_modules/.bin/npm
Watchman:
version: 4.9.0
path: /usr/bin/watchman
SDKs:
Android SDK:
API Levels:
- "31"
- "32"
- "33"
- "34"
Build Tools:
- 28.0.3
- 29.0.2
- 29.0.3
- 30.0.2
- 30.0.3
- 31.0.0
- 31.0.0
- 32.1.0
- 33.0.0
- 33.0.0
- 33.0.1
- 34.0.0
- 34.0.0
- 35.0.0
System Images:
- android-31 | Intel x86_64 Atom
- android-31 | Google APIs Intel x86_64 Atom
- android-33 | Google APIs Intel x86_64 Atom
- android-33 | Google Play Intel x86 Atom_64
- android-34 | Google Play Intel x86_64 Atom
Android NDK: Not Found
IDEs:
Android Studio: AI-223.8836.35.2231.10811636
Languages:
Java:
version: 17.0.10
path: /usr/bin/javac
Ruby:
version: 3.1.2
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Stacktrace or Logs
[!] An error occurred while processing the post-install hook of the Podfile.
no implicit conversion of nil into Array
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:121:in `+'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:121:in `block (5 levels) in get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in `each'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in `block (4 levels) in get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `each'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `block (3 levels) in get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in `each'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in `block (2 levels) in get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in `each'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in `block in get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in `each'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in `get_used_required_reason_apis'
/Users/johnf/mobile/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:18:in `add_aggregated_privacy_manifest'
/Users/johnf/mobile/node_modules/react-native/scripts/react_native_pods.rb:301:in `react_native_post_install'
/Users/johnf/mobile/packages/mobile/ios/Podfile:51:in `block (3 levels) in from_ruby'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-core-1.14.3/lib/cocoapods-core/podfile.rb:196:in `post_install!'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1013:in `run_podfile_post_install_hook'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1001:in `block in run_podfile_post_install_hooks'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:149:in `message'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1000:in `run_podfile_post_install_hooks'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:337:in `block (2 levels) in create_and_save_projects'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in `write!'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:336:in `block in create_and_save_projects'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:64:in `section'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:315:in `create_and_save_projects'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:307:in `generate_pods_project'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:183:in `integrate'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:170:in `install!'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/command/update.rb:63:in `run'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/lib/cocoapods/command.rb:52:in `run'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.14.3/bin/pod:55:in `<top (required)>'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/bin/pod:25:in `load'
/Users/johnf/mobile/packages/mobile/vendor/bundle/ruby/3.3.0/bin/pod:25:in `<top (required)>'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:58:in `load'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:58:in `kernel_load'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:23:in `run'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli.rb:451:in `exec'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli.rb:34:in `dispatch'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/cli.rb:28:in `start'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/exe/bundle:28:in `block in <top (required)>'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/bundler-2.5.7/exe/bundle:20:in `<top (required)>'
/opt/homebrew/opt/ruby/bin/bundle:25:in `load'
/opt/homebrew/opt/ruby/bin/bundle:25:in `<main>'
Reproducer
https://github.com/johnf/rn-priacy-policy-aggregation-bug
Screenshots and Videos
No response
I've added a reproducer
@aleqsio @cipolleschi can we look at this as this is a newly introduced feature?
This patch works for me:
diff --git a/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb b/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb
index 7600829..f5fd6d5 100644
--- a/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb
+++ b/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb
@@ -111,6 +111,7 @@ module PrivacyManifestUtils
accessed_api_types.each do |accessed_api|
api_type = accessed_api["NSPrivacyAccessedAPIType"]
reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"]
+ next if api_type.nil? || reasons.nil?
used_apis[api_type] ||= []
used_apis[api_type] += reasons
end
I have this error when migrated from 0.73.8 to 0.74.1
[!] An error occurred while processing the post-install hook of the Podfile.
undefined method `end_with?' for nil:NilClass
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:85:in `block in get_privacyinfo_file_path'
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:85:in `each'
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:85:in `find'
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:85:in `get_privacyinfo_file_path'
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:10:in `add_aggregated_privacy_manifest'
/Users/username/Desktop/Projects/nameA/App/node_modules/react-native/scripts/react_native_pods.rb:301:in `react_native_post_install'
/Users/username/Desktop/Projects/nameA/App/ios/Podfile:52:in `block (3 levels) in from_ruby'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/podfile.rb:196:in `post_install!'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1013:in `run_podfile_post_install_hook'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1001:in `block in run_podfile_post_install_hooks'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:149:in `message'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1000:in `run_podfile_post_install_hooks'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:337:in `block (2 levels) in create_and_save_projects'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in `write!'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:336:in `block in create_and_save_projects'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:315:in `create_and_save_projects'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:307:in `generate_pods_project'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:183:in `integrate'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:170:in `install!'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in `run'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/lib/cocoapods/command.rb:52:in `run'
/Users/username/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>'
/Users/username/.rbenv/versions/2.7.6/bin/pod:23:in `load'
/Users/username/.rbenv/versions/2.7.6/bin/pod:23:in `<main>'
I have created ticket with patch-file for mine issue: https://github.com/facebook/react-native/issues/44437
Same issue react-native 0.74.1
Generating Pods project Setting USE_HERMES build settings Setting REACT_NATIVE build settings [Ccache]: Removing Ccache from CC, LD, CXX & LDPLUSPLUS build settings [Privacy Manifest Aggregation] Appending aggregated reasons to existing PrivacyInfo.xcprivacy file. [Privacy Manifest Aggregation] Reading .xcprivacy files to aggregate all used Required Reason APIs. [!] An error occurred while processing the post-install hook of the Podfile.
no implicit conversion of nil into Array
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:115:in +' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:115:in block (5 levels) in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in each' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in block (4 levels) in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in each' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in block (3 levels) in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in each' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:105:in block (2 levels) in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in each' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:104:in block in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in each' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:102:in get_used_required_reason_apis'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:18:in add_aggregated_privacy_manifest' /Users/rodrigodiasdefigueiredo/Desktop/parksharing/node_modules/react-native/scripts/react_native_pods.rb:301:in react_native_post_install'
/Users/rodrigodiasdefigueiredo/Desktop/parksharing/ios/Podfile:36:in block (3 levels) in from_ruby' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/podfile.rb:196:in post_install!'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1013:in run_podfile_post_install_hook' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1001:in block in run_podfile_post_install_hooks'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:149:in message' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:1000:in run_podfile_post_install_hooks'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:337:in block (2 levels) in create_and_save_projects' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in write!'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:336:in block in create_and_save_projects' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in section'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:315:in create_and_save_projects' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:307:in generate_pods_project'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:183:in integrate' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:170:in install!'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in run' /opt/homebrew/lib/ruby/gems/3.3.0/gems/claide-1.1.0/lib/claide/command.rb:334:in run'
/opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/command.rb:52:in run' /opt/homebrew/lib/ruby/gems/3.3.0/gems/cocoapods-1.15.2/bin/pod:55:in <top (required)>'
/usr/local/bin/pod:25:in load' /usr/local/bin/pod:25:in
@rodrigodiasf1984
You can turn off the privacy manifest aggregation by adding privacy_file_aggregation_enabled: false to use_react_native! in your Podfile.
The fix for your issue should land in the next patch release.
privacy_file_aggregation_enabled: false
something like this?
use_react_native!( privacy_file_aggregation_enabled: false :path => config[:reactNativePath], # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." )
duplicated of #44400
Turning off privacy_file_aggregation_enabled: false has worked to complete the installation. For some reason the patch did not work as expected.
use_react_native!(
privacy_file_aggregation_enabled: false,
:path => config[:reactNativePath],
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.." )
New version of 0.74.2 is out and it should have all the fixes to the Privacy manifest we need! We are going to release 0.73 and 0.72 in the next days with similar fixes!
Thank you everyone for the patience!
I've updated to 0.74.2 and unfortunately still seeing:
[Privacy Manifest Aggregation] Appending aggregated reasons to existing PrivacyInfo.xcprivacy file.
[Privacy Manifest Aggregation] Reading .xcprivacy files to aggregate all used Required Reason APIs.
[!] An error occurred while processing the post-install hook of the Podfile.
undefined method `path' for nil:NilClass
@david-cahill could you add the rest of the stacktrace, please?
@cipolleschi still seeing the same error with RN 0.74.2 (upgrading from 0.73.8)
[!] An error occurred while processing the post-install hook of the Podfile.
undefined method `path' for nil:NilClass
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `block in get_privacyinfo_file_path'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `each'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `find'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `get_privacyinfo_file_path'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:10:in `add_aggregated_privacy_manifest'
***/node_modules/react-native/scripts/react_native_pods.rb:303:in `react_native_post_install'
***/ios/Podfile:94:in `block (3 levels) in from_ruby'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.13.0/lib/cocoapods-core/podfile.rb:196:in `post_install!'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:1013:in `run_podfile_post_install_hook'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:1001:in `block in run_podfile_post_install_hooks'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/user_interface.rb:149:in `message'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:1000:in `run_podfile_post_install_hooks'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:337:in `block (2 levels) in create_and_save_projects'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in `write!'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:336:in `block in create_and_save_projects'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/user_interface.rb:64:in `section'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:315:in `create_and_save_projects'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:307:in `generate_pods_project'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:183:in `integrate'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/installer.rb:170:in `install!'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/command/install.rb:52:in `run'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/lib/cocoapods/command.rb:52:in `run'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/cocoapods-1.13.0/bin/pod:55:in `<top (required)>'
***/.rbenv/versions/2.7.6/bin/pod:23:in `load'
***/.rbenv/versions/2.7.6/bin/pod:23:in `<top (required)>'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `load'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `kernel_load'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli/exec.rb:28:in `run'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli.rb:476:in `exec'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli.rb:30:in `dispatch'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/cli.rb:24:in `start'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:46:in `block in <top (required)>'
***/.rbenv/versions/2.7.6/lib/ruby/2.7.0/bundler/friendly_errors.rb:123:in `with_friendly_errors'
***/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:34:in `<top (required)>'
***/.rbenv/versions/2.7.6/bin/bundle:23:in `load'
***/.rbenv/versions/2.7.6/bin/bundle:23:in `<main>'
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>NSPrivacyCollectedDataTypes</key>
<array>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
</array>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>
Also getting the exact same error "undefined method `path' for nil:NilClass" on pod install. This is after upgrading from RN 0.73.6 to 0.74.2
Not sure if it's related, but the project is a monorepo with the RN app sitting inside a workspace beneath root
[!] An error occurred while processing the post-install hook of the Podfile.
undefined method `path' for nil:NilClass
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `block in get_privacyinfo_file_path'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `each'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `find'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:83:in `get_privacyinfo_file_path'
***/node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:10:in `add_aggregated_privacy_manifest'
***/node_modules/react-native/scripts/react_native_pods.rb:303:in `react_native_post_install'
***/ios/Podfile:59:in `block (3 levels) in from_ruby'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-core-1.14.3/lib/cocoapods-core/podfile.rb:196:in `post_install!'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1013:in `run_podfile_post_install_hook'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1001:in `block in run_podfile_post_install_hooks'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:149:in `message'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:1000:in `run_podfile_post_install_hooks'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:337:in `block (2 levels) in create_and_save_projects'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer/xcode/pods_project_generator/pods_project_writer.rb:61:in `write!'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:336:in `block in create_and_save_projects'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/user_interface.rb:64:in `section'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:315:in `create_and_save_projects'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:307:in `generate_pods_project'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:183:in `integrate'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/installer.rb:170:in `install!'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/command/install.rb:52:in `run'
***/vendor/bundle/ruby/2.7.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/lib/cocoapods/command.rb:52:in `run'
***/vendor/bundle/ruby/2.7.0/gems/cocoapods-1.14.3/bin/pod:55:in `<top (required)>'
***/vendor/bundle/ruby/2.7.0/bin/pod:23:in `load'
***/vendor/bundle/ruby/2.7.0/bin/pod:23:in `<top (required)>'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `load'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli/exec.rb:63:in `kernel_load'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli/exec.rb:28:in `run'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli.rb:476:in `exec'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli.rb:30:in `dispatch'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/cli.rb:24:in `start'
***/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:46:in `block in <top (required)>'
***/.rbenv/versions/2.7.5/lib/ruby/2.7.0/bundler/friendly_errors.rb:123:in `with_friendly_errors'
***/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/libexec/bundle:34:in `<top (required)>'
***/.rbenv/versions/2.7.5/bin/bundle:23:in `load'
***/.rbenv/versions/2.7.5/bin/bundle:23:in `<main>'
we recently merged a change that should fix it: 1bec961c9556572d16aa117e3c09468868406dcb. As soon as we are done with 0.75-rc.1, we are going to try and release 0.74.3 to fix this.
Thanks for your patience with this. Meanwhile, you can try to apply the above commit as patch-package to unblock you.
@cipolleschi unfortunately it appears that 0.74.3 does not contain the fix. Suppose we'll need to wait for 0.74.4
Sorry for that, I'll make sure this is picked in 0.74.4