# Uncomment the next line to define a global platform for your project
platform :ios, '15.0'
plugin 'cocoapods-pod-sign'
skip_pod_bundle_sign
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/tuya/tuya-pod-specs.git'
# common application pods
def common_pods
#Architecture
pod 'RIBs', :path => './LocalPods/RIBs', :testspecs => ['Tests']
#Analitics
pod 'Amplitude-iOS'
#Deployment
pod 'AppCenter'
pod 'AppCenter/Distribute'
#Firebase
pod 'Firebase/Core'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Firestore'
pod 'Firebase/Performance'
pod 'Firebase/Crashlytics'
pod 'Firebase/Analytics'
#Database
pod 'RealmSwift'
#Networking
pod 'Moya', '~> 14'
pod 'Alamofire'
pod 'AlamofireNetworkActivityLogger'
pod 'Connectivity'
pod 'Starscream'
pod 'JWTDecode'
pod 'StunClient'
#The only true Reactive world
pod 'RxSwift'
pod 'RxCocoa'
pod 'RxDataSources'
pod 'RxKeyboard'
pod 'RxGesture'
#pod 'RxRealm', '~> 3'
#UI
pod 'Toast-Swift'
pod 'PinLayout'
pod 'MarqueeLabel' #label with scrolling text
pod 'UIScrollView-InfiniteScroll'
#Media
pod 'MobileVLCKit'
pod 'Kingfisher'
pod 'GoogleWebRTC'
#Keychain
pod 'KeychainAccess'
#Graphs
pod 'Charts'
#Check app version update
pod 'Siren'
#Suffering
pod 'SwiftLint'
#others
pod 'SwiftDate'
pod 'PerenioLowLevelUtils', :path => './LocalPods/PerenioLowLevelUtils', :testspecs => ['Tests']
#Third Party
pod 'TuyaSmartActivatorKit'
# debug only
pod 'LookinServer', :configurations => ['development debug', 'development rib debug', 'prod debug', 'stage debug', 'uat debug']
# debug console only
pod 'FLEX', :configurations => ['development debug', 'development rib debug', 'stage debug', 'uat debug', 'development release', 'stage release', 'uat release'], :git => 'https://github.com/FLEXTool/FLEX.git', :branch => 'master'
pod 'Swifter', :configurations => ['development debug', 'development rib debug', 'stage debug', 'uat debug', 'development release', 'stage release', 'uat release']
notifications_pods
end
# pods that are used to write tests
def testing_pods
# need update current implementation for 7.x.x
pod 'Quick', '~> 5'
pod 'Nimble', '~> 13.0.0' # need update; new version 13.1.x broken tests
pod 'RxBlocking'
pod 'RxTest'
pod 'Difference'
end
# pods for notification extensions
def notifications_pods
# migrate to 3.x need change public API
pod 'OneSignal', '~> 2'
#pod 'OneSignal', :git => 'https://github.com/OneSignal/OneSignal-iOS-SDK.git', :branch => 'fix/migration-indirect-notification'
end
target 'App' do
use_frameworks! :linkage => :static
inhibit_all_warnings!
common_pods
notifications_pods
target 'AppTests' do
use_frameworks! :linkage => :static
inhibit_all_warnings!
inherit! :search_paths
testing_pods
end
end
post_install do |installer|
#required to fix signing errors with pods that uses IBDesignable. Actual after cocoapods v1.5
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete('CODE_SIGNING_ALLOWED')
config.build_settings.delete('CODE_SIGNING_REQUIRED')
end
installer.pods_project.targets.each do |target|
if target.name == 'RxSwift'
target.build_configurations.each do |config|
if config.name == 'Debug' || config.name == 'Development Debug' || config.name == 'Development RIB Debug' || config.name == 'Prod Debug' || config.name == 'Stage Debug' || config.name == 'UAT Debug'
config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['-D', 'TRACE_RESOURCES']
end
end
end
end
# fix warning Create Symlinks to Header Folders in Xcode 14.0
installer.pods_project.targets.each do |target|
if target.name == 'Realm' || target.name == 'BoringSSL-GRPC' || target.name == 'Libuv-gRPC' || target.name == 'abseil' || target.name == 'gRPC-C++' || target.name == 'gRPC-Core'
create_symlink_phase = target.shell_script_build_phases.find { |x| x.name == 'Create Symlinks to Header Folders' }
create_symlink_phase.always_out_of_date = "1"
end
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if Gem::Version.new('15.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
end
end
# optimization
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.name == 'Release' || config.name == 'Development Release' || config.name == 'Prod Release' || config.name == 'Stage Release' || config.name == 'UAT Release'
config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Osize'
config.build_settings['ASSETCATALOG_COMPILER_OPTIMIZATION'] = 'space'
config.build_settings['GCC_OPTIMIZATION_LEVEL'] = 'z'
config.build_settings['ENABLE_TESTABILITY'] = 'NO'
config.build_settings['SWIFT_COMPILATION_MODE'] = 'wholemodule'
end
if target.name == 'RIBs' && config.name == 'CI Debug'
config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
config.build_settings['ENABLE_TESTABILITY'] = 'YES'
end
end
end
end
$ bundle exec pod check || bundle exec pod install
Command
Report
What happened instead?
Stack
Plugins
Podfile
Error