2017-05-04 137 views
0

我开始研究一个使用OneSignal v1.15.2构建的项目。OneSignal Unity iOS启动时崩溃

在Android上一切正常。 在iOS上,而不是,我试图按照这样的:https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup点[5.1 - 5.7]:他们只是增加UserNotifications.framework)现在

,如果我启动我的应用程序崩溃和消息是:“使dyld:图像未找到“。 如果我删除UserNotifications.framework所有游戏运行正常,但通知。

OneSignal的当前版本是否与过去不同?我应该遵循另一个设置流程指南吗?

我使用团结5.3.1p4的XCode 8.2.1(我用的是8.3.1的XCode和通知的效果不错,但这个新版本有统一5.3.1p4一些文件不兼容)。

任何人都可以帮助我吗?

谢谢。

最好的方面, 安德烈。

+0

选中此链接。 http://stackoverflow.com/questions/24333981/ios-app-with-framework-crashed-on-device-dyld-library-not-loaded-xcode-6-beta/28469804#28469804 –

+0

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

回答

1

对于什么值得我使用Unity 5.0.0和Xcode 8.3.2与Unity5OneSignalSDK.unitypackage SDK和点5.1到5.7足够让推送通知工作。

我也在使用以下后处理器检查“远程通知”的背景模式自动化...我无法找到一种方法来自动化与UserNotifications.framework的链接但是tho ...让我知道如果任何人都有如何做到这一点的想法。

// --------------------------------------------------------------------------------------------------------------------- 
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()); 

    } 

}