ios - mac - how to add crashlytics in swift
¿Qué está causando esta advertencia de compilación de Crashlytics?(La opción de enlace de marco ''...'' suministrada por Auto-Linking en ''...'' no es un dylib) (6)
Compilar mi objetivo principal (no un objetivo de prueba como here ) produce este error:
ld: warning: Auto-Linking supplied
''~/Documents/my_app/MyApp/Crashlytics.framework/Crashlytics'',
framework linker option at
~/Documents/my_app/MyApp/Crashlytics.framework/Crashlytics
is not a dylib
De este comando de compilación:
Ld /Build/Products/Debug-iphonesimulator/MyApp.app/MyApp normal i386 cd ~ / Documents / my_app / MyApp export IPHONEOS_DEPLOYMENT_TARGET = 8.0 export PATH = "/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform / Desarrollador / usr / bin: /Applications/Xcode.app/Contents/Developer/usr/bin: / usr / bin: / bin: / usr / sbin: / sbin "/Applications/Xcode.app/Contents/Developer/Toolchains/ XcodeDefault.xctoolchain / usr / bin / clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.2.sdk -L ~ / Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Products / Debug-iphonesimulator -F ~ / Library / Developer / Xcode / DerivedData / MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm / Build / Products / Myf -fp / Myfile / Myfile / My / App / My / / /Developer/Xcode/DerivedData/MyApp-dbmrsjmskpqxmnegayfzfxgcwvsm/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/i386/MyApp -linFile ker -rpath -Xlinker @ ejecutable_path / Frameworks -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-CocoaLumberjack -lPods-Mantle -framework CFNetwork -framework Foundation -framework Security -framework SystemConfiguration -fobjc-arc-link-fox -no_implicit_dylibs -mios-simulator-version-min = 8.0 -framework CoreGraphics -lPods -framework MapKit -framework Fabric -lPods-MyApp -Xlinker -dependency_info -Xlinker ~ / Library / Developer / Xcode / DerivedData / MyApp-dbmrsmwc /MyApp. MyApp
A la inversa de lo que menciono I''L''I y user3517250, el problema también podría ser que tengas
#import
declaraciones de
#import
que no deberían estar allí.
Xcode deduce los marcos para vincular desde las declaraciones
#import
.
Si importa un marco con el que no se vincula, recibirá esta advertencia.
Para referencia futura, esto también puede suceder si vincula sus archivos de prueba al destino de su aplicación.
Por ejemplo: https://github.com/realm/realm-cocoa/issues/1661
Seguí todos los pasos proporcionados por @ i''L''i pero no pude encontrar el archivo
Crashlytics.framework
y
Fabric.framework
en las fases de compilación.
Entonces esto me ayudó.
Paso 1: siga todos los pasos dados Here.
Paso 2:
Ahora, cuando no pueda encontrar los archivos
Crashlytics.framework
y
Fabric.framework
en
Link Binary With Libraries
haga clic en
+
hacer lo siguiente.
2.1:
Haga clic en el botón
+
en
Link Binary With Libraries
.
2.2:
Haga clic en el botón
Add Other...
2.3:
Ahora elija
Crashlytic.framework
y
Fabric.framework
de la carpeta
Pod
: si usa cocoapods, de lo contrario, elija ambos archivos desde donde lo descargó.
Paso 3: Construir con éxito, disfrutar. :)
Tuve el mismo problema pero mi razón era diferente.
Salida de error
ld: advertencia: Auto-Linking suministrado ''~ / GameFolder / Pods / Fabric / tvOS / Fabric.framework / Fabric'', opción de enlace de marco en ~ / GameFolder / Pods / Fabric / tvOS / Fabric.framework / Fabric no es un dylib Indefinido símbolos para la arquitectura x86_64: "_OBJC_CLASS _ $ _ Answers", referenciada desde: type metadata accessor para __ObjC.Answers in GameScene.o type metadata accessor for __ObjC.Answers in AppDelegate.o "_OBJC_CLASS _ $ _ Crashlytics", referenciada desde: typej .Crashlytics en AppDelegate.o "_OBJC_CLASS _ $ _ Fabric", referenciado desde: tipo de acceso a metadatos para __ObjC.Fabric en AppDelegate.o ld: símbolo (s) no encontrado (s) para arquitectura x86_64 clang: error: el comando del enlazador falló con el código de salida 1 (uso -v para ver la invocación)
Razón
-
Mi objetivo
OTHER_LDFLAGS
lasOTHER_LDFLAGS
.
Solución
-
Se cambiaron los
OTHER_LDFLAGS
para simplemente heredar las banderas de Linker. Básicamente, lo cambié a$(inherited)
Yo tuve el mismo problema. Tal vez estropeé la instalación inicial de Fabric pero una vez que agregué Fabric.framework a la lista de frameworks (debería estar en la carpeta raíz de su aplicación por defecto) todo funcionó.
El eslabón perdido:
Este error casi siempre se produce al no tener el binario vinculado a la biblioteca (en este caso sería el
Crashlytics.framework
):
Intentar construir el
MyApp
destino (que incluye encabezados con
#import <Crashlytics/Crashlytics.h>
producirá el error:
ld: advertencia: Auto-Linking suministrado ''../../Crashlytics.framework/Crashlytics'', la opción de enlace de marco en ../../Crashlytics.framework/Crashlytics no es un dylib
Enlace el marco:
Afortunadamente, debería ser fácil solucionar el problema simplemente arrastrando
Crashlytics.framework
desde la carpeta
Frameworks
en el navegador de proyectos a la lista de
Link Binary With Libraries
o usando el
+
.
- Asegúrese de tener su aplicación seleccionada / resaltada en Objetivos mientras realiza este proceso.