mirror of
https://github.com/status-im/status-mobile.git
synced 2026-08-27 15:11:15 +00:00
This change re-introduces the Firebase SDK via a react-native library. This has been done to support remote notifications via push-notifications from Firebase Cloud Messaging. This initial integration supports receiving FCM notifications on both iOS and Android platforms. This change also attempts to ensure that FDroid builds will not include Firebase or Google Play Services inside the build.
109 lines
3.4 KiB
Ruby
109 lines
3.4 KiB
Ruby
def node_require(script)
|
|
# Resolve script with node to allow for hoisting
|
|
require Pod::Executable.execute_command('node', ['-p',
|
|
"require.resolve(
|
|
'#{script}',
|
|
{paths: [process.argv[1]]},
|
|
)", __dir__]).strip
|
|
end
|
|
|
|
node_require('react-native/scripts/react_native_pods.rb')
|
|
node_require('react-native-permissions/scripts/setup.rb')
|
|
|
|
platform :ios, min_ios_version_supported
|
|
prepare_react_native_project!
|
|
|
|
setup_permissions([
|
|
'Camera',
|
|
'FaceID',
|
|
'MediaLibrary',
|
|
'Microphone',
|
|
'Notifications',
|
|
'PhotoLibrary',
|
|
'PhotoLibraryAddOnly',
|
|
])
|
|
|
|
linkage = ENV['USE_FRAMEWORKS']
|
|
if linkage != nil
|
|
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
|
|
use_frameworks! :linkage => linkage.to_sym
|
|
end
|
|
|
|
# If inside a Nix shell, allow pod install
|
|
inside_nix_shell = ENV['IN_NIX_SHELL']
|
|
allow_pod_install = !inside_nix_shell.nil?
|
|
|
|
unless allow_pod_install
|
|
puts "ERROR: 'pod install' must be run inside a Nix shell. Please ensure you're inside a nix shell and try again."
|
|
exit 1
|
|
end
|
|
|
|
abstract_target 'Status' do
|
|
# Pods for StatusQuo
|
|
config = use_native_modules!
|
|
|
|
# Flags change depending on the env values.
|
|
flags = get_default_flags()
|
|
|
|
use_react_native!(
|
|
:path => config[:reactNativePath],
|
|
:fabric_enabled => flags[:fabric_enabled],
|
|
:hermes_enabled => true,
|
|
# An absolute path to your application root.
|
|
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
|
)
|
|
|
|
pod 'react-native-image-resizer', :path => '../node_modules/react-native-image-resizer'
|
|
pod 'react-native-config', :path => '../node_modules/react-native-config'
|
|
|
|
pod 'SSZipArchive', '2.4.3'
|
|
# to fix [!] [!] CocoaPods could not find compatible versions for pod "libwebp"
|
|
pod 'libwebp', '1.0.0'
|
|
# to fix [!] CocoaPods could not find compatible versions for pod "CryptoSwift"
|
|
pod 'CryptoSwift', git: "https://github.com/krzyzanowskim/CryptoSwift", tag: '1.8.0'
|
|
pod "react-native-status-keycard", path: "../node_modules/react-native-status-keycard"
|
|
pod "react-native-status", path: "../modules/react-native-status"
|
|
pod "Keycard", git: "https://github.com/status-im/Keycard.swift.git", tag: '3.1.1'
|
|
pod 'secp256k1', git: "https://github.com/status-im/secp256k1.swift.git", submodules: true
|
|
|
|
pod 'FirebaseCore', :modular_headers => true
|
|
pod 'GoogleUtilities', :modular_headers => true
|
|
|
|
target 'StatusIm' do
|
|
|
|
target 'StatusImTests' do
|
|
inherit! :complete
|
|
# Pods for testing
|
|
end
|
|
end
|
|
|
|
target 'StatusImPR' do
|
|
end
|
|
|
|
post_install do |installer|
|
|
# as per react-native 0.73.2 template
|
|
# https://github.com/facebook/react-native/blob/c5c0563f209ead8f884204763e02115bd66d1960/packages/react-native/template/ios/Podfile#L49-L52
|
|
react_native_post_install(
|
|
installer,
|
|
config[:reactNativePath],
|
|
:mac_catalyst_enabled => false,
|
|
)
|
|
# some of libs wouldn't be build for x86_64 otherwise and that is
|
|
# necessary for ios simulators
|
|
installer.pods_project.targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
|
|
end
|
|
# We need to remove the predefinition of IPHONEOS_DEPLOYMENT_TARGET from RNCK lib to use our own.
|
|
case target.name
|
|
when 'ReactNativeCameraKit'
|
|
target.build_configurations.each do |config|
|
|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
use_native_modules!
|
|
end
|