#objective-c #react-native #cocoapods #clevertap
#objective-c #react-native #cocoapods #clevertap
Вопрос:
Я пытаюсь интегрировать clevertap с собственным react и когда я включаю «use_frameworks!», cocoa pods
Чтобы иметь возможность использовать
#import <CleverTapReact / CleverTapReactManager.h>
в UMLCore генерируется ошибка компиляции
- Уже создайте ссылку приложения с clevertap
- Установите весь пакет через «yarn install»
- Установите модули через «pod install»
Это мой подфайл:
//----
target 'discovery' do
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
'RCTText',
'RCTNetwork',
'RCTWebSocket',
'RCTAnimation',
'RCTImage',
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'Google-Mobile-Ads-SDK'
pod 'CleverTap-iOS-SDK'
pod "Segment-CleverTap"
use_unimodules!
use_frameworks!
target 'discoveryTests' do
inherit! :search_paths
end
end
//----
Я ожидаю хорошей компиляции для приложения, а вместо этого получаю ошибку компиляции
это код ошибки:
//----
info Undefined symbols for architecture x86_64:
"_UMLogError", referenced from:
[UMUtilities NSDate:] in UMUtilities.o
-[UMViewManager updateProp:withValue:onView:] in UMViewManager.o
info "_UMLogInfo", referenced from:
[UMUtilities UIColor:] in UMUtilities.o
info "_UMLogWarn", referenced from:
-[UMModuleRegistry registerExportedModule:] in UMModuleRegistry.o
-[UMModuleRegistry registerViewManager:] in UMModuleRegistry.o
-[UMModuleRegistry registerSingletonModule:] in UMModuleRegistry.o
-[UMModuleRegistryProvider moduleRegistryForExperienceId:] in UMModuleRegistryProvider.o
-[UMViewManager updateProp:withValue:onView:] in UMViewManager.o
ld: symbol(s) not found for architecture x86_64
info clang: error: linker command failed with exit code 1 (use -v to see invocation)
//----
Ответ №1:
Похоже, что вы интегрируете CleverTap React Native с использованием Cocoapods для своего приложения iOS, и, насколько я понимаю, проблема заключается в том, что вы не можете найти класс CleverTapReactManager.h .
Я бы предложил добавить pod 'clevertap-react-native', :path => '../node_modules/clevertap-react-native'
в качестве зависимости в ваш ios / Podfile вместо pod 'CleverTap-iOS-SDK'
Этот локальный подспек clevertap-react-native интегрирует React Native iOS bridge через Cocoapods.
Ссылка для помощи в установке того же: https://github.com/CleverTap/clevertap-react-native/blob/master/docs/install.md#installing-clevertap-react-native
Надеюсь, это поможет. Для получения дополнительных вопросов вы можете опубликовать на https://community.clevertap.com /
Комментарии:
1. Спасибо, Адити, я попробовал этот подход, но в этом сценарии и без use_frameworks! Я получаю сообщение об ошибке /node_modules/clevertap-react-native/ios/CleverTapReact/CleverTapReactManager.m:9:9: фатальная ошибка: файл ‘CleverTapSDK/CleverTap.h’ не найден #импорт <CleverTapSDK/CleverTap.h>
2. CleverTapSDK — это динамический фреймворк, с указанием use_frameworks! вы можете заставить CocoaPods интегрироваться в ваш проект через фреймворки вместо статических библиотек. Поэтому я предлагаю попробовать включить use_framework! в файле pod, а затем создайте свой проект.
3. Привет, Адити, спасибо за ответ, но дело в том, что если мы используем этот подход, мы получаем ошибку .. / .. / ../ ios / Pods / Headers / Public / Firebase / Firebase.h:1:9: фатальная ошибка: файл ‘FirebaseCore / FirebaseCore.h’ не найден #импорт/FirebaseCore.h> и это происходит в основном потому, что мы используем Firebase для настройки Google analytics, а Firebase несовместим с use_frameworks! RNFirebase не компилируется с помощью use_frameworks!
Ответ №2:
или при импорте в файл Appdelegate вместо
#import <<CleverTapReact/CleverTap.h>
#import <CleverTapReact/CleverTapReactManager.h>
использование
#import <CleverTapReactManager.h>
#import <CleverTap.h>