ここで開発環境を説明し、できるだけ多くの詳細を説明してください。 それらがある場合は、必ず以下を含めてください。
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でも同じ回避策が見つかりました。
ゲームがメインドキュメントと変更ログで古いOSバージョンをサポートしている場合は、これらが必要であるという明示的なドキュメントを追加すると便利です。
Unityゲームでもこの「起動時にアプリがクラッシュする」という問題が発生していますが、iPhoneXSにはiOS13.6.1が搭載されています。
Unity 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"、 "$(継承)@ execute_path / Frameworks");
しかし、アップロード時にこのエラーが発生しました:
エラーITMS-90206:「バンドルが無効です。「xxxxx.app/Frameworks/UnityFramework.framework」のバンドルに許可されていないファイル「Frameworks」が含まれています。」
iTunes Transporterの戻りステータスは1でした:エラーITMS-90206:「バンドルが無効です。「xxxxx.app/Frameworks/UnityFramework.framework」のバンドルに許可されていないファイル「Frameworks」が含まれています。」
2行目(LD_RUNPATH_SEARCH_PATHS)を削除して再ビルドしたときに、同じ無効なバンドルエラーが発生したため、Unity2019.4.9f1ではALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESによってこのエラーが発生すると思います。
現在、FBSDK 7.19.0に戻す必要があり、クラッシュすることはありません。
FBSDK8.1.0でも同じ問題が発生しました。
iOS 11 <= FBSDKを7.18.1からアップグレードした後にクラッシュする
Unityゲームでもこの「起動時にアプリがクラッシュする」という問題が発生していますが、iPhoneXSにはiOS13.6.1が搭載されています。
Unity 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"、 "$(継承)@ execute_path / Frameworks");しかし、アップロード時にこのエラーが発生しました:
エラーITMS-90206:「バンドルが無効です。「xxxxx.app/Frameworks/UnityFramework.framework」のバンドルに許可されていないファイル「Frameworks」が含まれています。」
iTunes Transporterの戻りステータスは1でした:エラーITMS-90206:「バンドルが無効です。「xxxxx.app/Frameworks/UnityFramework.framework」のバンドルに許可されていないファイル「Frameworks」が含まれています。」2行目(LD_RUNPATH_SEARCH_PATHS)を削除して再ビルドしたときに、同じ無効なバンドルエラーが発生したため、Unity2019.4.9f1ではALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESによってこのエラーが発生すると思います。
現在、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に追加します。