mirror of
https://github.com/streetwriters/notesnook.git
synced 2026-07-10 20:41:26 +02:00
Builds and publishes iOS and Android Preview apps that are instantly available to registered testers and quality assurance teams. We are using Firebase App Distribution for this purpose that works seamlessly on both android and iOS. Signed-off-by: Ammar Ahmed <40239442+ammarahm-ed@users.noreply.github.com>
106 lines
4.0 KiB
Ruby
106 lines
4.0 KiB
Ruby
# Resolve react_native_pods.rb with node to allow for hoisting
|
|
require Pod::Executable.execute_command('node', ['-p',
|
|
'require.resolve(
|
|
"react-native/scripts/react_native_pods.rb",
|
|
{paths: [process.argv[1]]},
|
|
)', __dir__]).strip
|
|
|
|
platform :ios, min_ios_version_supported
|
|
prepare_react_native_project!
|
|
|
|
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
|
|
|
|
|
|
pod 'Base64'
|
|
pod 'SexyTooltip',:git => 'https://github.com/ammarahm-ed/SexyTooltip.git'
|
|
pod 'MMKV'
|
|
|
|
rn_path = nil
|
|
node_modules_path = nil
|
|
|
|
target 'Notesnook' do
|
|
|
|
config = use_native_modules!
|
|
rn_path = config[:reactNativePath]
|
|
node_modules_path = File.expand_path('../node_modules', File.dirname(rn_path))
|
|
|
|
use_react_native!(
|
|
:path => rn_path,
|
|
# Hermes is now enabled by default. Disable by setting this flag to false.
|
|
# Upcoming versions of React Native may rely on get_default_flags(), but
|
|
# we make it explicit here to aid in the React Native upgrade process.
|
|
:hermes_enabled => true,
|
|
:fabric_enabled => true,
|
|
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
|
)
|
|
|
|
target 'NotesnookTests' do
|
|
|
|
# Pods for testing
|
|
end
|
|
|
|
target 'Make Note' do
|
|
use_react_native!(
|
|
:path => rn_path,
|
|
# Hermes is now enabled by default. Disable by setting this flag to false.
|
|
# Upcoming versions of React Native may rely on get_default_flags(), but
|
|
# we make it explicit here to aid in the React Native upgrade process.
|
|
:hermes_enabled => true,
|
|
:fabric_enabled => true,
|
|
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
|
)
|
|
inherit! :complete
|
|
end
|
|
end
|
|
|
|
post_install do |installer|
|
|
react_native_post_install(
|
|
installer,
|
|
react_native_path = rn_path,
|
|
# Set `mac_catalyst_enabled` to `true` in order to apply patches
|
|
# necessary for Mac Catalyst builds
|
|
:mac_catalyst_enabled => false,
|
|
# :ccache_enabled => true
|
|
)
|
|
installer.pods_project.targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
|
|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
|
|
end
|
|
end
|
|
installer.pods_project.targets.each do |target|
|
|
if target.name == "react-native-quick-sqlite" then
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = 'SQLITE_CORE=1 SQLITE_ENABLE_FTS5=1 SQLITE3MC_OMIT_AES_HARDWARE_SUPPORT=1 HAVE_CIPHER_AES_128_CBC=0 HAVE_CIPHER_AES_256_CBC=0 HAVE_CIPHER_SQLCIPHER=0 HAVE_CIPHER_RC4=0 HAVE_CIPHER_CHACHA20=1 SQLITE_OMIT_PROGRESS_CALLBACK=1 SQLITE_MAX_EXPR_DEPTH=0 SQLITE_OMIT_DEPRECATED=1 SQLITE_LIKE_DOESNT_MATCH_BLOBS=1 SQLITE_DQS=0 SQLITE_DEFAULT_MEMSTATUS=0 SQLITE_USE_ALLOCA=1 SQLITE_ENABLE_REGEXP=1'
|
|
end
|
|
end
|
|
end
|
|
installer.pods_project.targets.each do |target|
|
|
if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
|
|
end
|
|
end
|
|
end
|
|
|
|
# Embed the active iOS build config xcconfig as the project-level base configuration.
|
|
# CocoaPods only manages target-level base configurations, so the project-level one
|
|
# is safe to set here and will survive future pod installs.
|
|
# To switch environments: update ios-build.active.xcconfig, then re-run pod install.
|
|
# active_xcconfig_rel_path = 'build-configs/ios-build.active.xcconfig'
|
|
# user_project = installer.aggregate_targets.first.user_project
|
|
# xcconfig_ref = user_project.files.find { |f| f.path&.end_with?('ios-build.active.xcconfig') }
|
|
# if xcconfig_ref.nil?
|
|
# xcconfig_ref = user_project.main_group.new_file(active_xcconfig_rel_path, :project)
|
|
# xcconfig_ref.last_known_file_type = 'text.xcconfig'
|
|
# end
|
|
# user_project.build_configurations.each do |config|
|
|
# config.base_configuration_reference = xcconfig_ref
|
|
# end
|
|
# user_project.save
|
|
end
|