我开始研究使用 OneSignal v1.15.2 构建的项目。
在Android上一切正常。 在iOS上,我试着遵循这个:https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup( points [5.1 - 5.7]:他们只是添加UserNotifications.framework )
现在,如果我启动我的应用程序,它会崩溃并且消息是:" dyld:找不到图像"。 如果我删除了UserNotifications.framework,那么所有游戏都可以运行,但是通知。
OneSignal的当前版本与过去有何不同?我应该遵循另一个设置流程指南吗?
我正在使用 Unity 5.3.1p4 和 XCode 8.2.1 (我使用的是XCode 8.3.1并且通知效果很好,但这个新版本有一些文件证明与Unity 5.3.1p4不兼容。
任何人都可以帮助我吗?
谢谢。
最好的关注, 安德烈。
答案 0 :(得分: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 ());
}
}