2015-07-13 46 views
4

我目前在iOS編譯時使用Unity 5.0.2和Unity FB SDK 7.0.2 Beta時遇到問題。Unity Facebook SDK 7.0.2在iOS中編譯失敗

的錯誤是:

Undefined symbols for architecture armv7: 
    "_iosShareLink", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosSetShareDialogMode", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosLogOut", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosLogInWithReadPermissions", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosLogInWithPublishPermissions", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosFBAppEventsLogEvent", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosInit", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosJoinGameGroup", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosFBSettingsActivateApp", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosAppRequest", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosFBSdkVersion", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosCreateGameGroup", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosFBAppEventsSetLimitEventUsage", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosGetDeepLink", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
    "_iosFBAppEventsLogPurchase", referenced from: 
     RegisterMonoModules() in RegisterMonoModules.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

如果我使用IL2CPP編譯,它會顯示一些額外的信息

Undefined symbols for architecture armv7: 
    "_iosShareLink", referenced from: 
     _IOSFacebook_iosShareLink_m231 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosShareLink_m231, _IOSFacebook_iosShareLink_m231_MethodInfo) 
    "_iosSetShareDialogMode", referenced from: 
     _IOSFacebook_iosSetShareDialogMode_m230 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosSetShareDialogMode_m230_MethodInfo, _IOSFacebook_iosSetShareDialogMode_m230) 
    "_iosLogOut", referenced from: 
     _IOSFacebook_iosLogOut_m229 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosLogOut_m229, _IOSFacebook_iosLogOut_m229_MethodInfo) 
    "_iosLogInWithReadPermissions", referenced from: 
     _IOSFacebook_iosLogInWithReadPermissions_m227 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosLogInWithReadPermissions_m227_MethodInfo, _IOSFacebook_iosLogInWithReadPermissions_m227) 
    "_iosLogInWithPublishPermissions", referenced from: 
     _IOSFacebook_iosLogInWithPublishPermissions_m228 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosLogInWithPublishPermissions_m228_MethodInfo, _IOSFacebook_iosLogInWithPublishPermissions_m228) 
    "_iosFBAppEventsLogEvent", referenced from: 
     _IOSFacebook_iosFBAppEventsLogEvent_m236 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosFBAppEventsLogEvent_m236, _IOSFacebook_iosFBAppEventsLogEvent_m236_MethodInfo) 
    "_iosInit", referenced from: 
     _IOSFacebook_iosInit_m226 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosInit_m226, _IOSFacebook_iosInit_m226_MethodInfo) 
    "_iosJoinGameGroup", referenced from: 
     _IOSFacebook_iosJoinGameGroup_m234 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosJoinGameGroup_m234_MethodInfo, _IOSFacebook_iosJoinGameGroup_m234) 
    "_iosFBSettingsActivateApp", referenced from: 
     _IOSFacebook_iosFBSettingsActivateApp_m235 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosFBSettingsActivateApp_m235, _IOSFacebook_iosFBSettingsActivateApp_m235_MethodInfo) 
    "_iosAppRequest", referenced from: 
     _IOSFacebook_iosAppRequest_m232 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosAppRequest_m232, _IOSFacebook_iosAppRequest_m232_MethodInfo) 
    "_iosFBSdkVersion", referenced from: 
     _IOSFacebook_iosFBSdkVersion_m240 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosFBSdkVersion_m240, _IOSFacebook_iosFBSdkVersion_m240_MethodInfo) 
    "_iosCreateGameGroup", referenced from: 
     _IOSFacebook_iosCreateGameGroup_m233 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosCreateGameGroup_m233, _IOSFacebook_iosCreateGameGroup_m233_MethodInfo) 
    "_iosFBAppEventsSetLimitEventUsage", referenced from: 
     _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238_MethodInfo, _IOSFacebook_iosFBAppEventsSetLimitEventUsage_m238) 
    "_iosGetDeepLink", referenced from: 
     _IOSFacebook_iosGetDeepLink_m239 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosGetDeepLink_m239, _IOSFacebook_iosGetDeepLink_m239_MethodInfo) 
    "_iosFBAppEventsLogPurchase", referenced from: 
     _IOSFacebook_iosFBAppEventsLogPurchase_m237 in Bulk_Assembly-CSharp_0.o 
    (maybe you meant: _IOSFacebook_iosFBAppEventsLogPurchase_m237, _IOSFacebook_iosFBAppEventsLogPurchase_m237_MethodInfo) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

任何人都知道如何解決它類似的錯誤?

回答

-1

問題是XCode項目缺少Facebook綁定文件。

請確保以下文件存在於Xcode中。

  1. fbUnityInterface.h和fbUnityInterface.m(FB綁定文件)
  2. NativeDialogModes.cs
  3. FacebookSDK
+0

即使這些文件不在Xcode中提供,我什麼都不能做。 –

+0

這些文件存在於統一文件夾中。手動將它們添加到您的XCode項目 –

1

如果發現fbUnityInterface.h從Xcode項目缺失,試試這個:

在您的Unity項目中找到該文件,並在檢查器中的「選擇插件平臺」框中點擊iOS複選框。

沒有這個複選框,Unity可能不知道.h文件需要包含在構建中,因爲它只在.mm文件中引用,而Unity不解析該文件。

+1

這一個解決了它對我來說!儘管爲了編譯FBUnityUtility.h也需要檢查。因此,建議的一個建議是在項目搜索窗口中鍵入「fbunity」,並檢查結果中列出的所有文件,以查看iOS複選框是否打勾。 – user1029978