在此处描述您的开发环境,提供尽可能多的详细信息。 如果您有它们,请确保包括:
2018.4.26f1
7.21.2
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.4
和13.6
设备上运行正常
只需使用指定版本进行简单构建
它也很容易用 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
最有用的评论
花了很多时间并尝试了很多次后,我找到了解决此问题的方法。 希望对你也有帮助。
将此添加到您的 PostProcessBuild: