Beschreiben Sie hier Ihre Entwicklungsumgebung und geben Sie so viele Details wie möglich an. Wenn Sie sie haben, stellen Sie sicher, dass Sie Folgendes angeben:
2019.3.6f1
7.19.1
iOS
Version 10+
XCode 11.3.1'Build für iOS mit Unity 2019.3
Erfolgreicher Build
Die Kompilierung schlägt fehl, weil die Bibliothek -lFBSDKCoreKit nicht gefunden wird.
Andere Probleme sind geschlossen, aber nicht auf Facebook SDK 7.19+ behoben:
https://github.com/facebook/facebook-sdk-for-unity/issues/352
https://github.com/facebook/facebook-sdk-for-unity/issues/350
Erstellen Sie ein neues Projekt in Einheit
FB SDK-Paket installieren (7.19.1)
Unity-Projekt erstellen (2019.3.6f1)
Versuchen Sie, ein Xcode-Projekt auf Xcode zu erstellen (Version 11.3.1)
Fehler prüfen
Ich habe genau das gleiche Problem.
Einheit: 2019.3.6f1
FB-SDK: (7.19.1)
XCode: 11.3.1
Genau das gleiche Problem.
Einheit: 2018.4.5f1 (LTS)
FB-SDK: 7.19.1
XCode: 11.3.1
Ich glaube, ich habe gerade herausgefunden, was das Problem ist. Ich habe das Unity-Projekt aus der Projektdatei erstellt, während Sie bei Cocoapods das Projekt in xcode aus der Arbeitsbereichsdatei öffnen müssen, da es das Unity-Projekt UND das Cocoapods-Projekt enthält. Mit Unity habe ich noch nie etwas aus der Arbeitsbereichsdatei erstellt. Mein Fehler.
@ Flamepygmy
Das hat das Problem auch für mich gelöst. :-)
Ich bin mit XCode überhaupt nicht vertraut, aber ich denke, ein Arbeitsbereich ist mit einer Visual Studio-Lösung vergleichbar. Bisher hatte ich immer nur einen Doppelklick auf die .xcodeproj-Datei gemacht.
Ich hatte das gleiche Problem. Obwohl ich meine Cocoapod-Generierung in Unity Play Services Resolver eingestellt habe, wurde der .xcworkspace nicht erstellt.
Wie ich es behoben habe:
Öffnen Sie das Terminal im Stammordner Ihres Projekts und führen Sie es aus
pod install
Dadurch wurde die .xcworkspace-Datei erstellt. Nach dem Öffnen, dem Hinzufügen von Signaturinformationen usw. wie gewohnt und dem anschließenden Erstellen funktionierte es endlich.
Ich migriere derzeit auch mein reguläres Spiel auf 2019.3 und stehe vor dem gleichen Problem.
Dies scheint ein Problem zu sein, bei dem FBSDKCOCOAPODS=1
als Präprozessor-Makro des Hauptziels ( Unity-iPhone
) anstelle von UnityFramework
eingefügt wird, das von
Ohne dieses Makro zeigt FBSDKCoreKitImport.h
am Ende auf das falsche Include/Import:
#if defined BUCK
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#elif defined __cplusplus
#import <FBSDKCoreKit.h>
#elif defined FBSDKCOCOAPODS
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#else
<strong i="13">@import</strong> FBSDKCoreKit;
#endif
Wenn man sich den Quellcode des Facebook SDK ansieht , denke ich, dass das Problem in der
```c#
public static void AddBuildFlag(string path)
{
string projPath = Path.Combine(path, Path.Combine("Unity-iPhone.xcodeproj", "project.pbxproj"));
PBXProject-Projekt = neues PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
string targetGUID = proj.TargetGuidByName("Unity-iPhone");
proj.AddBuildProperty(targetGUID, "GCC_PREPROCESSOR_DEFINITIONS", " $(vererbt) FBSDKCOCOAPODS=1");
proj.AddBuildProperty(targetGUID, "OTHER_LDFLAGS", "-ObjC");
proj.AddFrameworkToProject(targetGUID, "Accelerate.framework", true);
File.WriteAllText(projPath, proj.WriteToString());
}}
It's still looking for the `Unity-iPhone` target when it should be looking for `UnityFramework` instead for Unity 2019.3.
I can submit a pull request with a quick workaround for the issue like the following, just let me know if I'm in the right direction. Also, I don't have much knowledge on this repo source code, so there could be better solutions than this one.
**PBXProject.cs:**
```c#
/// <summary>
/// Returns the default main target name in Unity project.
/// The returned target name can then be used to retrieve the GUID of the target via TargetGuidByName
/// function. This function can only be used in Unity-generated projects.
/// </summary>
/// <returns>The default main target name.</returns>
public static string GetUnityTargetName()
{
#if UNITY_2019_3_OR_NEWER
return "UnityFramework";
#else
return "Unity-iPhone";
#endif
}
FixupFiles.cs:
c#
public static void AddBuildFlag(string path)
{
string projPath = Path.Combine(path, Path.Combine("Unity-iPhone.xcodeproj", "project.pbxproj"));
PBXProject proj = new PBXProject();
proj.ReadFromString(File.ReadAllText(projPath));
string targetGUID = proj.TargetGuidByName(GetUnityTargetName());
proj.AddBuildProperty(targetGUID, "GCC_PREPROCESSOR_DEFINITIONS", " $(inherited) FBSDKCOCOAPODS=1");
proj.AddBuildProperty(targetGUID, "OTHER_LDFLAGS", "-ObjC");
proj.AddFrameworkToProject(targetGUID, "Accelerate.framework", true);
File.WriteAllText(projPath, proj.WriteToString());
}
Ich habe in 2019.3 mit einem angrenzenden Problem gerungen, es wird gebaut, aber nicht ausgeführt. Wäre für jede Anleitung dankbar. Sehr ähnliches Problem wie bei OPs, daher bin ich mir nicht sicher, ob es ein separates Problem rechtfertigt.
@felippeduran Habe Ihren Fix angezeigt wurde:
2020-04-15 03:25:54.105800+0300 offroad3[35344:6034574] Error loading /var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit
Referenced from: /private/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework
Reason: image not found
2020-04-15 03:25:54.268034+0300 offroad3[35344:6034574] Error loading /var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit
Referenced from: /private/var/containers/Bundle/Application/FE59C147-7622-42CD-BE51-39AA849780D6/offroad3.app/Frameworks/UnityFramework.framework/UnityFramework
Reason: image not found
BEARBEITEN:
Es stellte sich heraus, dass dies ein Problem mit einem Werbevermittler war, der das Facebook Audience Network integriert, und nicht mit dem Facebook Unity SDK. Wenn Sie eine ähnliche Ausgabe wie ich haben, war es das Appodeal-Mediations-Plugin, das dies verursacht hat. Ansonsten bitte diesen Kommentar ignorieren.
BEARBEITEN 2:
Für zukünftige Google-Referenzen, da ich dieses spezielle Problem nicht finden konnte, bestand die Lösung für mein Problem darin, die Frameworks einfach direkt zum Abschnitt Embed Frameworks der Build-Phasen des Unity-iPhone-Ziels hinzuzufügen.
@aVolnov , hat mein
@felippeduran Ich bin mir nicht sicher, da sich mein Problem als ein ganz anderes Tier herausgestellt hat.
@flamepygmy du
Ja, die Unity iOS-Pipeline ist wirklich fehleranfällig ... So viele Teile, die zusammenarbeiten müssen, völlig unvorhersehbar, wenn ein Paket-Update irgendetwas kaputt macht.
Das Kommentieren des Vorschlags von @ flo-wolf hat dieses Problem auch für mich am 2019.3.9f1 behoben.
Ich habe Cocoapods jedoch vollständig deinstalliert und neu installiert, sodass es sich um eine Neuinstallation handelt. Ich habe dabei auch Unity geschlossen, um sicherzustellen, dass es sauber über den Play Services Resolver installiert wurde.
Ich hatte alte Cocoapods-Installationen für ältere Projekte verwendet. Ich bin mir nicht sicher, was sich im letzten Jahr geändert hat, damit eine Neuinstallation der beste Ansatz war - nur ein Upgrade der lokalen Cocoapods-Installation über das Terminal könnte auch funktionieren, aber ich war am Ende meiner Weisheit ;).
Ich glaube, ich habe gerade herausgefunden, was das Problem ist. Ich habe das Unity-Projekt aus der Projektdatei erstellt, während Sie bei Cocopods das Projekt in xcode aus der Arbeitsbereichsdatei öffnen müssen, da es das Unity-Projekt UND das Cocoopods-Projekt enthält. Mit Unity habe ich noch nie etwas aus der Arbeitsbereichsdatei erstellt. Mein Fehler. @flamepygmy
Das hat bei mir funktioniert. Vielen Dank!
Öffnen und erstellen Sie Unity-iPhone.xcworkspace
anstelle von Unity-iPhone.xcodeproj
Ich konnte mit Unity 2019.3 immer noch keinen funktionierenden Build generieren.
Diese Fixes wurden bereits per "Pull Request" verschickt und gibt es einige Schätzungen für die Veröffentlichung? Unity 2019.3 wurde am 28. Januar veröffentlicht, es ist ungefähr 6 Monate her und das Facebook SDK wurde immer noch nicht damit kompatibel gemacht.
Hilfreichster Kommentar
Ich hatte das gleiche Problem. Obwohl ich meine Cocoapod-Generierung in Unity Play Services Resolver eingestellt habe, wurde der .xcworkspace nicht erstellt.
Wie ich es behoben habe:
Öffnen Sie das Terminal im Stammordner Ihres Projekts und führen Sie es aus
pod install
Dadurch wurde die .xcworkspace-Datei erstellt. Nach dem Öffnen, dem Hinzufügen von Signaturinformationen usw. wie gewohnt und dem anschließenden Erstellen funktionierte es endlich.