Facebook-sdk-for-unity: 在 iOS 11 设备上使用 SDK v7.21.2 时应用程序在启动时崩溃

创建于 2020-08-18  ·  8评论  ·  资料来源: facebook/facebook-sdk-for-unity

环境

在此处描述您的开发环境,提供尽可能多的详细信息。 如果您有它们,请确保包括:

  • Unity 编辑器版本: 2018.4.26f1
  • Unity SDK 版本: 7.21.2
  • XCode: 11.6
  • 安装平台和版本: iPad4,4运行[iOS]版本11.3.1

预期成绩

没有崩溃

实际结果

游戏启动时崩溃:

dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /var/containers/Bundle/Application/6A540FA0-A178-4762-BE4D-1A32AC021D5C/XX.app/XX Reason: image not found

相同版本在 iOS 12.4.413.6设备上运行正常

重现步骤

只需使用指定版本进行简单构建

最有用的评论

花了很多时间并尝试了很多次后,我找到了解决此问题的方法。 希望对你也有帮助。
将此添加到您的 PostProcessBuild:

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

所有8条评论

它也很容易用 iOS 模拟器重现:(

我正在使用以下后期构建脚本作为在 iOS 11 上不崩溃的解决方法:

public class FacebookCrashIOS11 : ScriptableObject
{
    [PostProcessBuild]
    public static void OnPostProcess(BuildTarget buildTarget, string buildPath)
    {
        // Only for iOS
        if (buildTarget != BuildTarget.iOS)
        {
            return;
        }

        string projectPath = PBXProject.GetPBXProjectPath(buildPath);
        PBXProject project = new PBXProject();

        // Read.
        project.ReadFromString(File.ReadAllText(projectPath));
        string targetGUID = project.GetUnityMainTargetGuid();

        project.SetBuildProperty(targetGUID, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); // Facebook 7.21.2 crashed on iOS 11.0 without this line

        // Write.
        File.WriteAllText(projectPath, project.WriteToString());
    }
}

花了很多时间并尝试了很多次后,我找到了解决此问题的方法。 希望对你也有帮助。
将此添加到您的 PostProcessBuild:

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

我在 ios < 12.2 上遇到了同样的问题,除了 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 之外,还发现了与 LD_RUNPATH_SEARCH_PATHS 相同的解决方法。

如果游戏在主文档和更改日志中支持较旧的操作系统版本,则最好添加明确的文档,这些文档是必需的。

我的 Unity 游戏也遇到了“应用程序在启动时崩溃”的问题,但我的 iPhone XS 运行的是 iOS 13.6.1

统一 2019.4.9f1
Facebook SDK 7.21.2
iOS 13.6.1

=> 崩溃

在升级到 FBSDK 7.21.2 之前,项目有 FBSDK 7.19.0,游戏运行没有崩溃。

我试过了:

project.SetBuildProperty(targetId, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

但上传时出现此错误:

错误 ITMS-90206:“无效的捆绑包。‘xxxxx.app/Frameworks/UnityFramework.framework’中的捆绑包包含不允许使用的文件‘Frameworks’。”
iTunes Transporter 的返回状态为 1:错误 ITMS-90206:“无效的捆绑包。‘xxxxx.app/Frameworks/UnityFramework.framework’中的捆绑包包含不允许的文件‘Frameworks’。”

我猜 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 会导致 Unity 2019.4.9f1 出现此错误,因为当我删除第二行 (LD_RUNPATH_SEARCH_PATHS) 并重新构建时,我仍然遇到相同的 Invalid Bundle 错误。

目前我必须恢复到 FBSDK 7.19.0 并且不再崩溃。

我对 FBSDK 8.1.0 也有同样的问题。
ios 11 <= 从 7.18.1 升级 FBSDK 后崩溃

我的 Unity 游戏也遇到了“应用程序在启动时崩溃”的问题,但我的 iPhone XS 运行的是 iOS 13.6.1

统一 2019.4.9f1
Facebook SDK 7.21.2
iOS 13.6.1

=> 崩溃

在升级到 FBSDK 7.21.2 之前,项目有 FBSDK 7.19.0,游戏运行没有崩溃。

我试过了:

project.SetBuildProperty(targetId, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

但上传时出现此错误:

错误 ITMS-90206:“无效的捆绑包。‘xxxxx.app/Frameworks/UnityFramework.framework’中的捆绑包包含不允许使用的文件‘Frameworks’。”
iTunes Transporter 的返回状态为 1:错误 ITMS-90206:“无效的捆绑包。‘xxxxx.app/Frameworks/UnityFramework.framework’中的捆绑包包含不允许的文件‘Frameworks’。”

我猜 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES 会导致 Unity 2019.4.9f1 出现此错误,因为当我删除第二行 (LD_RUNPATH_SEARCH_PATHS) 并重新构建时,我仍然遇到相同的 Invalid Bundle 错误。

目前我必须恢复到 FBSDK 7.19.0 并且不再崩溃。

我也得到了
Return status of iTunes Transporter was 1: ERROR ITMS-90206: "Invalid Bundle. The bundle at 'xxxxx.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."

为了解决它,我刚刚删除了我当前的存档并重新存档,然后它接受了

我找到了一份工作表,请查看此链接:
https://github.com/facebook/facebook-sdk-for-unity/issues/193#issuecomment -754953304

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Duke74 picture Duke74  ·  4评论

laijingfeng picture laijingfeng  ·  6评论

pvalium picture pvalium  ·  6评论

michelleran picture michelleran  ·  4评论

edscodeblenders picture edscodeblenders  ·  4评论