Я пытаюсь использовать Facebook SDK в Swift . Он будет компилироваться и запускаться в симуляторе и локально на моем устройстве. Однако попытка архивировать или встроить конфигурацию выпуска не удалась.
ld: bitcode bundle could not be generated because '/.../DerivedData/FacebookSwift-xyz/Build/Products/Release-iphoneos/FBSDKCoreKit.framework/FBSDKCoreKit'
was built without full bitcode. All frameworks and dylibs for bitcode must be
generated from Xcode Archive or Install build file '/.../DerivedData/FacebookSwift-xyz/Build/Products/Release-iphoneos/FBSDKCoreKit.framework/FBSDKCoreKit'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Как воспроизвести
Загрузите или клонируйте Facebook SDK в проекте Swift , отредактируйте схему FacebookCore
для создания конфигурации выпуска.
Запустите Карфаген, чтобы снять зависимости, facebook-ios-sdk и др.
FacebookCore scheme to build the Release config">
Сборка проекта теперь выдаст ошибку; bitcode bundle could not be generated because '.../FBSDKCoreKit' was built without full bitcode
Настройки проекта
- Для цели
FBSDKCoreKit
в подпроекте FBSDKCoreKit "Enable Bitcode" установлено на "YES".
- Цель
FacebookCore
также имеет "Включить битовый код", установленный на "ДА".
- Цель
FacebookCore
имеет 2 зависимости цели; Болты и FBSDKCoreKit, оба являются версиями динамического фреймворка.
Исследование
Я попытался построить схему FBSDKCoreKit-Dynamic (в конфигурации выпуска), и это успешно. Результирующий Framework имеет битовый код (насколько я могу судить), который работает: otool -l "/path/to/framework-binary" | grep -c __LLVM
возвращает 4.
Выполнение file
в двоичном коде возвращает:
/.../FBSDKCoreKit.framework/FBSDKCoreKit: Mach-O universal binary with 2 architectures: [arm_v7:Mach-O dynamically linked shared library arm_v7] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
/.../FBSDKCoreKit.framework/FBSDKCoreKit (for architecture armv7): Mach-O dynamically linked shared library arm_v7
/.../Release-iphoneos/FBSDKCoreKit.framework/FBSDKCoreKit (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
Инструменты и т. Д.
- Xcode 9.4.1
facebook-sdk-swift
- версия 0,31
facebook-ios-sdk
(Objective-C) - версия 4.34
- Карфаген v0.30.1
- Цель развертывания; iOS 8.0 для фреймворков Facebook
- Базовый SDK: iOS 11.4 (
Latest iOS
)
- LLVM v9.0