【问题标题】:OneSignal Unity iOS crash on startupOneSignal Unity iOS 在启动时崩溃
【发布时间】:2017-05-04 08:35:03
【问题描述】:

我开始从事一个使用 OneSignal v1.15.2 构建的项目。

在 Android 上一切正常。 相反,在 iOS 上,我尝试遵循:https://documentation.onesignal.com/v3.0/docs/unity-sdk-setuppoints [5.1 - 5.7]:他们只是添加了 UserNotifications.framework

现在,如果我启动我的应用程序,它会崩溃并且消息是:“dyld: image not found”。 如果我删除 UserNotifications.framework 所有游戏运行正常,但通知。

OneSignal 的当前版本与过去有很大不同吗?我应该遵循其他设置过程指南吗?

我正在使用 Unity 5.3.1p4XCode 8.2.1(我使用的是 XCode 8.3.1 并且通知运行良好,但这个较新的版本有一些文档与 Unity 5.3.1p4 不兼容)。

谁能帮帮我?

谢谢。

最好的尊重, 安德烈亚。

【问题讨论】:

  • @OgnjenMarceta,不幸的是它似乎对我不起作用。当我创建 XCode 项目时,Unity 会自动导入一些 .framework 文件,但不包括 UserNotifications.framework。对我来说,OneSignal 官方指南说一些不起作用的东西对我来说听起来很奇怪。我想知道是否有与 v1.15.2 一起使用的旧指南。

标签: ios xcode unity3d crash onesignal


【解决方案1】:

我将 Unity 5.6.0 和 Xcode 8.3.2 与 SDK Unity5OneSignalSDK.unitypackage 以及 5.1 到 5.7 点一起使用,足以让推送通知正常工作。

我还在自动化后台模式以使用以下后处理器检查“远程通知”......我找不到一种方法来自动化与 UserNotifications.framework 的链接......如果有人告诉我对如何做到这一点有想法。

// ---------------------------------------------------------------------------------------------------------------------
public static class XCodePostProcess
{

    // -----------------------------------------------------------------------------------------------------------------
    [PostProcessBuild(100)]
    public static void OnPostprocessBuild( BuildTarget target, string pathToBuildProject )
    {
        if (target == BuildTarget.iOS)
        {
            UpdateInfoPlist( pathToBuildProject );
        }
    }

    // -----------------------------------------------------------------------------------------------------------------
    private static void UpdateInfoPlist( string path )
    {

        // load plist
        string plistPath = Path.Combine( path, "Info.plist" );
        PlistDocument plist = new PlistDocument();
        plist.ReadFromString( File.ReadAllText( plistPath ) );

        //Get Root
        PlistElementDict rootDict = plist.root;

        //Add Necessary Things
        PlistElementArray LSApplicationQueriesSchemes = rootDict.CreateArray( "LSApplicationQueriesSchemes" );
        LSApplicationQueriesSchemes.AddString( "itms-beta" );  // test flight

        // localizations
        PlistElementArray CFBundleLocalizations = rootDict.CreateArray( "CFBundleLocalizations" );
        CFBundleLocalizations.AddString( "en" );    // english
        CFBundleLocalizations.AddString( "de" );    // german
        CFBundleLocalizations.AddString( "fr" );    // french
        CFBundleLocalizations.AddString( "es" );    // spanish

        // for OneSigna remote notifications
        PlistElementArray UIBackgroundModes = rootDict.CreateArray( "UIBackgroundModes" );
        UIBackgroundModes.AddString( "remote-notification" );

        //WriteFile
        File.WriteAllText (plistPath, plist.WriteToString ());

    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    相关资源
    最近更新 更多