apptentive / apptentive-ios

Apptentive Legacy SDK for iOS. See https://github.com/apptentive/apptentive-kit-ios for Version 6.
http://www.apptentive.com/
BSD 3-Clause "New" or "Revised" License
146 stars 103 forks source link

[iOS] No known class method for selector (X) #266

Closed vinnyA3 closed 4 years ago

vinnyA3 commented 4 years ago

Issue Description

The latest patch update (5.2.9) breaks iOS builds. Receiving errors like No known class method for selector. The fix for us: lock to version 5.2.8

Steps to Reproduce / Code Snippets / Screenshots

Podfile

source 'https://github.com/CocoaPods/Specs.git'

target 'darwin' do
  node_modules_path = '../node_modules'

  pod 'yoga', path: "#{node_modules_path}/react-native/ReactCommon/yoga/yoga.podspec"
  pod 'React', path: "#{node_modules_path}/react-native"

  pod 'AppCenter/Crashes'
  pod 'AppCenter/Analytics'
  pod 'AppCenterReactNativeShared'
  pod 'Branch', '0.27.0'
  pod 'google-cast-sdk', '~> 3'
  pod 'ComScore', '~> 6.0.0'
  pod 'Google-Mobile-Ads-SDK', '7.28.0'
  pod 'Taplytics'
  pod 'apptentive-ios'
  pod 'lottie-ios', :path => "#{node_modules_path}/lottie-ios"
  pod 'lottie-react-native', :path => "#{node_modules_path}/lottie-react-native"
  pod 'ReactNativePermissions', :path => "#{node_modules_path}/react-native-permissions"
  pod 'BVLinearGradient', :path => "#{node_modules_path}/react-native-linear-gradient"
  pod 'BugsnagReactNative', :path => "#{node_modules_path}/bugsnag-react-native"
  pod 'RNReanimated', :path => "#{node_modules_path}/react-native-reanimated"
  pod 'RNGestureHandler', :path => "#{node_modules_path}/react-native-gesture-handler"
  pod 'react-native-netinfo', :path => "#{node_modules_path}/@react-native-community/netinfo"
  pod 'RNShare', :path => "#{node_modules_path}/react-native-share"
  pod 'CodePush', :path => "#{node_modules_path}/react-native-code-push"
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end

    # This step is necessary to make it possible
    # to use other configurations than Debug or Release
    installer.pods_project.build_configurations.each do |config|
        if config.name == 'Staging'
            config.build_settings['CONFIGURATION_BUILD_DIR'] = '$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)'
        end
    end

    target.build_configurations.each do |config|
      unless installer.podfile.defined_in_file.read().include? "\nuse_frameworks!\n"
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'NO_USE_FRAMEWORKS=1'
      end
    end
  end
end

Error Screenshots

Screen Shot 2020-03-30 at 3 39 00 PM


Environment

frankus commented 4 years ago

These symbols are new for iOS 13, which requires Xcode 11 or later. You can either upgrade Xcode to a recent version or use the 5.2.8 release of Apptentive.

vinnyA3 commented 4 years ago

Cool, thanks @frankus ... Is this documented somewhere?

frankus commented 4 years ago

It's not currently, sorry about that. We'll make a note to add it to the CHANGELOG for future releases that require new tools.

vinnyA3 commented 4 years ago

No worries! thanks for the reply