diff --git a/.gitignore b/.gitignore index 2cc0a39b0..414fc16ea 100644 --- a/.gitignore +++ b/.gitignore @@ -64,81 +64,6 @@ FacebookSettings.asset* /facebook-android-wrapper/libs/ # MD Plugins -*.StyleCop -*.StyleCop.meta -StyleCop.Cache -StyleCop.Cache.meta - -# OSX -*.DS_Store - -# built application files -*.apk -*.ap_ - -# files for the dex VM -*.dex - -# Java class files -*.class - -# generated files -bin/ -gen/ -obj/ - -# Local configuration file (sdk path, etc) -local.properties -local.gradle - -# Proguard folder generated by Eclipse -proguard/ - -# Intellij project files -*.iml -*.ipr -*.iws -.idea/ - -# Gradle -.gradle -build - -# vim temp files -*.swp - -# Arc generated -.phutil_module_cache - -# Unity3D generated meta files -*.pidb.meta - -# Unity3D Generated File On Crash Reports -sysinfo.txt - -# Unity project version File -ProjectVersion.txt - -# Export Folder For SDK Package -/TempGenStaticObjects/ -/out/ - -# MD unit test results -test-results/ -unit_test_results.txt -TestResult.xml - -# Ignore Plugin Folders which are build by build -/Facebook.Unity/Assets/Plugins/ - -# Ignore Current Facebook Settings -FacebookSettings.asset* - -# Ignore android wrapper lib created by build scripts -/facebook-android-wrapper/libs/ - -# MD Plugins -*.StyleCop *.StyleCop.meta StyleCop.Cache StyleCop.Cache.meta @@ -151,3 +76,6 @@ StyleCop.Cache.meta # Ignore editor generated user prefs *.userprefs + +# Nuget packages +/packages/ diff --git a/Facebook.Unity.Android.StrippingHack/AndroidWrapper.cs b/Facebook.Unity.Android.StrippingHack/AndroidWrapper.cs new file mode 100644 index 000000000..1c9b1f84b --- /dev/null +++ b/Facebook.Unity.Android.StrippingHack/AndroidWrapper.cs @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity.Android +{ + public class AndroidWrapper + { + } +} diff --git a/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj b/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj new file mode 100644 index 000000000..b22eb2103 --- /dev/null +++ b/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj @@ -0,0 +1,38 @@ + + + + Debug + AnyCPU + {CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B} + Library + Facebook.Unity.Android.StrippingHack + Facebook.Unity.Android + v3.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + true + bin\Release + prompt + 4 + false + + + + + + + + + + diff --git a/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj.user b/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj.user new file mode 100644 index 000000000..7306da10b --- /dev/null +++ b/Facebook.Unity.Android.StrippingHack/Facebook.Unity.Android.StrippingHack.csproj.user @@ -0,0 +1,7 @@ + + + + Project + true + + \ No newline at end of file diff --git a/Facebook.Unity.Android.StrippingHack/Properties/AssemblyInfo.cs b/Facebook.Unity.Android.StrippingHack/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..0c6492d4b --- /dev/null +++ b/Facebook.Unity.Android.StrippingHack/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Android/AndroidWrapper.cs b/Facebook.Unity.Android/AndroidWrapper.cs new file mode 100644 index 000000000..e0f8c4b4d --- /dev/null +++ b/Facebook.Unity.Android/AndroidWrapper.cs @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity.Android +{ + using Facebook.Unity.Mobile.Android; + using UnityEngine; + + internal class AndroidWrapper : IAndroidWrapper + { + private const string FacebookJavaClassName = "com.facebook.unity.FB"; + private AndroidJavaClass facebookJavaClass = new AndroidJavaClass(FacebookJavaClassName); + + public T CallStatic(string methodName) + { + return this.facebookJavaClass.CallStatic(methodName); + } + + public void CallStatic(string methodName, params object[] args) + { + this.facebookJavaClass.CallStatic(methodName, args); + } + } +} diff --git a/Facebook.Unity.Android/Facebook.Unity.Android.csproj b/Facebook.Unity.Android/Facebook.Unity.Android.csproj new file mode 100644 index 000000000..b97b7a0db --- /dev/null +++ b/Facebook.Unity.Android/Facebook.Unity.Android.csproj @@ -0,0 +1,49 @@ + + + + Debug + AnyCPU + {D3DF5151-7271-4CBA-8F91-85B7845E2FBD} + Library + Facebook.Unity.Android + Facebook.Unity.Android + + + v3.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + full + true + bin\Release + prompt + 4 + false + + + + + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll + + + + + + + + + + {3DFF6C0C-BB04-405D-A23F-95999630E7F8} + Facebook.Unity + + + diff --git a/Facebook.Unity.Android/Properties/AssemblyInfo.cs b/Facebook.Unity.Android/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..c2e7a2f4c --- /dev/null +++ b/Facebook.Unity.Android/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Arcade/ArcadeWrapper.cs b/Facebook.Unity.Arcade/ArcadeWrapper.cs index b0383c7eb..1c7d13b80 100644 --- a/Facebook.Unity.Arcade/ArcadeWrapper.cs +++ b/Facebook.Unity.Arcade/ArcadeWrapper.cs @@ -98,6 +98,7 @@ public void DoPayRequest( string requestId, string pricepointId, string testCurrency, + string developerPayload, string callbackId, ArcadeFacebook.OnComplete completeDelegate) { @@ -112,7 +113,8 @@ public void DoPayRequest( quantityMax, requestId, pricepointId, - testCurrency); + testCurrency, + developerPayload); this.HandleRequest( request, callbackId, diff --git a/Facebook.Unity.Arcade/Facebook.Unity.Arcade.csproj b/Facebook.Unity.Arcade/Facebook.Unity.Arcade.csproj index bf10ed6b6..907b1ce3c 100644 --- a/Facebook.Unity.Arcade/Facebook.Unity.Arcade.csproj +++ b/Facebook.Unity.Arcade/Facebook.Unity.Arcade.csproj @@ -19,6 +19,7 @@ DEBUG; prompt 4 + true none @@ -27,11 +28,12 @@ prompt 4 false + true - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEngine.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll Plugins\FacebookNamedPipeClient.dll diff --git a/Facebook.Unity.Arcade/Plugins/FacebookNamedPipeClient.dll b/Facebook.Unity.Arcade/Plugins/FacebookNamedPipeClient.dll index 2e9d53dae..e8d118f3d 100644 Binary files a/Facebook.Unity.Arcade/Plugins/FacebookNamedPipeClient.dll and b/Facebook.Unity.Arcade/Plugins/FacebookNamedPipeClient.dll differ diff --git a/Facebook.Unity.Arcade/Properties/AssemblyInfo.cs b/Facebook.Unity.Arcade/Properties/AssemblyInfo.cs index 4502ea47c..c2e7a2f4c 100644 --- a/Facebook.Unity.Arcade/Properties/AssemblyInfo.cs +++ b/Facebook.Unity.Arcade/Properties/AssemblyInfo.cs @@ -18,7 +18,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -using System.Runtime.CompilerServices; using System.Reflection; +using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("7.8.0")] +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Arcade/Settings.StyleCop b/Facebook.Unity.Arcade/Settings.StyleCop new file mode 100644 index 000000000..b49c38ebd --- /dev/null +++ b/Facebook.Unity.Arcade/Settings.StyleCop @@ -0,0 +1,219 @@ + + + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + + + \ No newline at end of file diff --git a/Facebook.Unity.Editor/Facebook.Unity.Editor.csproj b/Facebook.Unity.Editor/Facebook.Unity.Editor.csproj index cd42f0b65..735b4faad 100644 --- a/Facebook.Unity.Editor/Facebook.Unity.Editor.csproj +++ b/Facebook.Unity.Editor/Facebook.Unity.Editor.csproj @@ -20,6 +20,7 @@ prompt 4 false + true full @@ -28,14 +29,15 @@ prompt 4 false + true - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEditor.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEditor.dll - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEngine.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll @@ -54,24 +56,15 @@ - - - - - - - - - - - - - {3DFF6C0C-BB04-405D-A23F-95999630E7F8} Facebook.Unity + + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6} + Facebook.Unity.Settings + diff --git a/Facebook.Unity.Editor/FacebookBuild.cs b/Facebook.Unity.Editor/FacebookBuild.cs index eaa1caa40..79232b8ad 100644 --- a/Facebook.Unity.Editor/FacebookBuild.cs +++ b/Facebook.Unity.Editor/FacebookBuild.cs @@ -27,7 +27,8 @@ namespace Facebook.Unity.Editor internal class FacebookBuild { - private const string FacebookPath = "Assets/FacebookSDK/SDK/"; + private const string FacebookPath = "Assets/FacebookSDK/"; + private const string SDKPath = "Assets/FacebookSDK/SDK/"; private const string ExamplesPath = "Assets/FacebookSDK/Examples/"; private const string PluginsPath = "Assets/FacebookSDK/Plugins/"; @@ -73,17 +74,19 @@ public static string ExportPackage() AssetDatabase.CreateFolder("Assets", "Temp"); } - AssetDatabase.MoveAsset(FacebookPath + "Resources/FacebookSettings.asset", "Assets/Temp/FacebookSettings.asset"); + AssetDatabase.MoveAsset(SDKPath + "Resources/FacebookSettings.asset", "Assets/Temp/FacebookSettings.asset"); AssetDatabase.DeleteAsset(PluginsPath + "Android/AndroidManifest.xml"); AssetDatabase.DeleteAsset(PluginsPath + "Android/AndroidManifest.xml.meta"); - string[] facebookFiles = (string[])Directory.GetFiles(FacebookPath, "*.*", SearchOption.AllDirectories); + string[] facebookFiles = (string[])Directory.GetFiles(FacebookPath, "*.*", SearchOption.TopDirectoryOnly); + string[] sdkFiles = (string[])Directory.GetFiles(SDKPath, "*.*", SearchOption.AllDirectories); string[] exampleFiles = (string[])Directory.GetFiles(ExamplesPath, "*.*", SearchOption.AllDirectories); string[] pluginsFiles = (string[])Directory.GetFiles(PluginsPath, "*.*", SearchOption.AllDirectories); - string[] files = new string[facebookFiles.Length + exampleFiles.Length + pluginsFiles.Length]; + string[] files = new string[facebookFiles.Length + sdkFiles.Length + exampleFiles.Length + pluginsFiles.Length]; facebookFiles.CopyTo(files, 0); - exampleFiles.CopyTo(files, facebookFiles.Length); - pluginsFiles.CopyTo(files, facebookFiles.Length + exampleFiles.Length); + sdkFiles.CopyTo(files, facebookFiles.Length); + exampleFiles.CopyTo(files, sdkFiles.Length + facebookFiles.Length); + pluginsFiles.CopyTo(files, sdkFiles.Length + facebookFiles.Length + exampleFiles.Length); AssetDatabase.ExportPackage( files, @@ -93,7 +96,7 @@ public static string ExportPackage() finally { // Move files back no matter what - AssetDatabase.MoveAsset("Assets/Temp/FacebookSettings.asset", FacebookPath + "Resources/FacebookSettings.asset"); + AssetDatabase.MoveAsset("Assets/Temp/FacebookSettings.asset", SDKPath + "Resources/FacebookSettings.asset"); AssetDatabase.DeleteAsset("Assets/Temp"); // regenerate the manifest diff --git a/Facebook.Unity.Editor/FacebookPostprocess.cs b/Facebook.Unity.Editor/FacebookPostprocess.cs index 31d82b37e..a51330629 100644 --- a/Facebook.Unity.Editor/FacebookPostprocess.cs +++ b/Facebook.Unity.Editor/FacebookPostprocess.cs @@ -22,6 +22,7 @@ namespace Facebook.Unity.Editor { using System.IO; using Facebook.Unity; + using Facebook.Unity.Settings; using UnityEditor; using UnityEditor.Callbacks; using UnityEngine; @@ -32,7 +33,7 @@ public static class XCodePostProcess public static void OnPostProcessBuild(BuildTarget target, string path) { // If integrating with facebook on any platform, throw a warning if the app id is invalid - if (!Facebook.Unity.FacebookSettings.IsValidAppId) + if (!FacebookSettings.IsValidAppId) { Debug.LogWarning("You didn't specify a Facebook app ID. Please add one using the Facebook menu in the main Unity editor."); } diff --git a/Facebook.Unity.Editor/FacebookSettingsEditor.cs b/Facebook.Unity.Editor/FacebookSettingsEditor.cs index e003d3fc5..a8f029221 100644 --- a/Facebook.Unity.Editor/FacebookSettingsEditor.cs +++ b/Facebook.Unity.Editor/FacebookSettingsEditor.cs @@ -23,6 +23,7 @@ namespace Facebook.Unity.Editor using System.Collections.Generic; using System.IO; using Facebook.Unity; + using Facebook.Unity.Settings; using UnityEditor; using UnityEngine; @@ -31,13 +32,23 @@ namespace Facebook.Unity.Editor public class FacebookSettingsEditor : Editor { private bool showFacebookInitSettings = false; - private bool showAndroidUtils = EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android; - private bool showIOSSettings = EditorUserBuildSettings.activeBuildTarget.ToString() == "iOS"; + private bool showAndroidUtils = false; + private bool showIOSSettings = false; private bool showAppLinksSettings = false; + private bool showFacebookUploadBuildSettings = false; private bool showAboutSection = false; - private GUIContent appNameLabel = new GUIContent("App Name [?]:", "For your own use and organization.\n(ex. 'dev', 'qa', 'prod')"); - private GUIContent appIdLabel = new GUIContent("App Id [?]:", "Facebook App Ids can be found at https://developers.facebook.com/apps"); + private GUIContent appNameLabel = new GUIContent( + "App Name (Optional) [?]:", + "For your own use and organization.\n(ex. 'dev', 'qa', 'prod')"); + + private GUIContent appIdLabel = new GUIContent( + "App Id [?]:", + "Facebook App Ids can be found at https://developers.facebook.com/apps"); + + private GUIContent clientTokenLabel = new GUIContent( + "Client Token (Optional) [?]:", + "For login purposes. Client Token can be found at https://developers.facebook.com/apps, in Settings -> Advanced"); private GUIContent urlSuffixLabel = new GUIContent("URL Scheme Suffix [?]", "Use this to share Facebook APP ID's across multiple iOS apps. https://developers.facebook.com/docs/ios/share-appid-across-multiple-apps-ios-sdk/"); @@ -51,6 +62,10 @@ public class FacebookSettingsEditor : Editor private GUIContent classNameLabel = new GUIContent("Class Name [?]", "aka: the activity name"); private GUIContent debugAndroidKeyLabel = new GUIContent("Debug Android Key Hash [?]", "Copy this key to the Facebook Settings in order to test a Facebook Android app"); + private GUIContent uploadAccessTokenLabel = new GUIContent( + "Upload Access Token [?]", + "Use this to upload build for Facebook platform"); + private GUIContent sdkVersion = new GUIContent("SDK Version [?]", "This Unity Facebook SDK version. If you have problems or compliments please include this so we know exactly what version to look out for."); public FacebookSettingsEditor() @@ -114,6 +129,13 @@ public static void ReportABug() Application.OpenURL(url); } + void OnEnable() + { + this.showAndroidUtils = EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android; + this.showIOSSettings = EditorUserBuildSettings.activeBuildTarget.ToString() == "iOS"; + } + + public override void OnInspectorGUI() { EditorGUILayout.Separator(); @@ -145,23 +167,35 @@ private void AppIdGUI() EditorGUILayout.HelpBox("Invalid App Id", MessageType.Error); } - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(this.appNameLabel); - EditorGUILayout.LabelField(this.appIdLabel); - EditorGUILayout.EndHorizontal(); for (int i = 0; i < FacebookSettings.AppIds.Count; ++i) { + EditorGUILayout.BeginVertical(); + + EditorGUILayout.LabelField(string.Format("App #{0}", i + 1)); + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(this.appNameLabel); FacebookSettings.AppLabels[i] = EditorGUILayout.TextField(FacebookSettings.AppLabels[i]); + EditorGUILayout.EndHorizontal(); + GUI.changed = false; + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(this.appIdLabel); FacebookSettings.AppIds[i] = EditorGUILayout.TextField(FacebookSettings.AppIds[i]); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(this.clientTokenLabel); + FacebookSettings.ClientTokens[i] = EditorGUILayout.TextField(FacebookSettings.ClientTokens[i]); + EditorGUILayout.EndHorizontal(); + if (GUI.changed) { this.SettingsChanged(); ManifestMod.GenerateManifest(); } - EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndVertical(); } EditorGUILayout.BeginHorizontal(); @@ -169,6 +203,7 @@ private void AppIdGUI() { FacebookSettings.AppLabels.Add("New App"); FacebookSettings.AppIds.Add("0"); + FacebookSettings.ClientTokens.Add(string.Empty); FacebookSettings.AppLinkSchemes.Add(new FacebookSettings.UrlSchemes()); this.SettingsChanged(); } @@ -179,6 +214,7 @@ private void AppIdGUI() { FacebookSettings.AppLabels.Pop(); FacebookSettings.AppIds.Pop(); + FacebookSettings.ClientTokens.Pop(); FacebookSettings.AppLinkSchemes.Pop(); this.SettingsChanged(); } @@ -325,6 +361,23 @@ private void AppLinksUtilGUI() } } + private void UploadBuildSettingsGUI() + { + this.showFacebookUploadBuildSettings = EditorGUILayout.Foldout( + this.showFacebookUploadBuildSettings, + "Upload Facebook Build Settings"); + + if (this.showFacebookUploadBuildSettings) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(this.uploadAccessTokenLabel, GUILayout.Width(135), GUILayout.Height(16)); + FacebookSettings.UploadAccessToken = EditorGUILayout.TextField(FacebookSettings.UploadAccessToken); + EditorGUILayout.EndHorizontal(); + } + + EditorGUILayout.Space(); + } + private void AboutGUI() { this.showAboutSection = EditorGUILayout.Foldout(this.showAboutSection, "About the Facebook SDK"); diff --git a/Facebook.Unity.Editor/Properties/AssemblyInfo.cs b/Facebook.Unity.Editor/Properties/AssemblyInfo.cs index 4502ea47c..c2e7a2f4c 100644 --- a/Facebook.Unity.Editor/Properties/AssemblyInfo.cs +++ b/Facebook.Unity.Editor/Properties/AssemblyInfo.cs @@ -18,7 +18,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -using System.Runtime.CompilerServices; using System.Reflection; +using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("7.8.0")] +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Editor/Settings.StyleCop b/Facebook.Unity.Editor/Settings.StyleCop new file mode 100644 index 000000000..b49c38ebd --- /dev/null +++ b/Facebook.Unity.Editor/Settings.StyleCop @@ -0,0 +1,219 @@ + + + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + + + \ No newline at end of file diff --git a/Facebook.Unity.Editor/android/ManifestMod.cs b/Facebook.Unity.Editor/android/ManifestMod.cs index f019bd8e4..65fb9be38 100644 --- a/Facebook.Unity.Editor/android/ManifestMod.cs +++ b/Facebook.Unity.Editor/android/ManifestMod.cs @@ -26,6 +26,7 @@ namespace Facebook.Unity.Editor using System.Reflection; using System.Xml; using Facebook.Unity; + using Facebook.Unity.Settings; using UnityEditor; using UnityEngine; diff --git a/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj b/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj new file mode 100644 index 000000000..f838f8cd7 --- /dev/null +++ b/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj @@ -0,0 +1,38 @@ + + + + Debug + AnyCPU + {15A3CC9F-9BB6-41A4-813B-40D2CAA91F27} + Library + Facebook.Unity.IOS.StrippingHack + Facebook.Unity.IOS + v3.5 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + true + bin\Release + prompt + 4 + false + + + + + + + + + + diff --git a/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj.user b/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj.user new file mode 100644 index 000000000..7306da10b --- /dev/null +++ b/Facebook.Unity.IOS.StrippingHack/Facebook.Unity.IOS.StrippingHack.csproj.user @@ -0,0 +1,7 @@ + + + + Project + true + + \ No newline at end of file diff --git a/Facebook.Unity.IOS.StrippingHack/IOSWrapper.cs b/Facebook.Unity.IOS.StrippingHack/IOSWrapper.cs new file mode 100644 index 000000000..2df94bda1 --- /dev/null +++ b/Facebook.Unity.IOS.StrippingHack/IOSWrapper.cs @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity.IOS +{ + public class IOSWrapper + { + } +} diff --git a/Facebook.Unity.IOS.StrippingHack/Properties/AssemblyInfo.cs b/Facebook.Unity.IOS.StrippingHack/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..0c6492d4b --- /dev/null +++ b/Facebook.Unity.IOS.StrippingHack/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.IOS/Facebook.Unity.IOS.csproj b/Facebook.Unity.IOS/Facebook.Unity.IOS.csproj new file mode 100644 index 000000000..04c1335d0 --- /dev/null +++ b/Facebook.Unity.IOS/Facebook.Unity.IOS.csproj @@ -0,0 +1,46 @@ + + + + Debug + AnyCPU + {E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121} + Library + Facebook.Unity.IOS + Facebook.Unity.IOS + v3.5 + + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + full + true + bin\Release + prompt + 4 + false + + + + + + + + + + + + {3DFF6C0C-BB04-405D-A23F-95999630E7F8} + Facebook.Unity + + + \ No newline at end of file diff --git a/Facebook.Unity/Mobile/IOS/IOSWrapper.cs b/Facebook.Unity.IOS/IOSWrapper.cs similarity index 83% rename from Facebook.Unity/Mobile/IOS/IOSWrapper.cs rename to Facebook.Unity.IOS/IOSWrapper.cs index c72371544..96d05c529 100644 --- a/Facebook.Unity/Mobile/IOS/IOSWrapper.cs +++ b/Facebook.Unity.IOS/IOSWrapper.cs @@ -18,9 +18,8 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -namespace Facebook.Unity +namespace Facebook.Unity.IOS { - using System; using System.Runtime.InteropServices; using Facebook.Unity.Mobile.IOS; @@ -32,7 +31,7 @@ public void Init( string urlSuffix, string unityUserAgentSuffix) { - IOSWrapper.IOSInit( + IOSWrapper.IOSFBInit( appId, frictionlessRequests, urlSuffix, @@ -43,7 +42,7 @@ public void LogInWithReadPermissions( int requestId, string scope) { - IOSWrapper.IOSLogInWithReadPermissions( + IOSWrapper.IOSFBLogInWithReadPermissions( requestId, scope); } @@ -52,19 +51,19 @@ public void LogInWithPublishPermissions( int requestId, string scope) { - IOSWrapper.IOSLogInWithPublishPermissions( + IOSWrapper.IOSFBLogInWithPublishPermissions( requestId, scope); } public void LogOut() { - IOSWrapper.IOSLogOut(); + IOSWrapper.IOSFBLogOut(); } public void SetShareDialogMode(int mode) { - IOSWrapper.IOSSetShareDialogMode(mode); + IOSWrapper.IOSFBSetShareDialogMode(mode); } public void ShareLink( @@ -74,7 +73,7 @@ public void ShareLink( string contentDescription, string photoURL) { - IOSWrapper.IOSShareLink( + IOSWrapper.IOSFBShareLink( requestId, contentURL, contentTitle, @@ -92,7 +91,7 @@ public void FeedShare( string picture, string mediaSource) { - IOSWrapper.IOSFeedShare( + IOSWrapper.IOSFBFeedShare( requestId, toId, link, @@ -118,7 +117,7 @@ public void AppRequest( string data = "", string title = "") { - IOSWrapper.IOSAppRequest( + IOSWrapper.IOSFBAppRequest( requestId, message, actionType, @@ -139,7 +138,7 @@ public void AppInvite( string appLinkUrl, string previewImageUrl) { - IOSWrapper.IOSAppInvite( + IOSWrapper.IOSFBAppInvite( requestId, appLinkUrl, previewImageUrl); @@ -151,7 +150,7 @@ public void CreateGameGroup( string description, string privacy) { - IOSWrapper.IOSCreateGameGroup( + IOSWrapper.IOSFBCreateGameGroup( requestId, name, description, @@ -160,7 +159,7 @@ public void CreateGameGroup( public void JoinGameGroup(int requestId, string groupId) { - IOSWrapper.IOSJoinGameGroup(requestId, groupId); + IOSWrapper.IOSFBJoinGameGroup(requestId, groupId); } public void FBSettingsActivateApp(string appId) @@ -205,7 +204,7 @@ public void FBAppEventsSetLimitEventUsage(bool limitEventUsage) public void GetAppLink(int requestId) { - IOSWrapper.IOSGetAppLink(requestId); + IOSWrapper.IOSFBGetAppLink(requestId); } public string FBSdkVersion() @@ -215,39 +214,39 @@ public string FBSdkVersion() public void FetchDeferredAppLink(int requestId) { - IOSWrapper.IOSFetchDeferredAppLink(requestId); + IOSWrapper.IOSFBFetchDeferredAppLink(requestId); } public void RefreshCurrentAccessToken(int requestId) { - IOSWrapper.IOSRefreshCurrentAccessToken(requestId); + IOSWrapper.IOSFBRefreshCurrentAccessToken(requestId); } [DllImport("__Internal")] - private static extern void IOSInit( + private static extern void IOSFBInit( string appId, bool frictionlessRequests, string urlSuffix, string unityUserAgentSuffix); [DllImport("__Internal")] - private static extern void IOSLogInWithReadPermissions( + private static extern void IOSFBLogInWithReadPermissions( int requestId, string scope); [DllImport("__Internal")] - private static extern void IOSLogInWithPublishPermissions( + private static extern void IOSFBLogInWithPublishPermissions( int requestId, string scope); [DllImport("__Internal")] - private static extern void IOSLogOut(); + private static extern void IOSFBLogOut(); [DllImport("__Internal")] - private static extern void IOSSetShareDialogMode(int mode); + private static extern void IOSFBSetShareDialogMode(int mode); [DllImport("__Internal")] - private static extern void IOSShareLink( + private static extern void IOSFBShareLink( int requestId, string contentURL, string contentTitle, @@ -255,7 +254,7 @@ private static extern void IOSShareLink( string photoURL); [DllImport("__Internal")] - private static extern void IOSFeedShare( + private static extern void IOSFBFeedShare( int requestId, string toId, string link, @@ -266,7 +265,7 @@ private static extern void IOSFeedShare( string mediaSource); [DllImport("__Internal")] - private static extern void IOSAppRequest( + private static extern void IOSFBAppRequest( int requestId, string message, string actionType, @@ -282,20 +281,20 @@ private static extern void IOSAppRequest( string title = ""); [DllImport("__Internal")] - private static extern void IOSAppInvite( + private static extern void IOSFBAppInvite( int requestId, string appLinkUrl, string previewImageUrl); [DllImport("__Internal")] - private static extern void IOSCreateGameGroup( + private static extern void IOSFBCreateGameGroup( int requestId, string name, string description, string privacy); [DllImport("__Internal")] - private static extern void IOSJoinGameGroup(int requestId, string groupId); + private static extern void IOSFBJoinGameGroup(int requestId, string groupId); [DllImport("__Internal")] private static extern void IOSFBSettingsActivateApp(string appId); @@ -320,15 +319,15 @@ private static extern void IOSFBAppEventsLogPurchase( private static extern void IOSFBAppEventsSetLimitEventUsage(bool limitEventUsage); [DllImport("__Internal")] - private static extern void IOSGetAppLink(int requestID); + private static extern void IOSFBGetAppLink(int requestID); [DllImport("__Internal")] private static extern string IOSFBSdkVersion(); [DllImport("__Internal")] - private static extern void IOSFetchDeferredAppLink(int requestID); + private static extern void IOSFBFetchDeferredAppLink(int requestID); [DllImport("__Internal")] - private static extern void IOSRefreshCurrentAccessToken(int requestID); + private static extern void IOSFBRefreshCurrentAccessToken(int requestID); } } diff --git a/Facebook.Unity.IOS/Properties/AssemblyInfo.cs b/Facebook.Unity.IOS/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..c2e7a2f4c --- /dev/null +++ b/Facebook.Unity.IOS/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Settings/Facebook.Unity.Settings.csproj b/Facebook.Unity.Settings/Facebook.Unity.Settings.csproj new file mode 100644 index 000000000..6216ee3f7 --- /dev/null +++ b/Facebook.Unity.Settings/Facebook.Unity.Settings.csproj @@ -0,0 +1,43 @@ + + + + Debug + AnyCPU + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6} + Library + Facebook.Unity.Settings + Facebook.Unity.Settings + + + v3.5 + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + + + full + true + bin\Release + prompt + 4 + false + + + + + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll + + + + + + + + \ No newline at end of file diff --git a/Facebook.Unity/FacebookSettings.cs b/Facebook.Unity.Settings/FacebookSettings.cs similarity index 87% rename from Facebook.Unity/FacebookSettings.cs rename to Facebook.Unity.Settings/FacebookSettings.cs index 1f36401e2..175829804 100644 --- a/Facebook.Unity/FacebookSettings.cs +++ b/Facebook.Unity.Settings/FacebookSettings.cs @@ -18,7 +18,9 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -namespace Facebook.Unity +using System; + +namespace Facebook.Unity.Settings { using System.Collections.Generic; using System.IO; @@ -39,6 +41,8 @@ public class FacebookSettings : ScriptableObject [SerializeField] private int selectedAppIndex = 0; [SerializeField] + private List clientTokens = new List { string.Empty }; + [SerializeField] private List appIds = new List { "0" }; [SerializeField] private List appLabels = new List { "App Name" }; @@ -56,6 +60,8 @@ public class FacebookSettings : ScriptableObject private string iosURLSuffix = string.Empty; [SerializeField] private List appLinkSchemes = new List() { new UrlSchemes() }; + [SerializeField] + private string uploadAccessToken = string.Empty; public delegate void OnChangeCallback(); @@ -122,6 +128,27 @@ public static List AppLabels } } + /// + /// Gets or sets the app client token. + /// + /// The app client token. + public static List ClientTokens + { + get + { + return Instance.clientTokens; + } + + set + { + if (Instance.clientTokens != value) + { + Instance.clientTokens = value; + SettingsChanged(); + } + } + } + /// /// Gets the app identifier. /// @@ -134,6 +161,18 @@ public static string AppId } } + /// + /// Gets the app client token. + /// + /// The app identifier. + public static string ClientToken + { + get + { + return ClientTokens[SelectedAppIndex]; + } + } + /// /// Gets a value indicating whether the app id is valid app identifier. /// @@ -304,6 +343,27 @@ public static List AppLinkSchemes } } + /// + /// Gets or sets the upload access token. + /// + /// The access token to upload build to Facebook hosting. + public static string UploadAccessToken + { + get + { + return Instance.uploadAccessToken; + } + + set + { + if (Instance.uploadAccessToken != value) + { + Instance.uploadAccessToken = value; + SettingsChanged(); + } + } + } + public static FacebookSettings Instance { get diff --git a/Facebook.Unity.Settings/Properties/AssemblyInfo.cs b/Facebook.Unity.Settings/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..c2e7a2f4c --- /dev/null +++ b/Facebook.Unity.Settings/Properties/AssemblyInfo.cs @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Tests/Canvas/UserAgent.cs b/Facebook.Unity.Tests/Canvas/UserAgent.cs index 752ab29c8..26a9159d7 100644 --- a/Facebook.Unity.Tests/Canvas/UserAgent.cs +++ b/Facebook.Unity.Tests/Canvas/UserAgent.cs @@ -38,17 +38,5 @@ public void VerifyUserAgentWebGL() this.VerifyUserAgent(expected); } - - [Test] - public void VerifyUserAgentWebPlayer() - { - Constants.CurrentPlatform = FacebookUnityPlatform.WebPlayer; - string expected = string.Format( - CultureInfo.InvariantCulture, - "FBJSSDK/1.0.0 FBUnityWebPlayer/{0} FBUnitySDK/{0}", - FacebookSdkVersion.Build); - - this.VerifyUserAgent(expected); - } } } diff --git a/Facebook.Unity.Tests/Facebook.Unity.Tests.csproj b/Facebook.Unity.Tests/Facebook.Unity.Tests.csproj index 9341bd134..4b0ff574f 100644 --- a/Facebook.Unity.Tests/Facebook.Unity.Tests.csproj +++ b/Facebook.Unity.Tests/Facebook.Unity.Tests.csproj @@ -20,6 +20,7 @@ prompt 4 False + true none @@ -28,6 +29,7 @@ prompt 4 False + true @@ -103,25 +105,40 @@ - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEditor.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEditor.dll - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEngine.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll + + ..\packages\NSubstitute.1.10.0.0\lib\net40\NSubstitute.dll + - + + + + + + + + + + {3DFF6C0C-BB04-405D-A23F-95999630E7F8} Facebook.Unity + + + diff --git a/Facebook.Unity.Tests/FacebookTestClass.cs b/Facebook.Unity.Tests/FacebookTestClass.cs index 6d8280dfe..f8c3fcbd4 100644 --- a/Facebook.Unity.Tests/FacebookTestClass.cs +++ b/Facebook.Unity.Tests/FacebookTestClass.cs @@ -29,6 +29,7 @@ namespace Facebook.Unity.Tests using Facebook.Unity.Tests.Editor; using Facebook.Unity.Tests.Mobile.Android; using Facebook.Unity.Tests.Mobile.IOS; + using NSubstitute; using NUnit.Framework; public abstract class FacebookTestClass @@ -81,7 +82,7 @@ public void Init() } else { - throw new Exception("No platform specified on test class"); + throw new Exception("Failed to specify platform specified on test class"); } this.OnInit(); diff --git a/Facebook.Unity.Tests/Properties/AssemblyInfo.cs b/Facebook.Unity.Tests/Properties/AssemblyInfo.cs index 4502ea47c..c2e7a2f4c 100644 --- a/Facebook.Unity.Tests/Properties/AssemblyInfo.cs +++ b/Facebook.Unity.Tests/Properties/AssemblyInfo.cs @@ -18,7 +18,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -using System.Runtime.CompilerServices; using System.Reflection; +using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("7.8.0")] +[assembly: AssemblyVersion("7.9.0")] diff --git a/Facebook.Unity.Tests/Settings.StyleCop b/Facebook.Unity.Tests/Settings.StyleCop new file mode 100644 index 000000000..b49c38ebd --- /dev/null +++ b/Facebook.Unity.Tests/Settings.StyleCop @@ -0,0 +1,219 @@ + + + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + + + \ No newline at end of file diff --git a/Facebook.Unity.Tests/VersionNumberCheck.cs b/Facebook.Unity.Tests/VersionNumberCheck.cs index c343ff618..0efc2faf4 100644 --- a/Facebook.Unity.Tests/VersionNumberCheck.cs +++ b/Facebook.Unity.Tests/VersionNumberCheck.cs @@ -34,7 +34,6 @@ public class VersionNumberCheck private static string unityRepoPath = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName; private static string unityPluginPath = Path.Combine(unityRepoPath, UnityPluginSubPath); private static string coreDLLSubPath = Path.Combine(unityPluginPath, "Facebook.Unity.dll"); - private static string androidDLLSubPath = Path.Combine(unityPluginPath, "Android/Facebook.Unity.Android.dll"); private static string arcadeDLLSubPath = Path.Combine(unityPluginPath, "Arcade/Facebook.Unity.Arcade.dll"); private static string editorDLLSubPath = Path.Combine(unityPluginPath, "Editor/Facebook.Unity.Editor.dll"); @@ -42,7 +41,6 @@ public class VersionNumberCheck public void ValidateDLLVersions() { VersionNumberCheck.CheckVersionOfDll(VersionNumberCheck.coreDLLSubPath); - VersionNumberCheck.CheckVersionOfDll(VersionNumberCheck.androidDLLSubPath); VersionNumberCheck.CheckVersionOfDll(VersionNumberCheck.arcadeDLLSubPath); VersionNumberCheck.CheckVersionOfDll(VersionNumberCheck.editorDLLSubPath); } diff --git a/Facebook.Unity.Tests/packages.config b/Facebook.Unity.Tests/packages.config new file mode 100644 index 000000000..1f0fa2686 --- /dev/null +++ b/Facebook.Unity.Tests/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Facebook.Unity/Arcade/ArcadeFacebook.cs b/Facebook.Unity/Arcade/ArcadeFacebook.cs index b2f4ef1ab..3004ac6f6 100755 --- a/Facebook.Unity/Arcade/ArcadeFacebook.cs +++ b/Facebook.Unity/Arcade/ArcadeFacebook.cs @@ -234,6 +234,7 @@ public void Pay( requestId, pricepointId, testCurrency, + /*developerPayload*/ null, callback); } @@ -258,6 +259,28 @@ public void PayWithProductId( requestId, pricepointId, testCurrency, + /*developerPayload*/ null, + callback); + } + + public void PayWithProductId( + string productId, + string action, + string developerPayload, + string testCurrency, + FacebookDelegate callback) + { + this.PayImpl( + /*product*/ null, + productId, + action, + /*quantity*/ 1, + /*quantityMin*/ null, + /*quantityMax*/ null, + /*requestId*/ null, + /*pricepointId*/ null, + testCurrency, + developerPayload, callback); } @@ -364,6 +387,7 @@ private void PayImpl( string requestId, string pricepointId, string testCurrency, + string developerPayload, FacebookDelegate callback) { this.arcadeWrapper.DoPayRequest( @@ -378,6 +402,7 @@ private void PayImpl( requestId, pricepointId, testCurrency, + developerPayload, this.CallbackManager.AddFacebookDelegate(callback), this.OnPayComplete); } diff --git a/Facebook.Unity/Arcade/IArcadeWrapper.cs b/Facebook.Unity/Arcade/IArcadeWrapper.cs index 3db3098c0..4ebdc41c9 100644 --- a/Facebook.Unity/Arcade/IArcadeWrapper.cs +++ b/Facebook.Unity/Arcade/IArcadeWrapper.cs @@ -44,6 +44,7 @@ void DoPayRequest( string requestId, string pricepointId, string testCurrency, + string developerPayload, string callbackID, ArcadeFacebook.OnComplete completeDelegate); diff --git a/Facebook.Unity/Canvas/CanvasFacebook.cs b/Facebook.Unity/Canvas/CanvasFacebook.cs index 4e8e94e81..4fede7113 100644 --- a/Facebook.Unity/Canvas/CanvasFacebook.cs +++ b/Facebook.Unity/Canvas/CanvasFacebook.cs @@ -84,7 +84,6 @@ public override string SDKUserAgent switch (Constants.CurrentPlatform) { case FacebookUnityPlatform.WebGL: - case FacebookUnityPlatform.WebPlayer: webPlatform = string.Format( CultureInfo.InvariantCulture, "FBUnity{0}", @@ -272,6 +271,7 @@ public void Pay( requestId, pricepointId, testCurrency, + /*developerPayload*/ null, callback); } @@ -296,6 +296,28 @@ public void PayWithProductId( requestId, pricepointId, testCurrency, + /*developerPayload*/ null, + callback); + } + + public void PayWithProductId( + string productId, + string action, + string developerPayload, + string testCurrency, + FacebookDelegate callback) + { + this.PayImpl( + /*product*/ null, + productId, + action, + /*quantity*/ 1, + /*quantityMin*/ null, + /*quantityMax*/ null, + /*requestId*/ null, + /*pricepointId*/ null, + testCurrency, + developerPayload, callback); } @@ -547,6 +569,7 @@ private void PayImpl( string requestId, string pricepointId, string testCurrency, + string developerPayload, FacebookDelegate callback) { MethodArguments args = new MethodArguments(); @@ -559,6 +582,7 @@ private void PayImpl( args.AddString("request_id", requestId); args.AddString("pricepoint_id", pricepointId); args.AddString("test_currency", testCurrency); + args.AddString("developer_payload", developerPayload); var call = new CanvasUIMethodCall(this, MethodPay, Constants.OnPayCompleteMethodName); call.Callback = callback; call.Call(args); diff --git a/Facebook.Unity/Constants.cs b/Facebook.Unity/Constants.cs index b06fd27cd..1faacf0ee 100644 --- a/Facebook.Unity/Constants.cs +++ b/Facebook.Unity/Constants.cs @@ -108,8 +108,7 @@ public static bool IsWeb { get { - return Constants.CurrentPlatform == FacebookUnityPlatform.WebGL || - Constants.CurrentPlatform == FacebookUnityPlatform.WebPlayer; + return Constants.CurrentPlatform == FacebookUnityPlatform.WebGL; } } @@ -182,9 +181,6 @@ private static FacebookUnityPlatform GetCurrentPlatform() return FacebookUnityPlatform.Android; case RuntimePlatform.IPhonePlayer: return FacebookUnityPlatform.IOS; - case RuntimePlatform.WindowsWebPlayer: - case RuntimePlatform.OSXWebPlayer: - return FacebookUnityPlatform.WebPlayer; case RuntimePlatform.WebGLPlayer: return FacebookUnityPlatform.WebGL; case RuntimePlatform.WindowsPlayer: diff --git a/Facebook.Unity/FB.cs b/Facebook.Unity/FB.cs index 2638786c4..35e488cb4 100644 --- a/Facebook.Unity/FB.cs +++ b/Facebook.Unity/FB.cs @@ -28,6 +28,7 @@ namespace Facebook.Unity using Facebook.Unity.Mobile; using Facebook.Unity.Mobile.Android; using Facebook.Unity.Mobile.IOS; + using Facebook.Unity.Settings; using UnityEngine; /// @@ -50,6 +51,13 @@ public sealed class FB : ScriptableObject /// The app identifier. public static string AppId { get; private set; } + /// + /// Gets the app client token. ClientToken might be different from FBSettings.ClientToken + /// if using the programmatic version of FB.Init(). + /// + /// The app client token. + public static string ClientToken { get; private set; } + /// /// Gets or sets the graph API version. /// The Unity sdk is by default pegged to the lastest version of the graph api @@ -172,6 +180,7 @@ public static void Init(InitDelegate onInitComplete = null, HideUnityDelegate on { Init( FacebookSettings.AppId, + FacebookSettings.ClientToken, FacebookSettings.Cookie, FacebookSettings.Logging, FacebookSettings.Status, @@ -188,6 +197,7 @@ public static void Init(InitDelegate onInitComplete = null, HideUnityDelegate on /// Useful for a build pipeline that requires no human input. /// /// App identifier. + /// App client token. /// If set to true cookie. /// If set to true logging. /// If set to true status. @@ -207,6 +217,7 @@ public static void Init(InitDelegate onInitComplete = null, HideUnityDelegate on /// public static void Init( string appId, + string clientToken = null, bool cookie = true, bool logging = true, bool status = true, @@ -223,6 +234,7 @@ public static void Init( } FB.AppId = appId; + FB.ClientToken = clientToken; if (!isInitCalled) { @@ -242,7 +254,6 @@ public static void Init( switch (Constants.CurrentPlatform) { case FacebookUnityPlatform.WebGL: - case FacebookUnityPlatform.WebPlayer: FB.OnDLLLoadedDelegate = delegate { ((CanvasFacebook)FB.facebook).Init( @@ -291,7 +302,7 @@ public static void Init( ComponentFactory.GetComponent(); break; default: - throw new NotImplementedException("Facebook API does not yet support this platform"); + throw new NotSupportedException("The facebook sdk does not support this platform"); } } } @@ -306,6 +317,9 @@ public static void Init( /// /// A list of requested permissions. /// Callback to be called when request completes. + /// + /// Thrown when called on a TV device. + /// public static void LogInWithPublishPermissions( IEnumerable permissions = null, FacebookDelegate callback = null) @@ -318,6 +332,9 @@ public static void LogInWithPublishPermissions( /// /// A list of requested permissions. /// Callback to be called when request completes. + /// + /// Thrown when called on a TV device. + /// public static void LogInWithReadPermissions( IEnumerable permissions = null, FacebookDelegate callback = null) @@ -820,6 +837,39 @@ public static void PayWithProductId( testCurrency, callback); } + + /// + /// Pay the specified productId, action, developerPayload, testCurrency and callback. + /// + /// The product Id referencing the product managed by Facebook. + /// Should always be purchaseiap. + /// + /// A string that can be used to provide supplemental information about an order. It can be + /// used to uniquely identify the purchase request. + /// + /// + /// This parameter can be used during debugging and testing your implementation to force the dialog to + /// use a specific currency rather than the current user's preferred currency. This allows you to + /// rapidly prototype your payment experience for different currencies without having to repeatedly + /// change your personal currency preference settings. This parameter is only available for admins, + /// developers and testers associated with the app, in order to minimize the security risk of a + /// malicious JavaScript injection. Provide the 3 letter currency code of the intended forced currency. + /// + /// The callback to use upon completion. + public static void PayWithProductId( + string productId, + string action = "purchaseiap", + string developerPayload = null, + string testCurrency = null, + FacebookDelegate callback = null) + { + FacebookPayImpl.PayWithProductId( + productId, + action, + developerPayload, + testCurrency, + callback); + } } /// diff --git a/Facebook.Unity/Facebook.Unity.csproj b/Facebook.Unity/Facebook.Unity.csproj index b54afe795..aa4f2ea2f 100644 --- a/Facebook.Unity/Facebook.Unity.csproj +++ b/Facebook.Unity/Facebook.Unity.csproj @@ -20,6 +20,7 @@ prompt 4 false + true full @@ -28,12 +29,14 @@ prompt 4 false + true - \Applications\Unity\Unity.app\Contents\Frameworks\Managed\UnityEngine.dll + \Applications\Unity\Unity.app\Contents\Managed\UnityEngine.dll + @@ -46,7 +49,6 @@ - @@ -128,12 +130,32 @@ + + + - - + + + + + + + + + + + + + + + + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6} + Facebook.Unity.Settings + + diff --git a/Facebook.Unity/FacebookBase.cs b/Facebook.Unity/FacebookBase.cs index 53c142c37..faac26888 100644 --- a/Facebook.Unity/FacebookBase.cs +++ b/Facebook.Unity/FacebookBase.cs @@ -137,7 +137,7 @@ public void API( FB.IsLoggedIn ? AccessToken.CurrentAccessToken.TokenString : string.Empty; } - AsyncRequestString.Request(this.GetGraphUrl(query), method, inputFormData, callback); + FBUnityUtility.AsyncRequestStringWrapper.Request(this.GetGraphUrl(query), method, inputFormData, callback); } public void API( @@ -157,7 +157,7 @@ public void API( Constants.AccessTokenKey, tokenString); - AsyncRequestString.Request(this.GetGraphUrl(query), method, formData, callback); + FBUnityUtility.AsyncRequestStringWrapper.Request(this.GetGraphUrl(query), method, formData, callback); } public abstract void GameGroupCreate( @@ -253,7 +253,7 @@ protected void ValidateAppRequestArgs( } } - protected void OnAuthResponse(LoginResult result) + protected virtual void OnAuthResponse(LoginResult result) { // If the login is cancelled we won't have a access token. // Don't overwrite a valid token diff --git a/Facebook.Unity/FacebookSdkVersion.cs b/Facebook.Unity/FacebookSdkVersion.cs index 8de0891ef..d206ae34d 100644 --- a/Facebook.Unity/FacebookSdkVersion.cs +++ b/Facebook.Unity/FacebookSdkVersion.cs @@ -33,7 +33,7 @@ public static string Build { get { - return "7.8.0"; + return "7.9.0"; } } } diff --git a/Facebook.Unity/FacebookUnityPlatform.cs b/Facebook.Unity/FacebookUnityPlatform.cs index 49501f5a9..f9fa5782e 100644 --- a/Facebook.Unity/FacebookUnityPlatform.cs +++ b/Facebook.Unity/FacebookUnityPlatform.cs @@ -28,7 +28,6 @@ internal enum FacebookUnityPlatform Android, IOS, WebGL, - WebPlayer, Arcade } } diff --git a/Facebook.Unity/IPayFacebook.cs b/Facebook.Unity/IPayFacebook.cs index 2839065cb..649d76fd8 100644 --- a/Facebook.Unity/IPayFacebook.cs +++ b/Facebook.Unity/IPayFacebook.cs @@ -43,5 +43,12 @@ void PayWithProductId( string pricepointId, string testCurrency, FacebookDelegate callback); + + void PayWithProductId( + string productId, + string action, + string developerPayload, + string testCurrency, + FacebookDelegate callback); } } diff --git a/Facebook.Unity/Mobile/Android/AndroidFacebook.cs b/Facebook.Unity/Mobile/Android/AndroidFacebook.cs index fe2d937db..a3831b51a 100644 --- a/Facebook.Unity/Mobile/Android/AndroidFacebook.cs +++ b/Facebook.Unity/Mobile/Android/AndroidFacebook.cs @@ -31,17 +31,17 @@ internal sealed class AndroidFacebook : MobileFacebook // This class holds all the of the wrapper methods that we call into private bool limitEventUsage; - private IAndroidWrapper facebookJava; + private IAndroidWrapper androidWrapper; - public AndroidFacebook() : this(new AndroidWrapper(), new CallbackManager()) + public AndroidFacebook() : this(GetAndroidWrapper(), new CallbackManager()) { } - public AndroidFacebook(IAndroidWrapper facebookJavaClass, CallbackManager callbackManager) + public AndroidFacebook(IAndroidWrapper androidWrapper, CallbackManager callbackManager) : base(callbackManager) { this.KeyHash = string.Empty; - this.facebookJava = facebookJavaClass; + this.androidWrapper = androidWrapper; } // key Hash used for Android SDK @@ -73,7 +73,7 @@ public override string SDKVersion { get { - return this.facebookJava.CallStatic("GetSdkVersion"); + return this.androidWrapper.CallStatic("GetSdkVersion"); } } @@ -313,9 +313,17 @@ protected override void SetShareDialogMode(ShareDialogMode mode) this.CallFB("SetShareDialogMode", mode.ToString()); } + private static IAndroidWrapper GetAndroidWrapper() + { + Assembly assembly = Assembly.Load("Facebook.Unity.Android"); + Type type = assembly.GetType("Facebook.Unity.Android.AndroidWrapper"); + IAndroidWrapper javaClass = (IAndroidWrapper)Activator.CreateInstance(type); + return javaClass; + } + private void CallFB(string method, string args) { - this.facebookJava.CallStatic(method, args); + this.androidWrapper.CallStatic(method, args); } private class JavaMethodCall : MethodCall where T : IResult diff --git a/Facebook.Unity/Mobile/Android/AndroidWrapper.cs b/Facebook.Unity/Mobile/Android/AndroidWrapper.cs deleted file mode 100644 index 2dca7eca7..000000000 --- a/Facebook.Unity/Mobile/Android/AndroidWrapper.cs +++ /dev/null @@ -1,179 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - * - * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, - * copy, modify, and distribute this software in source code or binary form for use - * in connection with the web services and APIs provided by Facebook. - * - * As with any software that integrates with the Facebook platform, your use of - * this software is subject to the Facebook Developer Principles and Policies - * [http://developers.facebook.com/policy/]. This copyright notice shall be - * included in all copies or substantial portions of the software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -namespace Facebook.Unity.Mobile.Android -{ - using System; - using System.Linq; - using System.Reflection; - - internal class AndroidWrapper : IAndroidWrapper - { - private const string FacebookJavaClassName = "com.facebook.unity.FB"; - private const string UnityEngineAssemblyName = "UnityEngine"; - private const string AndroidJavaClassName = "UnityEngine.AndroidJavaClass"; - private const string CallStaticMethodInfoName = "CallStatic"; - - private static Type androidJavaClassType; - private static object androidJavaClassObject; - private static MethodInfo callStaticMethodInfo; - private static MethodInfo callStaticMethodInfoGeneric; - - private static Type AndroidJavaClassType - { - get - { - if (androidJavaClassType != null) - { - return AndroidWrapper.androidJavaClassType; - } - - Assembly assembly = Assembly.Load(AndroidWrapper.UnityEngineAssemblyName); - AndroidWrapper.androidJavaClassType = assembly.GetType(AndroidJavaClassName); - - if (AndroidWrapper.androidJavaClassType == null) - { - throw new InvalidOperationException( - "Failed to load type: " + AndroidJavaClassName); - } - - return AndroidWrapper.androidJavaClassType; - } - } - - private static object AndroidJavaClassObject - { - get - { - if (androidJavaClassObject != null) - { - return AndroidWrapper.androidJavaClassObject; - } - - AndroidWrapper.androidJavaClassObject = Activator.CreateInstance( - AndroidWrapper.AndroidJavaClassType, - FacebookJavaClassName); - - if (AndroidWrapper.androidJavaClassObject == null) - { - throw new InvalidOperationException( - "Failed to institate object of type: " + AndroidWrapper.AndroidJavaClassType.FullName); - } - - return AndroidWrapper.androidJavaClassObject; - } - } - - private static MethodInfo CallStaticMethodInfo - { - get - { - if (callStaticMethodInfo != null) - { - return AndroidWrapper.callStaticMethodInfo; - } - - AndroidWrapper.callStaticMethodInfo = AndroidJavaClassType.GetMethod( - AndroidWrapper.CallStaticMethodInfoName, - new Type[] { typeof(string), typeof(object[]) }); - - if (AndroidWrapper.callStaticMethodInfo == null) - { - throw new InvalidOperationException( - "Failed to locate method: " + AndroidWrapper.CallStaticMethodInfoName); - } - - return AndroidWrapper.callStaticMethodInfo; - } - } - - private static MethodInfo CallStaticMethodInfoGeneric - { - get - { - if (callStaticMethodInfoGeneric != null) - { - return AndroidWrapper.callStaticMethodInfoGeneric; - } - - MethodInfo[] methods = AndroidJavaClassType.GetMethods(); - foreach (MethodInfo methodInfo in methods) - { - if (methodInfo.Name != CallStaticMethodInfoName) - { - continue; - } - - if (methodInfo.GetGenericArguments().Count() != 1) - { - continue; - } - - ParameterInfo[] parameters = methodInfo.GetParameters(); - if (parameters.Count() != 2) - { - continue; - } - - if (!parameters[0].ParameterType.IsAssignableFrom(typeof(string))) - { - continue; - } - - if (!parameters[1].ParameterType.IsAssignableFrom(typeof(object[]))) - { - continue; - } - - AndroidWrapper.callStaticMethodInfoGeneric = methodInfo; - break; - } - - if (AndroidWrapper.callStaticMethodInfoGeneric == null) - { - throw new InvalidOperationException( - "Failed to locate generic method: " + AndroidWrapper.CallStaticMethodInfoName); - } - - return AndroidWrapper.callStaticMethodInfoGeneric; - } - } - - public void CallStatic(string methodName, params object[] args) - { - AndroidWrapper.CallStaticMethodInfo.Invoke( - AndroidWrapper.AndroidJavaClassObject, - new object[] { methodName, args }); - } - - public T CallStatic(string methodName) - { - MethodInfo methodInfo = AndroidWrapper.CallStaticMethodInfoGeneric.MakeGenericMethod(typeof(T)); - if (methodInfo == null) - { - throw new InvalidOperationException("Failed to make generic method for calling static"); - } - - return (T)methodInfo.Invoke( - AndroidWrapper.AndroidJavaClassObject, - new object[] { methodName, new object[0] }); - } - } -} diff --git a/Facebook.Unity/Mobile/IOS/IOSFacebook.cs b/Facebook.Unity/Mobile/IOS/IOSFacebook.cs index 80ea66657..8f369228e 100644 --- a/Facebook.Unity/Mobile/IOS/IOSFacebook.cs +++ b/Facebook.Unity/Mobile/IOS/IOSFacebook.cs @@ -32,7 +32,7 @@ internal class IOSFacebook : MobileFacebook private IIOSWrapper iosWrapper; public IOSFacebook() - : this(new IOSWrapper(), new CallbackManager()) + : this(GetIOSWrapper(), new CallbackManager()) { } diff --git a/Facebook.Unity/PlatformEditor/EditorFacebook.cs b/Facebook.Unity/PlatformEditor/EditorFacebook.cs index 75eb5f5da..f9abaaaa0 100644 --- a/Facebook.Unity/PlatformEditor/EditorFacebook.cs +++ b/Facebook.Unity/PlatformEditor/EditorFacebook.cs @@ -255,6 +255,18 @@ public void PayWithProductId( this.CallbackManager.AddFacebookDelegate(callback)); } + public void PayWithProductId( + string productId, + string action, + string developerPayload, + string testCurrency, + FacebookDelegate callback) + { + this.editorWrapper.ShowPayMockDialog( + this.OnPayComplete, + this.CallbackManager.AddFacebookDelegate(callback)); + } + public void RefreshCurrentAccessToken( FacebookDelegate callback) { diff --git a/Facebook.Unity/Properties/AssemblyInfo.cs b/Facebook.Unity/Properties/AssemblyInfo.cs index 5434dfbdc..02ce96097 100644 --- a/Facebook.Unity/Properties/AssemblyInfo.cs +++ b/Facebook.Unity/Properties/AssemblyInfo.cs @@ -18,10 +18,10 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -using System.Runtime.CompilerServices; using System.Reflection; +using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("7.8.0")] +[assembly: AssemblyVersion("7.9.0")] [assembly: InternalsVisibleTo("Assembly-CSharp")] [assembly: InternalsVisibleTo("Facebook.Unity.Android")] [assembly: InternalsVisibleTo("Facebook.Unity.Arcade")] diff --git a/Facebook.Unity/Settings.StyleCop b/Facebook.Unity/Settings.StyleCop new file mode 100644 index 000000000..b49c38ebd --- /dev/null +++ b/Facebook.Unity/Settings.StyleCop @@ -0,0 +1,219 @@ + + + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + + + \ No newline at end of file diff --git a/Facebook.Unity/Utils/AsyncRequestString.cs b/Facebook.Unity/Utils/AsyncRequestString.cs index 34fd1df58..09516e975 100644 --- a/Facebook.Unity/Utils/AsyncRequestString.cs +++ b/Facebook.Unity/Utils/AsyncRequestString.cs @@ -94,7 +94,10 @@ internal IEnumerator Start() Dictionary headers = new Dictionary(); - headers["User-Agent"] = Constants.GraphApiUserAgent; + if (Constants.CurrentPlatform != FacebookUnityPlatform.WebGL) + { + headers["User-Agent"] = Constants.GraphApiUserAgent; + } www = new WWW(this.url + urlParams, null, headers); } @@ -119,7 +122,11 @@ internal IEnumerator Start() } } - this.query.headers["User-Agent"] = Constants.GraphApiUserAgent; + if (Constants.CurrentPlatform != FacebookUnityPlatform.WebGL) + { + this.query.headers["User-Agent"] = Constants.GraphApiUserAgent; + } + www = new WWW(this.url.AbsoluteUri, this.query); } diff --git a/Facebook.Unity/Utils/AsyncRequestStringHandler.cs b/Facebook.Unity/Utils/AsyncRequestStringHandler.cs new file mode 100644 index 000000000..6210fd2f0 --- /dev/null +++ b/Facebook.Unity/Utils/AsyncRequestStringHandler.cs @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Facebook.Unity +{ + internal class AsyncRequestStringHandler : IAsyncRequestStringHandler + { + public void Request( + Uri url, + HttpMethod method, + WWWForm query = null, + FacebookDelegate callback = null) + { + AsyncRequestString.Request(url, method, query, callback); + } + + public void Request( + Uri url, + HttpMethod method, + IDictionary formData = null, + FacebookDelegate callback = null) + { + AsyncRequestString.Request(url, method, formData, callback); + } + } +} diff --git a/Facebook.Unity/Utils/AsyncRequestStringWrapper.cs b/Facebook.Unity/Utils/AsyncRequestStringWrapper.cs new file mode 100644 index 000000000..e22f21c89 --- /dev/null +++ b/Facebook.Unity/Utils/AsyncRequestStringWrapper.cs @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Facebook.Unity +{ + internal class AsyncRequestStringWrapper : IAsyncRequestStringWrapper + { + public void Request( + Uri url, + HttpMethod method, + WWWForm query = null, + FacebookDelegate callback = null) + { + AsyncRequestString.Request(url, method, query, callback); + } + + public void Request( + Uri url, + HttpMethod method, + IDictionary formData = null, + FacebookDelegate callback = null) + { + AsyncRequestString.Request(url, method, formData, callback); + } + } +} diff --git a/Facebook.Unity/Utils/FBUnityUtility.cs b/Facebook.Unity/Utils/FBUnityUtility.cs new file mode 100644 index 000000000..844106566 --- /dev/null +++ b/Facebook.Unity/Utils/FBUnityUtility.cs @@ -0,0 +1,67 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + using UnityEngine; + + internal static class FBUnityUtility + { + private static string currentDeviceIdentifier; + private static IAsyncRequestStringWrapper asyncRequestStringWrapper; + + public static string UnityDeviceIdentifier + { + get + { + if (string.IsNullOrEmpty(FBUnityUtility.currentDeviceIdentifier)) + { + FBUnityUtility.currentDeviceIdentifier = SystemInfo.deviceUniqueIdentifier; + } + + return FBUnityUtility.currentDeviceIdentifier; + } + + set + { + FBUnityUtility.currentDeviceIdentifier = value; + } + } + + public static IAsyncRequestStringWrapper AsyncRequestStringWrapper + { + get + { + if (FBUnityUtility.asyncRequestStringWrapper == null) + { + FBUnityUtility.asyncRequestStringWrapper = new AsyncRequestStringWrapper(); + } + + return FBUnityUtility.asyncRequestStringWrapper; + } + + set + { + FBUnityUtility.asyncRequestStringWrapper = value; + } + } + } +} diff --git a/Facebook.Unity/Utils/FacebookScheduler.cs b/Facebook.Unity/Utils/FacebookScheduler.cs new file mode 100644 index 000000000..0f5485c18 --- /dev/null +++ b/Facebook.Unity/Utils/FacebookScheduler.cs @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + using System.Collections; + using System.Collections.Generic; + using UnityEngine; + + internal class FacebookScheduler : MonoBehaviour, IFacebookScheduler + { + public void Schedule(Action action, long delay) + { + this.StartCoroutine(DelayEvent(action, delay)); + } + + public IEnumerator DelayEvent(Action action, long delay) + { + yield return new WaitForSeconds(delay); + action(); + } + } +} diff --git a/Facebook.Unity/Utils/FacebookSchedulerFactory.cs b/Facebook.Unity/Utils/FacebookSchedulerFactory.cs new file mode 100644 index 000000000..b34d24cad --- /dev/null +++ b/Facebook.Unity/Utils/FacebookSchedulerFactory.cs @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + using UnityEngine; + + internal class FacebookSchedulerFactory : IFacebookSchedulerFactory + { + public IFacebookScheduler GetInstance() + { + FacebookScheduler scheduler = ComponentFactory.GetComponent(); + return scheduler; + } + } +} diff --git a/Facebook.Unity/Utils/IAsyncRequestStringHandler.cs b/Facebook.Unity/Utils/IAsyncRequestStringHandler.cs new file mode 100644 index 000000000..510535646 --- /dev/null +++ b/Facebook.Unity/Utils/IAsyncRequestStringHandler.cs @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + using System.Collections.Generic; + using UnityEngine; + + public interface IAsyncRequestStringHandler + { + void Request( + Uri url, + HttpMethod method, + WWWForm query = null, + FacebookDelegate callback = null); + + void Request( + Uri url, + HttpMethod method, + IDictionary formData = null, + FacebookDelegate callback = null); + } +} diff --git a/Facebook.Unity/Utils/IAsyncRequestStringWrapper.cs b/Facebook.Unity/Utils/IAsyncRequestStringWrapper.cs new file mode 100644 index 000000000..e5b71662e --- /dev/null +++ b/Facebook.Unity/Utils/IAsyncRequestStringWrapper.cs @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + using System.Collections.Generic; + using UnityEngine; + + internal interface IAsyncRequestStringWrapper + { + void Request( + Uri url, + HttpMethod method, + WWWForm query = null, + FacebookDelegate callback = null); + + void Request( + Uri url, + HttpMethod method, + IDictionary formData = null, + FacebookDelegate callback = null); + } +} diff --git a/Facebook.Unity/Utils/IFacebookScheduler.cs b/Facebook.Unity/Utils/IFacebookScheduler.cs new file mode 100644 index 000000000..e34aad6a2 --- /dev/null +++ b/Facebook.Unity/Utils/IFacebookScheduler.cs @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + + internal interface IFacebookScheduler + { + void Schedule( + Action action, + long delay = 0); + } +} diff --git a/Facebook.Unity/Utils/IFacebookSchedulerFactory.cs b/Facebook.Unity/Utils/IFacebookSchedulerFactory.cs new file mode 100644 index 000000000..3fb0263c1 --- /dev/null +++ b/Facebook.Unity/Utils/IFacebookSchedulerFactory.cs @@ -0,0 +1,29 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Developer Principles and Policies + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +namespace Facebook.Unity +{ + using System; + + internal interface IFacebookSchedulerFactory + { + IFacebookScheduler GetInstance(); + } +} diff --git a/Facebook.sln b/Facebook.sln index adafc146f..0f1267be2 100644 --- a/Facebook.sln +++ b/Facebook.sln @@ -9,6 +9,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity", "Facebook. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.Editor", "Facebook.Unity.Editor\Facebook.Unity.Editor.csproj", "{4F631992-8D32-4AB5-8073-4BDC8A79380B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.Android", "Facebook.Unity.Android\Facebook.Unity.Android.csproj", "{D3DF5151-7271-4CBA-8F91-85B7845E2FBD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.IOS", "Facebook.Unity.IOS\Facebook.Unity.IOS.csproj", "{E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.Settings", "Facebook.Unity.Settings\Facebook.Unity.Settings.csproj", "{BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.Android.StrippingHack", "Facebook.Unity.Android.StrippingHack\Facebook.Unity.Android.StrippingHack.csproj", "{CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facebook.Unity.IOS.StrippingHack", "Facebook.Unity.IOS.StrippingHack\Facebook.Unity.IOS.StrippingHack.csproj", "{15A3CC9F-9BB6-41A4-813B-40D2CAA91F27}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,12 +37,32 @@ Global {4F631992-8D32-4AB5-8073-4BDC8A79380B}.Debug|Any CPU.Build.0 = Debug|Any CPU {4F631992-8D32-4AB5-8073-4BDC8A79380B}.Release|Any CPU.ActiveCfg = Release|Any CPU {4F631992-8D32-4AB5-8073-4BDC8A79380B}.Release|Any CPU.Build.0 = Release|Any CPU + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA9BAAC5-5D12-460A-A8B3-428CC1F1CCC6}.Release|Any CPU.Build.0 = Release|Any CPU + {D3DF5151-7271-4CBA-8F91-85B7845E2FBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3DF5151-7271-4CBA-8F91-85B7845E2FBD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3DF5151-7271-4CBA-8F91-85B7845E2FBD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3DF5151-7271-4CBA-8F91-85B7845E2FBD}.Release|Any CPU.Build.0 = Release|Any CPU {D8F7CF97-7FE9-48B7-A30C-CB14BAA73010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8F7CF97-7FE9-48B7-A30C-CB14BAA73010}.Debug|Any CPU.Build.0 = Debug|Any CPU {D8F7CF97-7FE9-48B7-A30C-CB14BAA73010}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8F7CF97-7FE9-48B7-A30C-CB14BAA73010}.Release|Any CPU.Build.0 = Release|Any CPU + {E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9D1DFF6-9C2E-4954-95FD-A6F22B4D0121}.Release|Any CPU.Build.0 = Release|Any CPU + {CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDB20BC1-DC6F-46BD-9FBB-7F689E790B1B}.Release|Any CPU.Build.0 = Release|Any CPU + {15A3CC9F-9BB6-41A4-813B-40D2CAA91F27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15A3CC9F-9BB6-41A4-813B-40D2CAA91F27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15A3CC9F-9BB6-41A4-813B-40D2CAA91F27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15A3CC9F-9BB6-41A4-813B-40D2CAA91F27}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution - version = + version = EndGlobalSection EndGlobal diff --git a/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/GameGroups.cs b/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/GameGroups.cs index 63466cf63..9d2b2857c 100644 --- a/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/GameGroups.cs +++ b/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/GameGroups.cs @@ -78,6 +78,7 @@ protected override void GetGui() this.CallFbGetUserGroups(); } + GUI.enabled = enabled && !string.IsNullOrEmpty(this.gamerGroupCurrentGroup); if (this.Button("Make Group Post As User")) { this.CallFbPostToGamerGroup(); diff --git a/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/MainMenu.cs b/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/MainMenu.cs index c8b9e3e98..ec838d9a5 100644 --- a/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/MainMenu.cs +++ b/UnitySDK/Assets/FacebookSDK/Examples/Scripts/SubMenus/MainMenu.cs @@ -33,6 +33,8 @@ protected override bool ShowBackButton() protected override void GetGui() { + GUILayout.BeginVertical(); + bool enabled = GUI.enabled; if (this.Button("FB.Init")) { @@ -56,16 +58,24 @@ protected override void GetGui() this.Status = "Login (for publish_actions) called"; } - #if UNITY_IOS || UNITY_ANDROID || UNITY_WP8 || UNITY_EDITOR + // Fix GUILayout margin issues + GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix)); + GUILayout.EndHorizontal(); + + + GUILayout.BeginHorizontal(); + + // Fix GUILayout margin issues + GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix)); + GUILayout.EndHorizontal(); + + #if !UNITY_WEBGL if (this.Button("Logout")) { CallFBLogout(); this.Status = "Logout called"; } #endif - // Fix GUILayout margin issues - GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix)); - GUILayout.EndHorizontal(); GUI.enabled = enabled && FB.IsInitialized; if (this.Button("Share Dialog")) @@ -119,6 +129,8 @@ protected override void GetGui() this.SwitchMenu(typeof(AccessTokenMenu)); } + GUILayout.EndVertical(); + GUI.enabled = enabled; } diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.Android.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.Android.dll.meta index 8851c7506..d71c68471 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.Android.dll.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.Android.dll.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 0221af791bab543de83adf81353552b5 -timeCreated: 1468882736 +guid: c8606992c0d3d4cb197947e2812b2296 +timeCreated: 1472847769 licenseType: Pro PluginImporter: serializedVersion: 1 diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.IOS.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.IOS.dll.meta new file mode 100644 index 000000000..3aa05f9b8 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/Facebook.Unity.IOS.dll.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: f4286ffe64a794f578b0a868869ec93e +timeCreated: 1478650392 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.14.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/animated-vector-drawable-23.4.0.aar.meta similarity index 55% rename from UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.14.0.aar.meta rename to UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/animated-vector-drawable-23.4.0.aar.meta index 291f2e07f..dbeb05ef5 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.14.0.aar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/animated-vector-drawable-23.4.0.aar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: fb66a0a5090384fc8a3f4cd142bc0ec4 -timeCreated: 1468894394 +guid: 63aab30ace7254e099c62927e3a2ca8f +timeCreated: 1477351391 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.7.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/appcompat-v7-23.4.0.aar.meta similarity index 55% rename from UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.7.0.aar.meta rename to UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/appcompat-v7-23.4.0.aar.meta index 93ba4cdd7..03862b5c0 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.7.0.aar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/appcompat-v7-23.4.0.aar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: af589eb8366fd489493f8edc990698e3 -timeCreated: 1468894394 +guid: df35ef2d19c3449739b851f15aa2808c +timeCreated: 1477350814 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-android-1.4.0.jar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-android-1.4.0.jar.meta index 04e44e33e..ffbfd321d 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-android-1.4.0.jar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-android-1.4.0.jar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 52c276477162e4eb38d56fc0c73920ec -timeCreated: 1468894394 +timeCreated: 1477350795 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-applinks-1.4.0.jar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-applinks-1.4.0.jar.meta index 1248acfb2..abbbb2aa7 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-applinks-1.4.0.jar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-applinks-1.4.0.jar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 3a3f3fa834392439bb599a30a8a5c9f1 -timeCreated: 1468894394 +timeCreated: 1477350795 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-tasks-1.4.0.jar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-tasks-1.4.0.jar.meta index c5aa2b8d3..3276da16c 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-tasks-1.4.0.jar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/bolts-tasks-1.4.0.jar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 4ed03ed7033a54a66b77c10cf89f141d -timeCreated: 1468894394 +timeCreated: 1477350795 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/cardview-v7-23.4.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/cardview-v7-23.4.0.aar.meta index 30c3e228c..3ef45125f 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/cardview-v7-23.4.0.aar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/cardview-v7-23.4.0.aar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 9402ba2918e1646ab9ff8f0d7510d9bc -timeCreated: 1468894394 +timeCreated: 1477350795 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/customtabs-23.4.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/customtabs-23.4.0.aar.meta new file mode 100644 index 000000000..f46048595 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/customtabs-23.4.0.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 6752589fe76e54d199c2459e6a9f5fc9 +timeCreated: 1477350814 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.17.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.17.0.aar.meta new file mode 100644 index 000000000..c0c347fd2 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-sdk-4.17.0.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: ccb96b6ea0a9f4dbaa3bd74c45d476ca +timeCreated: 1477678449 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.9.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.9.0.aar.meta new file mode 100644 index 000000000..aec347bc6 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/facebook-android-wrapper-7.9.0.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 3e5193f42e4c34c0c9637597017da2f5 +timeCreated: 1477677079 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-annotations-23.4.0.jar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-annotations-23.4.0.jar.meta new file mode 100644 index 000000000..055b67209 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-annotations-23.4.0.jar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: ae287c4ff5ca64e2c9120c01bf330afe +timeCreated: 1477351391 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-v4-23.4.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-v4-23.4.0.aar.meta index c4bf12fc2..c9a14fca9 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-v4-23.4.0.aar.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-v4-23.4.0.aar.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 8e38d18d8ee9c4e47b9b2bc657145538 -timeCreated: 1468894394 +timeCreated: 1477350795 licenseType: Pro PluginImporter: serializedVersion: 1 @@ -8,9 +8,16 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: - Any: + Android: enabled: 1 settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-vector-drawable-23.4.0.aar.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-vector-drawable-23.4.0.aar.meta new file mode 100644 index 000000000..c9cfde1f0 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Android/libs/support-vector-drawable-23.4.0.aar.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 94ea8f6d53d8c462ea58e6a2a9cdd752 +timeCreated: 1477351391 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: {} + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Editor/Facebook.Unity.PlatformEditor.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Editor/Facebook.Unity.PlatformEditor.dll.meta new file mode 100644 index 000000000..6774b6a55 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Editor/Facebook.Unity.PlatformEditor.dll.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: e08b2110da9b7431e8b9dd128682967d +timeCreated: 1478640936 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Settings.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Settings.meta new file mode 100644 index 000000000..cd37f4962 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Settings.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 206e4007f4e254c0ab4703e0de5521a1 +folderAsset: yes +timeCreated: 1477332011 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/Settings/Facebook.Unity.Settings.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/Settings/Facebook.Unity.Settings.dll.meta new file mode 100644 index 000000000..45bbd6b08 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/Settings/Facebook.Unity.Settings.dll.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 39e483503d2cf46f9a78c3e844ad04a2 +timeCreated: 1477594420 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Bolts.framework.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Bolts.framework.meta index 0c5eab100..7e354c2ce 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Bolts.framework.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Bolts.framework.meta @@ -9,9 +9,53 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU Any: - enabled: 1 + enabled: 0 settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework.meta index 45a76015e..d6b4b2544 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework.meta @@ -9,9 +9,53 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU Any: - enabled: 1 + enabled: 0 settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKLoginKit.framework.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKLoginKit.framework.meta index 94ecf10f0..5d19c139e 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKLoginKit.framework.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKLoginKit.framework.meta @@ -9,9 +9,53 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU Any: - enabled: 1 + enabled: 0 settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKShareKit.framework.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKShareKit.framework.meta index ea6b37867..132bf93b6 100644 --- a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKShareKit.framework.meta +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/FBSDKShareKit.framework.meta @@ -9,9 +9,53 @@ PluginImporter: executionOrder: {} isPreloaded: 0 platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU Any: - enabled: 1 + enabled: 0 settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: userData: assetBundleName: assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.Android.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.Android.dll.meta new file mode 100644 index 000000000..9dc6db841 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.Android.dll.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 132ed74e3030842218bcb27cbb19f853 +timeCreated: 1478650876 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.IOS.dll.meta b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.IOS.dll.meta new file mode 100644 index 000000000..12fb87ea7 --- /dev/null +++ b/UnitySDK/Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.IOS.dll.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 30238c53c131f4d7cb46fdcbf940f7fc +timeCreated: 1470699192 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: x86 + Linux64: + enabled: 0 + settings: + CPU: x86_64 + OSXIntel: + enabled: 0 + settings: + CPU: AnyCPU + OSXIntel64: + enabled: 0 + settings: + CPU: AnyCPU + Win: + enabled: 0 + settings: + CPU: AnyCPU + Win64: + enabled: 0 + settings: + CPU: AnyCPU + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitySDK/Assets/FacebookSDK/SDK/Editor/iOS/FBUnityInterface.mm b/UnitySDK/Assets/FacebookSDK/SDK/Editor/iOS/FBUnityInterface.mm index ed0ab5b10..8a4cb7508 100644 --- a/UnitySDK/Assets/FacebookSDK/SDK/Editor/iOS/FBUnityInterface.mm +++ b/UnitySDK/Assets/FacebookSDK/SDK/Editor/iOS/FBUnityInterface.mm @@ -424,7 +424,7 @@ - (NSDictionary *)getAccessTokenUserData extern "C" { - void IOSInit(const char *_appId, bool _frictionlessRequests, const char *_urlSuffix, const char *_userAgentSuffix) + void IOSFBInit(const char *_appId, bool _frictionlessRequests, const char *_urlSuffix, const char *_userAgentSuffix) { // Set the user agent before calling init to ensure that calls made during // init use the user agent suffix. @@ -435,29 +435,29 @@ void IOSInit(const char *_appId, bool _frictionlessRequests, const char *_urlSuf urlSuffix:_urlSuffix]; } - void IOSLogInWithReadPermissions(int requestId, + void IOSFBLogInWithReadPermissions(int requestId, const char *scope) { [[FBUnityInterface sharedInstance] logInWithReadPermissions:requestId scope:scope]; } - void IOSLogInWithPublishPermissions(int requestId, + void IOSFBLogInWithPublishPermissions(int requestId, const char *scope) { [[FBUnityInterface sharedInstance] logInWithPublishPermissions:requestId scope:scope]; } - void IOSLogOut() + void IOSFBLogOut() { [[FBUnityInterface sharedInstance] logOut]; } - void IOSSetShareDialogMode(int mode) + void IOSFBSetShareDialogMode(int mode) { [FBUnityInterface sharedInstance].shareDialogMode = static_cast(mode); } - void IOSAppRequest(int requestId, + void IOSFBAppRequest(int requestId, const char *message, const char *actionType, const char *objectId, @@ -482,7 +482,7 @@ void IOSAppRequest(int requestId, title: title]; } - void IOSAppInvite(int requestId, + void IOSFBAppInvite(int requestId, const char *appLinkUrl, const char *previewImageUrl) { @@ -491,7 +491,7 @@ void IOSAppInvite(int requestId, previewImageUrl:previewImageUrl]; } - void IOSGetAppLink(int requestId) + void IOSFBGetAppLink(int requestId) { NSURL *url = [NSURL URLWithString:[FBUnityInterface sharedInstance].openURLString]; [FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnGetAppLinkComplete @@ -500,7 +500,7 @@ void IOSGetAppLink(int requestId) [FBUnityInterface sharedInstance].openURLString = nil; } - void IOSShareLink(int requestId, + void IOSFBShareLink(int requestId, const char *contentURL, const char *contentTitle, const char *contentDescription, @@ -513,7 +513,7 @@ void IOSShareLink(int requestId, photoURL:photoURL]; } - void IOSFeedShare(int requestId, + void IOSFBFeedShare(int requestId, const char *toId, const char *link, const char *linkName, @@ -532,12 +532,12 @@ void IOSFeedShare(int requestId, mediaSource:mediaSource]; } - void IOSJoinGameGroup(int requestId, const char *groupId) + void IOSFBJoinGameGroup(int requestId, const char *groupId) { [[FBUnityInterface sharedInstance] showJoinAppGroupDialogWithRequestId:requestId groupId:groupId]; } - void IOSCreateGameGroup(int requestId, const char *groupName, const char *groupDescription, const char *groupPrivacy) + void IOSFBCreateGameGroup(int requestId, const char *groupName, const char *groupDescription, const char *groupPrivacy) { [[FBUnityInterface sharedInstance] showCreateAppGroupDialogWithRequestId:requestId groupName:groupName groupDescription:groupDescription groupPrivacy:groupPrivacy]; } @@ -580,7 +580,7 @@ void IOSFBAppEventsSetLimitEventUsage(BOOL limitEventUsage) return res; } - void IOSFetchDeferredAppLink(int requestId) + void IOSFBFetchDeferredAppLink(int requestId) { [FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) { if (error) { @@ -594,7 +594,7 @@ void IOSFetchDeferredAppLink(int requestId) }]; } - void IOSRefreshCurrentAccessToken(int requestId) + void IOSFBRefreshCurrentAccessToken(int requestId) { [FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (error) { diff --git a/UnitySDK/Assets/FacebookSDK/link.xml b/UnitySDK/Assets/FacebookSDK/link.xml index be919dc5f..a0e2e3d89 100644 --- a/UnitySDK/Assets/FacebookSDK/link.xml +++ b/UnitySDK/Assets/FacebookSDK/link.xml @@ -1,25 +1,8 @@ - - - - + + + + + diff --git a/UnitySDK/Assets/FacebookSDK/link.xml.meta b/UnitySDK/Assets/FacebookSDK/link.xml.meta index d9adde6db..f330c7292 100644 --- a/UnitySDK/Assets/FacebookSDK/link.xml.meta +++ b/UnitySDK/Assets/FacebookSDK/link.xml.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: 51f4619c385224a23a3edb9092c7d49b -timeCreated: 1467948044 -licenseType: Free +timeCreated: 1478648849 +licenseType: Pro TextScriptImporter: userData: assetBundleName: diff --git a/UnitySDK/Assets/Settings.StyleCop b/UnitySDK/Assets/Settings.StyleCop new file mode 100644 index 000000000..b49c38ebd --- /dev/null +++ b/UnitySDK/Assets/Settings.StyleCop @@ -0,0 +1,219 @@ + + + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + False + + + + + + + \ No newline at end of file diff --git a/UnitySDK/ProjectSettings/GraphicsSettings.asset b/UnitySDK/ProjectSettings/GraphicsSettings.asset index 794c061b6..057c661a4 100644 --- a/UnitySDK/ProjectSettings/GraphicsSettings.asset +++ b/UnitySDK/ProjectSettings/GraphicsSettings.asset @@ -3,16 +3,31 @@ --- !u!30 &1 GraphicsSettings: m_ObjectHideFlags: 0 - serializedVersion: 5 + serializedVersion: 7 m_Deferred: m_Mode: 1 m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_DeferredReflections: m_Mode: 1 m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} m_LegacyDeferred: m_Mode: 1 m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} m_AlwaysIncludedShaders: - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} @@ -21,8 +36,23 @@ GraphicsSettings: - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] - m_ShaderSettings: - useScreenSpaceShadows: 0 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_ShaderSettings_Tier1: + useCascadedShadowMaps: 1 + standardShaderQuality: 2 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 + m_ShaderSettings_Tier2: + useCascadedShadowMaps: 1 + standardShaderQuality: 2 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 + m_ShaderSettings_Tier3: + useCascadedShadowMaps: 1 + standardShaderQuality: 2 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 m_BuildTargetShaderSettings: [] m_LightmapStripping: 0 m_FogStripping: 0 diff --git a/UnitySDK/ProjectSettings/ProjectSettings.asset b/UnitySDK/ProjectSettings/ProjectSettings.asset index 18ddf3351..80d8b9883 100644 --- a/UnitySDK/ProjectSettings/ProjectSettings.asset +++ b/UnitySDK/ProjectSettings/ProjectSettings.asset @@ -4,6 +4,7 @@ PlayerSettings: m_ObjectHideFlags: 0 serializedVersion: 8 + productGUID: 4c7bd641802e04cafb43562bb7053c64 AndroidProfiler: 0 defaultScreenOrientation: 4 targetDevice: 2 @@ -13,6 +14,7 @@ PlayerSettings: productName: SDKPackage defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} + m_SplashScreenStyle: 0 m_ShowUnitySplashScreen: 1 m_VirtualRealitySplashScreen: {fileID: 0} defaultScreenWidth: 1024 @@ -24,7 +26,7 @@ PlayerSettings: m_ActiveColorSpace: 0 m_MTRendering: 1 m_MobileMTRendering: 0 - m_Stereoscopic3D: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosAppInBackgroundBehavior: 0 @@ -37,7 +39,7 @@ PlayerSettings: useOSAutorotation: 1 use32BitDisplayBuffer: 1 disableDepthAndStencilBuffers: 0 - defaultIsFullScreen: 1 + defaultIsFullScreen: 0 defaultIsNativeResolution: 1 runInBackground: 0 captureSingleScreen: 0 @@ -47,9 +49,10 @@ PlayerSettings: usePlayerLog: 1 bakeCollisionMeshes: 0 forceSingleInstance: 0 - resizableWindow: 0 + resizableWindow: 1 useMacAppStoreValidation: 0 gpuSkinning: 0 + graphicsJobs: 0 xboxPIXTextureCapture: 0 xboxEnableAvatar: 0 xboxEnableKinect: 0 @@ -64,7 +67,6 @@ PlayerSettings: xboxEnableHeadOrientation: 0 xboxEnableGuest: 0 xboxEnablePIXSampling: 0 - xboxEnableEnableRenderThreadRunsJobs: 0 n3dsDisableStereoscopicView: 0 n3dsEnableSharedListOpt: 1 n3dsEnableVSync: 0 @@ -72,6 +74,7 @@ PlayerSettings: ignoreAlphaClear: 0 xboxOneResolution: 0 xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 ps3SplashScreen: {fileID: 0} videoMemoryForVertexBuffers: 0 psp2PowerMode: 0 @@ -95,14 +98,13 @@ PlayerSettings: bundleVersion: 1.0 preloadedAssets: [] metroEnableIndependentInputSource: 0 - metroEnableLowLatencyPresentationAPI: 0 xboxOneDisableKinectGpuReservation: 0 - virtualRealitySupported: 0 - productGUID: 4c7bd641802e04cafb43562bb7053c64 + singlePassStereoRendering: 0 + protectGraphicsMemory: 0 AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 15 AndroidPreferredInstallLocation: 1 - aotOptions: + aotOptions: apiCompatibilityLevel: 2 stripEngineCode: 1 iPhoneStrippingLevel: 3 @@ -116,7 +118,7 @@ PlayerSettings: StripUnusedMeshComponents: 0 VertexChannelCompressionMask: serializedVersion: 2 - m_Bits: 238 + m_Bits: 0 iPhoneSdkVersion: 988 iPhoneTargetOSVersion: 22 tvOSSdkVersion: 0 @@ -149,7 +151,7 @@ PlayerSettings: rgba: 0 iOSLaunchScreenFillPct: 100 iOSLaunchScreenSize: 100 - iOSLaunchScreenCustomXibPath: + iOSLaunchScreenCustomXibPath: iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadBackgroundColor: @@ -157,13 +159,15 @@ PlayerSettings: rgba: 0 iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadSize: 100 - iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreeniPadCustomXibPath: iOSDeviceRequirements: [] + iOSURLSchemes: [] + appleDeveloperTeamID: AndroidTargetDevice: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} - AndroidKeystoreName: - AndroidKeyaliasName: + AndroidKeystoreName: + AndroidKeyaliasName: AndroidTVCompatibility: 1 AndroidIsGame: 1 androidEnableBanner: 1 @@ -174,7 +178,7 @@ PlayerSettings: androidGamepadSupportLevel: 0 resolutionDialogBanner: {fileID: 0} m_BuildTargetIcons: - - m_BuildTarget: + - m_BuildTarget: m_Icons: - serializedVersion: 2 m_Icon: {fileID: 0} @@ -201,15 +205,17 @@ PlayerSettings: wiiUTVStartupScreen: {fileID: 0} wiiUGamePadStartupScreen: {fileID: 0} wiiUDrcBufferDisabled: 0 - wiiUProfilerLibPath: + wiiUProfilerLibPath: actionOnDotNetUnhandledException: 1 enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 - locationUsageDescription: - XboxTitleId: - XboxImageXexPath: - XboxSpaPath: + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + XboxTitleId: + XboxImageXexPath: + XboxSpaPath: XboxGenerateSpa: 0 XboxDeployKinectResources: 0 XboxSplashScreen: {fileID: 0} @@ -217,17 +223,17 @@ PlayerSettings: xboxAdditionalTitleMemorySize: 0 xboxDeployKinectHeadOrientation: 0 xboxDeployKinectHeadPosition: 0 - ps3TitleConfigPath: - ps3DLCConfigPath: - ps3ThumbnailPath: - ps3BackgroundPath: - ps3SoundPath: + ps3TitleConfigPath: + ps3DLCConfigPath: + ps3ThumbnailPath: + ps3BackgroundPath: + ps3SoundPath: ps3NPAgeRating: 12 - ps3TrophyCommId: - ps3NpCommunicationPassphrase: - ps3TrophyPackagePath: + ps3TrophyCommId: + ps3NpCommunicationPassphrase: + ps3TrophyPackagePath: ps3BootCheckMaxSaveGameSizeKB: 128 - ps3TrophyCommSig: + ps3TrophyCommSig: ps3SaveGameSlots: 1 ps3TrialMode: 0 ps3VideoMemoryForAudio: 0 @@ -236,30 +242,31 @@ PlayerSettings: ps3EnableMoveSupport: 1 ps3DisableDolbyEncoding: 0 ps4NPAgeRating: 12 - ps4NPTitleSecret: - ps4NPTrophyPackPath: + ps4NPTitleSecret: + ps4NPTrophyPackPath: ps4ParentalLevel: 1 ps4ContentID: ED1633-NPXX51362_00-0000000000000000 ps4Category: 0 ps4MasterVersion: 01.00 ps4AppVersion: 01.00 ps4AppType: 0 - ps4ParamSfxPath: + ps4ParamSfxPath: ps4VideoOutPixelFormat: 0 - ps4VideoOutResolution: 4 - ps4PronunciationXMLPath: - ps4PronunciationSIGPath: - ps4BackgroundImagePath: - ps4StartupImagePath: - ps4SaveDataImagePath: - ps4SdkOverride: - ps4BGMPath: - ps4ShareFilePath: - ps4ShareOverlayImagePath: - ps4PrivacyGuardImagePath: - ps4NPtitleDatPath: + ps4VideoOutInitialWidth: 1920 + ps4VideoOutReprojectionRate: 120 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: ps4RemotePlayKeyAssignment: -1 - ps4RemotePlayKeyMappingDir: + ps4RemotePlayKeyMappingDir: ps4PlayTogetherPlayerCount: 0 ps4EnterButtonAssignment: 1 ps4ApplicationParam1: 0 @@ -275,14 +282,18 @@ PlayerSettings: ps4pnFriends: 1 ps4pnGameCustomData: 1 playerPrefsSupport: 0 + ps4UseResolutionFallback: 0 + restrictedAudioUsageRights: 0 ps4ReprojectionSupport: 0 ps4UseAudio3dBackend: 0 ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 3 ps4Audio3dVirtualSpeakerCount: 14 ps4attribCpuUsage: 0 - ps4PatchPkgPath: - ps4PatchLatestPkgPath: - ps4PatchChangeinfoPath: + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 ps4attribUserManagement: 0 ps4attribMoveSupport: 0 ps4attrib3DSupport: 0 @@ -290,37 +301,37 @@ PlayerSettings: ps4attribExclusiveVR: 0 ps4disableAutoHideSplash: 0 ps4IncludedModules: [] - monoEnv: + monoEnv: psp2Splashimage: {fileID: 0} - psp2NPTrophyPackPath: + psp2NPTrophyPackPath: psp2NPSupportGBMorGJP: 0 psp2NPAgeRating: 12 - psp2NPTitleDatPath: - psp2NPCommsID: - psp2NPCommunicationsID: - psp2NPCommsPassphrase: - psp2NPCommsSig: - psp2ParamSfxPath: - psp2ManualPath: - psp2LiveAreaGatePath: - psp2LiveAreaBackroundPath: - psp2LiveAreaPath: - psp2LiveAreaTrialPath: - psp2PatchChangeInfoPath: - psp2PatchOriginalPackage: + psp2NPTitleDatPath: + psp2NPCommsID: + psp2NPCommunicationsID: + psp2NPCommsPassphrase: + psp2NPCommsSig: + psp2ParamSfxPath: + psp2ManualPath: + psp2LiveAreaGatePath: + psp2LiveAreaBackroundPath: + psp2LiveAreaPath: + psp2LiveAreaTrialPath: + psp2PatchChangeInfoPath: + psp2PatchOriginalPackage: psp2PackagePassword: WRK5RhRXdCdG5nG5azdNMK66MuCV6GXi - psp2KeystoneFile: + psp2KeystoneFile: psp2MemoryExpansionMode: 0 psp2DRMType: 0 psp2StorageType: 0 psp2MediaCapacity: 0 - psp2DLCConfigPath: - psp2ThumbnailPath: - psp2BackgroundPath: - psp2SoundPath: - psp2TrophyCommId: - psp2TrophyPackagePath: - psp2PackagedResourcesPath: + psp2DLCConfigPath: + psp2ThumbnailPath: + psp2BackgroundPath: + psp2SoundPath: + psp2TrophyCommId: + psp2TrophyPackagePath: + psp2PackagedResourcesPath: psp2SaveDataQuota: 10240 psp2ParentalLevel: 1 psp2ShortTitle: Not Set @@ -339,19 +350,19 @@ PlayerSettings: psp2InfoBarColor: 0 psp2UseDebugIl2cppLibs: 0 psmSplashimage: {fileID: 0} - spritePackerPolicy: + spritePackerPolicy: scriptingDefineSymbols: {} metroPackageName: SDKPackage - metroPackageVersion: - metroCertificatePath: - metroCertificatePassword: - metroCertificateSubject: - metroCertificateIssuer: + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: metroCertificateNotAfter: 0000000000000000 metroApplicationDescription: SDKPackage wsaImages: {} - metroTileShortName: - metroCommandLineArgsFile: + metroTileShortName: + metroCommandLineArgsFile: metroTileShowName: 0 metroMediumTileShowName: 0 metroLargeTileShowName: 0 @@ -362,33 +373,16 @@ PlayerSettings: metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} metroSplashScreenUseBackgroundColor: 0 platformCapabilities: {} - metroFTAName: + metroFTAName: metroFTAFileTypes: [] - metroProtocolName: + metroProtocolName: metroCompilationOverrides: 1 - blackberryDeviceAddress: - blackberryDevicePassword: - blackberryTokenPath: - blackberryTokenExires: - blackberryTokenAuthor: - blackberryTokenAuthorId: - blackberryCskPassword: - blackberrySaveLogPath: - blackberrySharedPermissions: 0 - blackberryCameraPermissions: 0 - blackberryGPSPermissions: 0 - blackberryDeviceIDPermissions: 0 - blackberryMicrophonePermissions: 0 - blackberryGamepadSupport: 0 - blackberryBuildId: 0 - blackberryLandscapeSplashScreen: {fileID: 0} - blackberryPortraitSplashScreen: {fileID: 0} - blackberrySquareSplashScreen: {fileID: 0} - tizenProductDescription: - tizenProductURL: - tizenSigningProfileName: + tizenProductDescription: + tizenProductURL: + tizenSigningProfileName: tizenGPSPermissions: 0 tizenMicrophonePermissions: 0 + tizenMinOSVersion: 0 n3dsUseExtSaveData: 0 n3dsCompressStaticMem: 1 n3dsExtSaveDataNumber: 0x12345 @@ -398,26 +392,26 @@ PlayerSettings: n3dsMediaSize: 0 n3dsLogoStyle: 3 n3dsTitle: GameName - n3dsProductCode: + n3dsProductCode: n3dsApplicationId: 0xFF3FF - stvDeviceAddress: - stvProductDescription: - stvProductAuthor: - stvProductAuthorEmail: - stvProductLink: + stvDeviceAddress: + stvProductDescription: + stvProductAuthor: + stvProductAuthorEmail: + stvProductLink: stvProductCategory: 0 - XboxOneProductId: - XboxOneUpdateKey: - XboxOneSandboxId: - XboxOneContentId: - XboxOneTitleId: - XboxOneSCId: - XboxOneGameOsOverridePath: - XboxOnePackagingOverridePath: - XboxOneAppManifestOverridePath: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: XboxOnePackageEncryption: 0 XboxOnePackageUpdateGranularity: 2 - XboxOneDescription: + XboxOneDescription: XboxOneIsContentPackage: 0 XboxOneEnableGPUVariability: 0 XboxOneSockets: {} @@ -450,22 +444,112 @@ PlayerSettings: tvOS::EnableIncrementalBuildSupportForIl2cpp: 0 tvOS::ScriptingBackend: 1 boolPropertyNames: + - Android::VR::enable + - Metro::VR::enable + - N3DS::VR::enable + - PS3::VR::enable + - PS4::VR::enable + - PSM::VR::enable + - PSP2::VR::enable + - SamsungTV::VR::enable + - Standalone::VR::enable + - Tizen::VR::enable + - WebGL::VR::enable - WebGL::analyzeBuildSize - WebGL::dataCaching - WebGL::useEmbeddedResources + - WebPlayer::VR::enable + - WiiU::VR::enable + - Xbox360::VR::enable + - XboxOne::VR::enable - XboxOne::enus + - iOS::VR::enable + - tvOS::VR::enable + Android::VR::enable: 0 + Metro::VR::enable: 0 + N3DS::VR::enable: 0 + PS3::VR::enable: 0 + PS4::VR::enable: 0 + PSM::VR::enable: 0 + PSP2::VR::enable: 0 + SamsungTV::VR::enable: 0 + Standalone::VR::enable: 0 + Tizen::VR::enable: 0 + WebGL::VR::enable: 0 WebGL::analyzeBuildSize: 0 WebGL::dataCaching: 0 WebGL::useEmbeddedResources: 0 + WebPlayer::VR::enable: 0 + WiiU::VR::enable: 0 + Xbox360::VR::enable: 0 + XboxOne::VR::enable: 0 XboxOne::enus: 1 + iOS::VR::enable: 0 + tvOS::VR::enable: 0 stringPropertyNames: + - Analytics_ServiceEnabled::Analytics_ServiceEnabled + - Build_ServiceEnabled::Build_ServiceEnabled + - Collab_ServiceEnabled::Collab_ServiceEnabled + - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled + - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled + - Hub_ServiceEnabled::Hub_ServiceEnabled + - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled + - UNet_ServiceEnabled::UNet_ServiceEnabled + - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled - WebGL::emscriptenArgs - WebGL::template - additionalIl2CppArgs::additionalIl2CppArgs - WebGL::emscriptenArgs: + Analytics_ServiceEnabled::Analytics_ServiceEnabled: False + Build_ServiceEnabled::Build_ServiceEnabled: False + Collab_ServiceEnabled::Collab_ServiceEnabled: False + ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled: False + Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled: False + Hub_ServiceEnabled::Hub_ServiceEnabled: False + Purchasing_ServiceEnabled::Purchasing_ServiceEnabled: False + UNet_ServiceEnabled::UNet_ServiceEnabled: False + Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled: False + WebGL::emscriptenArgs: WebGL::template: APPLICATION:Default - additionalIl2CppArgs::additionalIl2CppArgs: - cloudProjectId: - projectName: - organizationId: + additionalIl2CppArgs::additionalIl2CppArgs: + vectorPropertyNames: + - Android::VR::enabledDevices + - Metro::VR::enabledDevices + - N3DS::VR::enabledDevices + - PS3::VR::enabledDevices + - PS4::VR::enabledDevices + - PSM::VR::enabledDevices + - PSP2::VR::enabledDevices + - SamsungTV::VR::enabledDevices + - Standalone::VR::enabledDevices + - Tizen::VR::enabledDevices + - WebGL::VR::enabledDevices + - WebPlayer::VR::enabledDevices + - WiiU::VR::enabledDevices + - Xbox360::VR::enabledDevices + - XboxOne::VR::enabledDevices + - iOS::VR::enabledDevices + - tvOS::VR::enabledDevices + Android::VR::enabledDevices: + - Oculus + Metro::VR::enabledDevices: [] + N3DS::VR::enabledDevices: [] + PS3::VR::enabledDevices: [] + PS4::VR::enabledDevices: + - PlayStationVR + PSM::VR::enabledDevices: [] + PSP2::VR::enabledDevices: [] + SamsungTV::VR::enabledDevices: [] + Standalone::VR::enabledDevices: + - Oculus + Tizen::VR::enabledDevices: [] + WebGL::VR::enabledDevices: [] + WebPlayer::VR::enabledDevices: [] + WiiU::VR::enabledDevices: [] + Xbox360::VR::enabledDevices: [] + XboxOne::VR::enabledDevices: [] + iOS::VR::enabledDevices: [] + tvOS::VR::enabledDevices: [] + cloudProjectId: + projectName: + organizationId: cloudEnabled: 0 diff --git a/facebook-android-wrapper/build.gradle b/facebook-android-wrapper/build.gradle index 0b64b0922..30101d2ce 100644 --- a/facebook-android-wrapper/build.gradle +++ b/facebook-android-wrapper/build.gradle @@ -13,11 +13,11 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:2.1.3' } } -def fbSdkVersion = project.hasProperty("sdkVersion") ? sdkVersion : '4.12.0' +def fbSdkVersion = project.hasProperty("sdkVersion") ? sdkVersion : '4.16.0' repositories { // If we are doing a local build use our local dir @@ -35,9 +35,9 @@ dependencies { // not released to maven. if (project.hasProperty("localRepo")) { compile 'com.facebook.android:facebook-android-sdk:' + fbSdkVersion + '@aar' - compile 'com.android.support:support-v4:23.2.1' - compile 'com.android.support:cardview-v7:23.2.1' - compile 'com.android.support:customtabs:23.2.1' + compile 'com.android.support:support-v4:23.4.0' + compile 'com.android.support:cardview-v7:23.4.0' + compile 'com.android.support:customtabs:23.4.0' compile 'com.parse.bolts:bolts-android:1.4.0' } else { compile 'com.facebook.android:facebook-android-sdk:' + fbSdkVersion diff --git a/facebook-android-wrapper/gradle/wrapper/gradle-wrapper.properties b/facebook-android-wrapper/gradle/wrapper/gradle-wrapper.properties index 40451d683..86a618b75 100644 --- a/facebook-android-wrapper/gradle/wrapper/gradle-wrapper.properties +++ b/facebook-android-wrapper/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/facebook-android-wrapper/src/com/facebook/unity/FB.java b/facebook-android-wrapper/src/com/facebook/unity/FB.java index f0c749015..89ac61fa4 100644 --- a/facebook-android-wrapper/src/com/facebook/unity/FB.java +++ b/facebook-android-wrapper/src/com/facebook/unity/FB.java @@ -129,6 +129,24 @@ public static void Logout(String params_str) { message.send(); } + @UnityCallable + public static void loginForTVWithReadPermissions(String params_str) { + Log.v(TAG, "loginForTVWithReadPermissions(" + params_str + ")"); + Intent intent = new Intent(getUnityActivity(), FBUnityLoginActivity.class); + intent.putExtra(FBUnityLoginActivity.LOGIN_PARAMS, params_str); + intent.putExtra(FBUnityLoginActivity.LOGIN_TYPE, FBUnityLoginActivity.LoginType.TV_READ); + getUnityActivity().startActivity(intent); + } + + @UnityCallable + public static void LoginForTVWithPublishPermissions(String params_str) { + Log.v(TAG, "LoginForTVWithPublishPermissions(" + params_str + ")"); + Intent intent = new Intent(getUnityActivity(), FBUnityLoginActivity.class); + intent.putExtra(FBUnityLoginActivity.LOGIN_PARAMS, params_str); + intent.putExtra(FBUnityLoginActivity.LOGIN_TYPE, FBUnityLoginActivity.LoginType.TV_PUBLISH); + getUnityActivity().startActivity(intent); + } + @UnityCallable public static void AppRequest(String params_str) { Log.v(TAG, "AppRequest(" + params_str + ")"); diff --git a/facebook-android-wrapper/src/com/facebook/unity/FBLogin.java b/facebook-android-wrapper/src/com/facebook/unity/FBLogin.java index cb0bbb8e7..efeb841dc 100644 --- a/facebook-android-wrapper/src/com/facebook/unity/FBLogin.java +++ b/facebook-android-wrapper/src/com/facebook/unity/FBLogin.java @@ -31,6 +31,7 @@ import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; +import com.facebook.login.DeviceLoginManager; import com.facebook.login.LoginBehavior; import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; @@ -39,13 +40,25 @@ public class FBLogin { public static void loginWithReadPermissions( String params, final FBUnityLoginActivity activity) { - login(params, activity, false); + login(params, activity, false, false); } public static void loginWithPublishPermissions( String params, final FBUnityLoginActivity activity) { - login(params, activity, true); + login(params, activity, true, false); + } + + public static void loginForTVWithReadPermissions( + String params, + final FBUnityLoginActivity activity) { + login(params, activity, false, true); + } + + public static void loginForTVWithPublishPermissions( + String params, + final FBUnityLoginActivity activity) { + login(params, activity, true, true); } public static void sendLoginSuccessMessage(AccessToken token, String callbackID) { @@ -82,7 +95,8 @@ public static void addLoginParametersToMessage( private static void login( String params, final FBUnityLoginActivity activity, - boolean isPublishPermLogin) { + boolean isPublishPermLogin, + boolean isDeviceAuthLogin) { if (!FacebookSdk.isInitialized()) { Log.w(FB.TAG, "Facebook SDK not initialized. Call init() before calling login()"); return; @@ -128,10 +142,17 @@ public void onError(FacebookException e) { } }); + LoginManager loginManager; + if (isDeviceAuthLogin) { + loginManager = DeviceLoginManager.getInstance(); + } else { + loginManager = LoginManager.getInstance(); + } + if (isPublishPermLogin) { - LoginManager.getInstance().logInWithPublishPermissions(activity, permissions); + loginManager.logInWithPublishPermissions(activity, permissions); } else { - LoginManager.getInstance().logInWithReadPermissions(activity, permissions); + loginManager.logInWithReadPermissions(activity, permissions); } } } diff --git a/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java b/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java index 0bf7ad8c2..3182db3c1 100644 --- a/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java +++ b/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java @@ -42,6 +42,12 @@ protected void onCreate(Bundle savedInstanceState) { case PUBLISH: FBLogin.loginWithPublishPermissions(loginParams, this); break; + case TV_READ: + FBLogin.loginForTVWithReadPermissions(loginParams, this); + break; + case TV_PUBLISH: + FBLogin.loginForTVWithPublishPermissions(loginParams, this); + break; } } @@ -51,7 +57,9 @@ public CallbackManager getCallbackManager() { public enum LoginType { READ, - PUBLISH + PUBLISH, + TV_READ, + TV_PUBLISH } } diff --git a/scripts/build.properties b/scripts/build.properties index b815b2360..e4d9d5711 100644 --- a/scripts/build.properties +++ b/scripts/build.properties @@ -15,11 +15,11 @@ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -UNITY_SDK_BUILD_VERSION='7.8.0' +UNITY_SDK_BUILD_VERSION='7.9.0' FB_ANDROID_SDK_GROUP_ID='com.facebook.android' FB_ANDROID_SDK_ARTIFACT_ID='facebook-android-sdk' -FB_ANDROID_SDK_VERSION='4.14.0' +FB_ANDROID_SDK_VERSION='4.17.0' FB_ANDROID_SDK_PACKAGING='aar' BOLTS_GROUP_ID='com.parse.bolts' BOLTS_ARTIFACT_ID='bolts-android' @@ -29,5 +29,5 @@ BOLTS_VERSION='1.4.0' BOLTS_PACKAGING='jar' SUPPORT_LIB_VERSION='23.4.0' -FB_IOS_RESOURCE_NAME='FacebookSDKs-iOS-4.14.0.zip' -FB_IOS_SDK_VERSION='4.14.0' +FB_IOS_RESOURCE_NAME='FacebookSDKs-iOS-4.17.0.zip' +FB_IOS_SDK_VERSION='4.17.0' diff --git a/scripts/build.sh b/scripts/build.sh index 13ae2d790..b9e69a343 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -22,11 +22,46 @@ . $(dirname $0)/common.sh +BUILD_TYPE="Release" +localSettings=false + +while [ $# -gt 0 ]; do + opt="$1" + shift + case $opt in + --debug) + BUILD_TYPE=Debug + ;; + --release) + ;; + --local) + localSettings=true + ;; + *) + die "Invalid arguments" + ;; + esac +done + +# Load settings +source $PROJECT_ROOT/scripts/build.properties +LOCAL_PROPS=$PROJECT_ROOT/scripts/local.properties +if [ "$localSettings" = true ]; then + if [ -f "$LOCAL_PROPS" ]; then + source $LOCAL_PROPS + else + echo "No properties file found at $LOCAL_PROPS" + fi +fi + CSPROJ_ERROR="To generate csproj files open this project in unity at least once" PROJECT_SLN=$PROJECT_ROOT/Facebook.sln UNITY_CSPROJ=$UNITY_PACKAGE_ROOT/Assembly-CSharp.csproj +ANDROID_ROOT=$PROJECT_ROOT/Facebook.Unity.Android +ANDROID_DLL=$ANDROID_ROOT/bin/Release/Facebook.Unity.Android.dll + ARCADE_ROOT=$PROJECT_ROOT/Facebook.Unity.Arcade ARCADE_DLL=$ARCADE_ROOT/bin/Release/Facebook.Unity.Arcade.dll ARCADE_NAMED_PIPE_DLL=$ARCADE_ROOT/bin/Release/FacebookNamedPipeClient.dll @@ -34,7 +69,17 @@ ARCADE_NAMED_PIPE_DLL=$ARCADE_ROOT/bin/Release/FacebookNamedPipeClient.dll EDITOR_ROOT=$PROJECT_ROOT/Facebook.Unity.Editor EDITOR_DLL=$EDITOR_ROOT/bin/Release/Facebook.Unity.Editor.dll -CORE_ROOT=$PROJECT_ROOT/Facebook.Unity +IOS_ROOT=$PROJECT_ROOT/Facebook.Unity.IOS +IOS_DLL=$IOS_ROOT/bin/Release/Facebook.Unity.IOS.dll + +SETTINGS_ROOT=$PROJECT_ROOT/Facebook.Unity.Settings +SETTINGS_DLL=$SETTINGS_ROOT/bin/Release/Facebook.Unity.Settings.dll + +IOS_STRIPPING_HACK_ROOT=$PROJECT_ROOT/Facebook.Unity.IOS.StrippingHack +IOS_STRIPPING_HACK_DLL=$IOS_STRIPPING_HACK_ROOT/bin/Release/Facebook.Unity.IOS.dll +ANDROID_STRIPPING_HACK_ROOT=$PROJECT_ROOT/Facebook.Unity.Android.StrippingHack +ANDROID_STRIPPING_HACK_DLL=$ANDROID_STRIPPING_HACK_ROOT/bin/Release/Facebook.Unity.Android.dll + CORE_DLL=$CORE_ROOT/bin/Release/Facebook.Unity.dll TEST_ROOT=$PROJECT_ROOT/Facebook.Unity.Tests @@ -47,13 +92,16 @@ sed -i "" -e "s/AssemblyVersion(\"[0-9]\.[0-9]\.[0-9]\")/AssemblyVersion(\"$UNIT "$PROJECT_ROOT/Facebook.Unity/Properties/AssemblyInfo.cs" \ "$PROJECT_ROOT/Facebook.Unity.Arcade/Properties/AssemblyInfo.cs" \ "$PROJECT_ROOT/Facebook.Unity.Editor/Properties/AssemblyInfo.cs" \ +"$PROJECT_ROOT/Facebook.Unity.iOS/Properties/AssemblyInfo.cs" \ +"$PROJECT_ROOT/Facebook.Unity.Android/Properties/AssemblyInfo.cs" \ +"$PROJECT_ROOT/Facebook.Unity.Settings/Properties/AssemblyInfo.cs" \ "$PROJECT_ROOT/Facebook.Unity.Tests/Properties/AssemblyInfo.cs" || die "Failed to update the DLL versions" ############################################################################### # BUILD SDK ############################################################################### which mono &>/dev/null || die "mono command not found. Please install mono." -xbuild /p:Configuration=Release $PROJECT_SLN || die "Facebook.sln Build Failed" +xbuild /p:Configuration=$BUILD_TYPE $PROJECT_SLN || die "Facebook.sln Build Failed" ############################################################################### # COPY DLLS @@ -63,11 +111,16 @@ if [ ! -d "$UNITY_PACKAGE_PLUGIN" ]; then fi cp $CORE_DLL $UNITY_PACKAGE_PLUGIN || die "Failed to copy core DLL" +if [ ! -d "$UNITY_ANDROID_PLUGIN" ]; then + mkdir -p $UNITY_ANDROID_PLUGIN || die "Failed to create Android plugins folder" +fi +cp $ANDROID_DLL $UNITY_ANDROID_PLUGIN || die "Failed to copy Android DLL" +cp $IOS_STRIPPING_HACK_DLL $UNITY_ANDROID_PLUGIN || die "Failed to copy ios hack DLL" + if [ ! -d "$UNITY_ARCADE_PLUGIN" ]; then mkdir -p $UNITY_ARCADE_PLUGIN || die "Failed to create Arcade plugins folder" fi cp $ARCADE_DLL $UNITY_ARCADE_PLUGIN || die "Failed to copy Arcade DLL" - cp $ARCADE_NAMED_PIPE_DLL $UNITY_ARCADE_PLUGIN || die "Failed to copy FacebookNamedPipeClient DLL" if [ ! -d "$UNITY_EDITOR_PLUGIN" ]; then @@ -75,8 +128,19 @@ if [ ! -d "$UNITY_EDITOR_PLUGIN" ]; then fi cp $EDITOR_DLL $UNITY_EDITOR_PLUGIN || die "Failed to copy Editor DLL" +if [ ! -d "$UNITY_IOS_PLUGIN" ]; then + mkdir -p $UNITY_IOS_PLUGIN || die "Failed to create IOS plugins folder" +fi +cp $IOS_DLL $UNITY_IOS_PLUGIN || die "Failed to copy IOS DLL" +cp $ANDROID_STRIPPING_HACK_DLL $UNITY_IOS_PLUGIN || die "Failed to copy android hack DLL" + +if [ ! -d "$UNITY_SETTINGS_PLUGIN" ]; then + mkdir -p $UNITY_SETTINGS_PLUGIN || die "Failed to create Settings plugins folder" +fi +cp $SETTINGS_DLL $UNITY_SETTINGS_PLUGIN || die "Failed to copy Settings DLL" + ############################################################################### # BUILD EXAMPLE ############################################################################### validate_file_exists $UNITY_PACKAGE_ROOT/Assembly-CSharp.csproj $CSPROJERROR -xbuild /p:Configuration=Release $UNITY_CSPROJ || die "Failed to build SDK DLL" +xbuild /p:Configuration=$BUILD_TYPE $UNITY_CSPROJ || die "Failed to build SDK DLL" diff --git a/scripts/common.sh b/scripts/common.sh index 473ce0770..3a2ddeee2 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -22,10 +22,15 @@ PROJECT_ROOT=$(pwd) SCRIPTS_DIR="$PROJECT_ROOT/scripts" +CORE_ROOT=$PROJECT_ROOT/Facebook.Unity + UNITY_PACKAGE_ROOT=$PROJECT_ROOT/UnitySDK UNITY_PACKAGE_PLUGIN=$UNITY_PACKAGE_ROOT/Assets/FacebookSDK/Plugins/ +UNITY_ANDROID_PLUGIN=$UNITY_PACKAGE_PLUGIN/Android/ UNITY_ARCADE_PLUGIN=$UNITY_PACKAGE_PLUGIN/Arcade/ UNITY_EDITOR_PLUGIN=$UNITY_PACKAGE_PLUGIN/Editor/ +UNITY_IOS_PLUGIN=$UNITY_PACKAGE_PLUGIN/iOS/ +UNITY_SETTINGS_PLUGIN=$UNITY_PACKAGE_PLUGIN/Settings/ SCRIPTS_DIR="$PROJECT_ROOT/scripts" @@ -33,15 +38,6 @@ RED='\033[0;31m' NC='\033[0m' CYAN='\033[0;36m' -# Load settings -source $PROJECT_ROOT/scripts/build.properties -LOCAL_PROPS=$PROJECT_ROOT/scripts/local.properties -if [ -f "$LOCAL_PROPS" ]; then - source $PROJECT_ROOT/scripts/local.properties -else - echo "No properties file found at $LOCAL_PROPS" -fi - # Extract the SDK version from FacebookSdkVersion.java SDK_VERSION_RAW=$(sed -n 's/.*"\(.*\)\";/\1/p' "$CORE_ROOT/FacebookSdkVersion.cs") SDK_VERSION_MAJOR=$(echo $SDK_VERSION_RAW | awk -F'.' '{print $1}') @@ -88,3 +84,12 @@ function validate_file_exists() { die $2 fi } + +function validate_any_file_exists() { + FILE_COUNT=$(find "$1" -name "$2" | wc -l) + + if [[ $FILE_COUNT -eq 0 ]]; then + echo "${RED}FATAL: File not found $2 ${NC}" >&2 + die $3 + fi +} diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index d526e2943..63b0f6275 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -27,9 +27,11 @@ $SCRIPTS_DIR/build.sh || die "Build failed" which mono &>/dev/null || die "mono command not found. Please install mono." +NSUBSTITUTE_CONSOLE="$PROJECT_ROOT/packages/NSubstitute.1.10.0.0/lib" NUNIT_CONSOLE="/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/nunit-console.exe" TEST_DLL="$PROJECT_ROOT/Facebook.Unity.Tests/bin/Release/Facebook.Unity.Tests.dll" +validate_any_file_exists $NSUBSTITUTE_CONSOLE "NSubstitute.dll" "Make sure NSubstitute is installed at /packages" validate_file_exists $NUNIT_CONSOLE "Make sure mono is installed at this path" validate_file_exists $TEST_DLL "Make sure that the Unity Project successfully built" diff --git a/scripts/setup.sh b/scripts/setup.sh index 071c827a4..a439c9314 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -22,8 +22,13 @@ . $(dirname $0)/common.sh -buildAndCopyCore -buildAndCopyPlatformDLLs +which nuget &>/dev/null || die "nuget command not found. Please install nuget." +echo "checking packages..." +nuget restore $PROJECT_ROOT +echo "checking packages done." $SCRIPTS_DIR/setup_ios_unity_plugin.sh "$@" || die "Failed to setup the ios sdk plugin" $SCRIPTS_DIR/setup_android_unity_plugin.sh "$@" || die "Failed to build the android sdk plugin" + +cd $SCRIPTS_DIR +./build.sh diff --git a/scripts/setup_android_unity_plugin.sh b/scripts/setup_android_unity_plugin.sh index c06989c7a..695ae9d05 100755 --- a/scripts/setup_android_unity_plugin.sh +++ b/scripts/setup_android_unity_plugin.sh @@ -19,6 +19,9 @@ . $(dirname $0)/common.sh +PROPS_PATH="$PROJECT_ROOT/scripts/build.properties" +source $PROPS_PATH + info "Starting build" # Check for required settings if [ -z "$ANDROID_HOME" ]; then @@ -52,6 +55,11 @@ BOLTS_APPLINKS_JAR_PATH="$FB_WRAPPER_LIB_PATH/$BOLTS_APPLINKS_SDK_JAR_NAME" ANDROID_SUPPORT_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/support-v4/$SUPPORT_LIB_VERSION/support-v4-$SUPPORT_LIB_VERSION.aar" ANDROID_CARDVIEW_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/cardview-v7/$SUPPORT_LIB_VERSION/cardview-v7-$SUPPORT_LIB_VERSION.aar" +ANDROID_APP_COMPAT_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/appcompat-v7/$SUPPORT_LIB_VERSION/appcompat-v7-$SUPPORT_LIB_VERSION.aar" +ANDROID_CUSTOMTABS_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/customtabs/$SUPPORT_LIB_VERSION/customtabs-$SUPPORT_LIB_VERSION.aar" +ANDROID_ANNOTATIONS_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/support-annotations/$SUPPORT_LIB_VERSION/support-annotations-$SUPPORT_LIB_VERSION.jar" +ANDROID_SUPPORT_VECTOR_DRAWABLE_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/support-vector-drawable/$SUPPORT_LIB_VERSION/support-vector-drawable-$SUPPORT_LIB_VERSION.aar" +ANDROID_ANIMATED_VECTOR_DRAWABLE_LIB_PATH="$ANDROID_HOME/extras/android/m2repository/com/android/support/animated-vector-drawable/$SUPPORT_LIB_VERSION/animated-vector-drawable-$SUPPORT_LIB_VERSION.aar" # Local build only properties FB_ANDROID_SDK_AAR="$FB_ANDROID_SDK_PATH/facebook/build/outputs/aar/facebook-release.aar" @@ -65,7 +73,7 @@ pushd "$FB_WRAPPER_LIB_PATH" || die "Cannot navigate to directory $FB_WRAPPER_LI find . ! -name $BOLTS_SDK_JAR_NAME ! -name $FB_SDK_AAR_NAME -maxdepth 1 -type f -delete popd -info "Step 2 - Get depenancies for android wrapper" +info "Step 2 - Get dependencies for android wrapper" info "Step 2.1.0 - Download $BOLTS_SDK_JAR_NAME" if [ ! -f "$BOLTS_JAR_PATH" ]; then downloadFromMaven $BOLTS_GROUP_ID $BOLTS_ARTIFACT_ID $BOLTS_PACKAGING $BOLTS_VERSION "$BOLTS_JAR_PATH" || die "Failed to download from maven" @@ -108,6 +116,11 @@ fi info "Step 2.3 - Coping support lib" cp "$ANDROID_SUPPORT_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_SUPPORT_LIB_PATH'" cp "$ANDROID_CARDVIEW_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_CARDVIEW_LIB_PATH'" +cp "$ANDROID_APP_COMPAT_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_APP_COMPAT_LIB_PATH'" +cp "$ANDROID_CUSTOMTABS_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_CUSTOMTABS_LIB_PATH'" +cp "$ANDROID_ANNOTATIONS_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_ANNOTATIONS_LIB_PATH'" +cp "$ANDROID_SUPPORT_VECTOR_DRAWABLE_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_SUPPORT_VECTOR_DRAWABLE_LIB_PATH'" +cp "$ANDROID_ANIMATED_VECTOR_DRAWABLE_LIB_PATH" $FB_WRAPPER_LIB_PATH || die "Failed to copy '$ANDROID_ANIMATED_VECTOR_DRAWABLE_LIB_PATH'" info "Step 3 - Build android wrapper" pushd $FB_WRAPPER_PATH @@ -140,6 +153,11 @@ if [ "$localBuild" = false ]; then cp $BOLTS_APPLINKS_JAR_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy bolts app links jar to unity plugin folder' cp $ANDROID_SUPPORT_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy support lib to unity plugin folder' cp $ANDROID_CARDVIEW_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy cardview support lib to unity plugin folder' + cp $ANDROID_APP_COMPAT_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy appcompat support lib to unity plugin folder' + cp $ANDROID_CUSTOMTABS_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy customtabs support lib to unity plugin folder' + cp $ANDROID_ANNOTATIONS_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy annotations support lib to unity plugin folder' + cp $ANDROID_SUPPORT_VECTOR_DRAWABLE_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy support vector drawable support lib to unity plugin folder' + cp $ANDROID_ANIMATED_VECTOR_DRAWABLE_LIB_PATH $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy animated vector drawable support lib to unity plugin folder' else cp $FB_WRAPPER_LIB_PATH/* $UNITY_PLUGIN_FACEBOOK || die 'Failed to copy wrapper lib files' fi