Мой пользовательский фреймворк использует несколько внешних фреймворков, один из которых FacebookSDK
(интегрирован в проект с cocoapods
).
Поскольку мне не удалось интегрировать его в мой фреймворк, я сделал это в приложение следующим образом (сценарий 0).
Два вопроса тогда:
- Q1) Как интегрировать FAcebookSDK прямо в мою структуру?
- Q2) В сценарии 0 как решить проблему «Класс реализован в обоих…»
Заранее спасибо.
--- СЦЕНАРИЙ 0 : ОК
Сценарий 0 работает, но FacebookSDK включен в приложение (где я хочу, чтобы он был в моей структуре):
platform :ios, '12.0'
target 'MyFramework' do
project 'MyFrameworks/MyFramework.xcodeproj'
end
target 'MyApp' do
workspace 'MyWorkspace.xcworkspace'
project 'MyApp/MyApp.xcodeproj'
use_frameworks!
pod 'FacebookSDK'
end
Примечание: в этом сценарии у меня есть несколько включений библиотеки со следующими предупреждениями:
objc[3052]: Class FBSDKBasicUtility is implemented in both MyFramework.framework/Aladdin (0x1021f7f00) and MyApp.app/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit (0x101328e60). One of the two will be used. Which one is undefined.
--- SCENARIO 1 : KO
Сценарий 1 терпит неудачу: он компилирует и связывает, но попадает в ошибку времени выполнения:
dyld: Library not loaded: @rpath/Bolts.framework/Bolts
Referenced from: MyApp.app/Frameworks/MyFramework.framework/MyFramework
Reason: image not found
(В этом сценарии я просто перенес включение в каркас).
platform :ios, '12.0'
target 'MyFramework' do
project 'MyFrameworks/MyFramework.xcodeproj'
use_frameworks! # change here
pod 'FacebookSDK' # change here
end
target 'MyApp' do
workspace 'MyWorkspace.xcworkspace'
project 'MyApp/MyApp.xcodeproj'
end
--- SCENARIO 2 : KO
Сценарий 2 не может скомпилировать файлы каркасов, где import FBSDKCore
включено с ошибкой No such module 'FBSDKCoreKit'
. (В этом сценарии из сценария 1 я просто использовал :modular_headers: true
).
platform :ios, '12.0'
target 'MyFramework' do
project 'MyFrameworks/MyFramework.xcodeproj'
pod 'FacebookSDK', :modular_headers => true # change here
end
target 'MyApp' do
workspace 'MyWorkspace.xcworkspace'
project 'MyApp/MyApp.xcodeproj'
end