From dc011583f41cd6c220bdfe777c52cf635730b927 Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Mon, 9 Dec 2024 22:12:37 -0500 Subject: [PATCH 01/13] Ancillary necessary notes --- docs/unity/upgrade-guide.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index b5d112ed..0cee4fb7 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -53,6 +53,15 @@ For usage, please refer to our documentation on [Traces](/unity/features/traces. Please refer to the [list](/android/upgrading/#remove-deprecated-properties-from-your-buildgradle) on the Embrace Android SDK Upgrade Guide for now deprecated `build.gradle` properties. +## AGP Version dependency has been bumped + +Unity has updated the internal android build tools, Gradle plugin, and Android Gradle plugin. We target those new values as our minimums on the Embrace Android SDK, and therefore also the Embrace Unity SDK on Android. For further information, please look at Unity's documentation [here](https://docs.unity3d.com/2021.3/Documentation/Manual/android-gradle-overview.html). Specific patch versions of Unity with this support differ by major Unity version; make sure to double check your version of Unity against the correct documentation. + +## Swift Library Workaround +Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). + +The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity. When doing this make sure to add the Swift file to BOTH the game target and the UnityFramework in Xcode. Then make sure to allow the creation of the bridging header. There's no need to write any code inside. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. + ## Some features still have yet to be migrated - Replacement for `EndAppStartup` planned for both Embrace Android and Embrace Apple SDKs - Please refer to the Embrace Apple SDK [Upgrade Guide](/ios/open-source/upgrade-guide/) for as of yet unsupported features on iOS From 574d08743d17de161b0e987aa593bdb27e3130c5 Mon Sep 17 00:00:00 2001 From: Jamie Lynch Date: Wed, 4 Dec 2024 11:28:22 +0000 Subject: [PATCH 02/13] docs: add faq for crash count --- docs/android/faq.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/android/faq.md b/docs/android/faq.md index 4dcd01a1..31dcc392 100644 --- a/docs/android/faq.md +++ b/docs/android/faq.md @@ -27,6 +27,19 @@ our SDK. It is therefore not recommended to enable more than one NDK crash repor The call stack that is reported for an ANR includes all processes running on the main thread at the time of an ANR. This way of classifying an ANR often misattributes the real culprit, as it tells you what is happening on the main thread at that moment, but doesn't point to the cause prior to the ANR. Embrace takes lightweight samples of the main thread up to 5 seconds before the occurrence of an ANR to show you what the thread was doing in that time. So, if you see Embrace in your ANR call stack, it's very likely the noise of the ANR reporter landing on the Embrace sampling methods. +### **Why does Embrace's crash data look different compared to another crash reporting solution I use?** + +All crash reporting solutions capture crashes in subtly different ways. One of the main differences is in how individual stacktraces are grouped into a distinct report different vendors will take different views on how best to achieve this. When comparing the dashboards of two different vendors side-by-side, this can give the appearance that one vendor is 'missing' a specific crash report, or the crash count is lower/higher than expected. In reality, the vendors have chosen different approaches to aggregate individual events, and missing crash events have simply been aggregated in a different location. + +Crash rate calculations also tend to differ between vendors, along with the definition of what forms a 'session'. These subtle differences can lead to disparities in metrics which means these values cannot be directly compared. + +Finally, SDKs use different approaches to capture & process crash data. For JVM exceptions captured stacktraces will usually be the same for all SDKs that have registered for a callback, that isn't necessarily the case for NDK crashes due to limitations of how signal handlers work. This can lead to the scenario where different stacktraces are captured for the same event by different vendors. + +### **Why does Embrace's ANR data look different compared to another ANR reporting solution I use?** + +All the reasons in this [crashes FAQ](#why-does-embraces-crash-data-look-different-compared-to-another-crash-reporting-solution-i-use) also applies to ANR data. + + ## Integrating ### **The SDK should support API level 21 but, I get an error saying API level 24 is needed. What's wrong?** From 83a114809fb0175ec9cac97c1f337644e2eb286a Mon Sep 17 00:00:00 2001 From: Jamie Lynch Date: Thu, 5 Dec 2024 09:34:06 +0000 Subject: [PATCH 03/13] Apply suggestions from code review Co-authored-by: Fredric Newberg --- docs/android/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/android/faq.md b/docs/android/faq.md index 31dcc392..0df05f1f 100644 --- a/docs/android/faq.md +++ b/docs/android/faq.md @@ -29,11 +29,11 @@ The call stack that is reported for an ANR includes all processes running on the ### **Why does Embrace's crash data look different compared to another crash reporting solution I use?** -All crash reporting solutions capture crashes in subtly different ways. One of the main differences is in how individual stacktraces are grouped into a distinct report different vendors will take different views on how best to achieve this. When comparing the dashboards of two different vendors side-by-side, this can give the appearance that one vendor is 'missing' a specific crash report, or the crash count is lower/higher than expected. In reality, the vendors have chosen different approaches to aggregate individual events, and missing crash events have simply been aggregated in a different location. +All crash reporting solutions capture crashes in subtly different ways. One of the main differences is in how individual stacktraces are grouped into a distinct report. Different vendors will take different views on how best to do this grouping. When comparing the dashboards of two different vendors side-by-side, this can give the appearance that one vendor is 'missing' a specific crash report, or the crash count is lower/higher than expected. In reality, the vendors have chosen different approaches to aggregate individual events, and missing crash events have simply been aggregated in a different location. Crash rate calculations also tend to differ between vendors, along with the definition of what forms a 'session'. These subtle differences can lead to disparities in metrics which means these values cannot be directly compared. -Finally, SDKs use different approaches to capture & process crash data. For JVM exceptions captured stacktraces will usually be the same for all SDKs that have registered for a callback, that isn't necessarily the case for NDK crashes due to limitations of how signal handlers work. This can lead to the scenario where different stacktraces are captured for the same event by different vendors. +Finally, SDKs use different approaches to capture and process crash data. For JVM exceptions, captured stacktraces will usually be the same for all SDKs that have registered for a callback. That isn't necessarily the case for NDK crashes due to limitations of how signal handlers work. This can lead to the scenario where different stacktraces are captured for the same event by different vendors. ### **Why does Embrace's ANR data look different compared to another ANR reporting solution I use?** From c6c5956d1c09967315229cbe3fb43beeef5a0390 Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Tue, 10 Dec 2024 14:31:20 -0500 Subject: [PATCH 04/13] documentation update for android/iOS --- docs/unity/integration/configure-embrace-android.md | 8 ++++---- docs/unity/upgrade-guide.md | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/unity/integration/configure-embrace-android.md b/docs/unity/integration/configure-embrace-android.md index c9ccc235..88876a5b 100644 --- a/docs/unity/integration/configure-embrace-android.md +++ b/docs/unity/integration/configure-embrace-android.md @@ -23,11 +23,11 @@ On Android, Unity builds are handled by Gradle. To integrate Embrace, we'll be a # Minimum Gradle and Android Gradle Plugin Versions -To use the Embrace Unity SDK you must be using: -1. At least version `6.5.1` of Gradle -1. At least version `4.0.0` of the Android Gradle Plugin (classpath `com.android.tools.build:gradle`) +To use the latest version of the Embrace Unity SDK you must be using: +1. At least version `7.5.1` of Gradle +1. At least version `7.4.2` of the Android Gradle Plugin (classpath `com.android.tools.build:gradle`) -If your version of Unity does not come with supported versions of Gradle and AGP, you may need to upgrade them. See [this page](https://docs.unity3d.com/Manual/android-gradle-overview.html) for more information. Alternatively, see the instructions on [this page](https://developers.google.com/admob/unity/gradle) regarding how to upgrade these inside Unity. +If your version of Unity does not come with supported versions of Gradle and AGP, you may need to upgrade them. See [this page](https://docs.unity3d.com/Manual/android-gradle-overview.html) for more information. Alternatively, see the instructions on [this page](https://developers.google.com/admob/unity/gradle) regarding how to upgrade these inside Unity. Please note that in upgrading, you may have to update values in the generated template files we require as they may still point to the older values. # External Dependency Manager - Android Resolver diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index 0cee4fb7..67aead71 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -57,6 +57,8 @@ Please refer to the [list](/android/upgrading/#remove-deprecated-properties-from Unity has updated the internal android build tools, Gradle plugin, and Android Gradle plugin. We target those new values as our minimums on the Embrace Android SDK, and therefore also the Embrace Unity SDK on Android. For further information, please look at Unity's documentation [here](https://docs.unity3d.com/2021.3/Documentation/Manual/android-gradle-overview.html). Specific patch versions of Unity with this support differ by major Unity version; make sure to double check your version of Unity against the correct documentation. +Please note that in upgrading, you may have to update values in the generated template files we require as they may still point to the older values. Please refer to the link to Unity's documentation above regarding supported Android Gradle versions for what these should be. + ## Swift Library Workaround Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). From d62b7bd5c6401a1252c959de25f7ac86d8c5da5e Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Tue, 10 Dec 2024 16:55:35 -0500 Subject: [PATCH 05/13] Documentation update covering desired path to create dummy swift file --- docs/unity/integration/configure-embrace-ios.md | 2 +- docs/unity/upgrade-guide.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unity/integration/configure-embrace-ios.md b/docs/unity/integration/configure-embrace-ios.md index ad237dc7..373d7e55 100644 --- a/docs/unity/integration/configure-embrace-ios.md +++ b/docs/unity/integration/configure-embrace-ios.md @@ -25,7 +25,7 @@ Now when you build and run your project, our editor script will use those values ## Known Issues -Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target. This will adjust the linker pipeline to invoke Swift appropriately. +Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. This will adjust the linker pipeline to invoke Swift appropriately. For further information, please refer to this discussion: https://github.com/CocoaPods/CocoaPods/issues/11960 diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index 67aead71..e0ffdaa4 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -62,7 +62,7 @@ Please note that in upgrading, you may have to update values in the generated te ## Swift Library Workaround Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). -The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity. When doing this make sure to add the Swift file to BOTH the game target and the UnityFramework in Xcode. Then make sure to allow the creation of the bridging header. There's no need to write any code inside. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. +The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. There's no need to write add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. ## Some features still have yet to be migrated - Replacement for `EndAppStartup` planned for both Embrace Android and Embrace Apple SDKs From 1216fa6db2f2b7048cc5f404ec34790e062050c6 Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Tue, 10 Dec 2024 17:21:35 -0500 Subject: [PATCH 06/13] documentation edit covering the golden path --- docs/unity/integration/configure-embrace-ios.md | 2 +- docs/unity/upgrade-guide.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unity/integration/configure-embrace-ios.md b/docs/unity/integration/configure-embrace-ios.md index 373d7e55..a14e9995 100644 --- a/docs/unity/integration/configure-embrace-ios.md +++ b/docs/unity/integration/configure-embrace-ios.md @@ -25,7 +25,7 @@ Now when you build and run your project, our editor script will use those values ## Known Issues -Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. This will adjust the linker pipeline to invoke Swift appropriately. +Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to write add any code. This will adjust the linker pipeline to invoke Swift appropriately. For further information, please refer to this discussion: https://github.com/CocoaPods/CocoaPods/issues/11960 diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index e0ffdaa4..ac838648 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -62,7 +62,7 @@ Please note that in upgrading, you may have to update values in the generated te ## Swift Library Workaround Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). -The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. There's no need to write add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. +The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to write add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. ## Some features still have yet to be migrated - Replacement for `EndAppStartup` planned for both Embrace Android and Embrace Apple SDKs From 342a9eefa778eecc2404a08f00b985aa65b00a0f Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Wed, 11 Dec 2024 19:51:56 -0500 Subject: [PATCH 07/13] Unity Android SDK version update --- embrace.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/embrace.json b/embrace.json index 4a96a4b8..15bd8d23 100644 --- a/embrace.json +++ b/embrace.json @@ -15,6 +15,6 @@ "version": "1.26.1" }, "unity_android": { - "version": "6.8.3" + "version": "6.14.0" } } \ No newline at end of file From 5cc8fe543d47be7d786a6880968198fd5becb744 Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Wed, 11 Dec 2024 20:02:27 -0500 Subject: [PATCH 08/13] Changelog edit --- docs/unity/changelog.md | 4 ++++ docs/unity/index.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/unity/changelog.md b/docs/unity/changelog.md index ce1b543b..9217b38e 100644 --- a/docs/unity/changelog.md +++ b/docs/unity/changelog.md @@ -12,7 +12,11 @@ Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the For further information, please refer to this discussion: https://github.com/CocoaPods/CocoaPods/issues/11960 ::: +* Upgrade of Embrace iOS dependency to 6.6.0 * Restoration of meta files and patch to local asset path issues +* Patch of StopSpan error code handling +* Removal of Integration Guide in Getting Started Window + ## 2.1.0 *November 21, 2024* diff --git a/docs/unity/index.md b/docs/unity/index.md index 7d5a4d94..0b20056b 100644 --- a/docs/unity/index.md +++ b/docs/unity/index.md @@ -10,7 +10,7 @@ sidebar_position: 0 Embrace's Unity SDK lets you bring the deep, introspective and native debugging power of Embrace into your Unity game or application. -We test our SDK on all Unity LTS versions 2020.3.15f1 and newer. Each Unity release varies and all Unity projects are a little different, so don't hesitate to reach out to us for support during the integration process. +We test our SDK on Unity LTS versions 2021.3.41f1 and newer. Each Unity release varies and all Unity projects are a little different, so don't hesitate to reach out to us for support during the integration process. This documentation is split into two sections: From abb3e91f553778f7138f700962a504d304363d82 Mon Sep 17 00:00:00 2001 From: Alyssa Syharath Date: Wed, 11 Dec 2024 20:03:48 -0500 Subject: [PATCH 09/13] Changelog to match internal to SDK --- docs/unity/changelog.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/unity/changelog.md b/docs/unity/changelog.md index 9217b38e..09a18343 100644 --- a/docs/unity/changelog.md +++ b/docs/unity/changelog.md @@ -13,9 +13,11 @@ Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the For further information, please refer to this discussion: https://github.com/CocoaPods/CocoaPods/issues/11960 ::: * Upgrade of Embrace iOS dependency to 6.6.0 +* Removal of automated scoped registry functionality +* Removal of integration guide steps in lieu of documentation +* Patch of extraneous embedding of iOS framework elements * Restoration of meta files and patch to local asset path issues * Patch of StopSpan error code handling -* Removal of Integration Guide in Getting Started Window ## 2.1.0 From f9111202758557225b2d5fcf5e64303fcf99fbfe Mon Sep 17 00:00:00 2001 From: alyssa-embrace Date: Thu, 12 Dec 2024 15:59:22 -0500 Subject: [PATCH 10/13] removing moment reference from session reporting segment --- docs/unity/integration/session-reporting.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/docs/unity/integration/session-reporting.md b/docs/unity/integration/session-reporting.md index 461e05a4..ffb001c8 100644 --- a/docs/unity/integration/session-reporting.md +++ b/docs/unity/integration/session-reporting.md @@ -60,18 +60,6 @@ It is important that this call be made as early as possible in the lifecycle of ::: -## End the Startup Moment - -Finally, make sure to end the special "startup" moment that Embrace uses to track app launch performance. You can end this moment anywhere you choose. We recommend placing the call as close to the point that your UI is ready for use as possible, as doing so will give you the most accurate picture of the performance your users are experiencing with app launch. - -```cs -Embrace.Instance.EndAppStartup(); -``` - -:::info A Note On Ensuring the Startup Moment Ends -This moment is used to track both launch performance and launch abandonment. The latter is the number of users who close the app before the launch finishes. To correctly track this, it is critical that all code paths end the startup moment eventually. For example, if your app can launch via a push notification, ensure that path also ends the startup moment or you may see inaccurate abandonment data. -::: - ## Build and Run Your Application You're now ready to build and run your application. Assuming the app launches correctly, pay attention to the system logging and look for Embrace to print out its version number. From f490511cd279752bdbbf3bda5263f9b6cbfa9814 Mon Sep 17 00:00:00 2001 From: alyssa-embrace Date: Thu, 12 Dec 2024 20:27:28 -0500 Subject: [PATCH 11/13] Download link, changelog, and link repair updates --- docs/unity/changelog.md | 9 ++++++--- docs/unity/integration/linking-embrace.md | 2 +- docs/unity/integration/session-reporting.md | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/unity/changelog.md b/docs/unity/changelog.md index 09a18343..62de369e 100644 --- a/docs/unity/changelog.md +++ b/docs/unity/changelog.md @@ -5,8 +5,8 @@ sidebar_position: 4 --- # Unity SDK Changelog -## 2.1.1 -*November 26, 2024* +## 2.1.2 +*December 12, 2024* :::warning Info Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target. This will adjust the linker pipeline to invoke Swift appropriately. @@ -16,9 +16,12 @@ For further information, please refer to this discussion: https://github.com/Coc * Removal of automated scoped registry functionality * Removal of integration guide steps in lieu of documentation * Patch of extraneous embedding of iOS framework elements -* Restoration of meta files and patch to local asset path issues * Patch of StopSpan error code handling +* Patch of Android Crash Handling when dealing with default `config.json` values +## 2.1.1 +*November 26, 2024* +* Restoration of meta files and patch to local asset path issues ## 2.1.0 *November 21, 2024* diff --git a/docs/unity/integration/linking-embrace.md b/docs/unity/integration/linking-embrace.md index 2df1f8c4..0ee2670b 100644 --- a/docs/unity/integration/linking-embrace.md +++ b/docs/unity/integration/linking-embrace.md @@ -8,7 +8,7 @@ description: Linking Embrace with your application is quick and easy. To install Embrace, download our latest SDK below. -[Download Embrace 2.1.1 for Unity](https://downloads.embrace.io/EmbraceSDK_2.1.1.unitypackage) +[Download Embrace 2.1.2 for Unity](https://downloads.embrace.io/EmbraceSDK_2.1.2.unitypackage) Once downloaded, import the Unity Package by selecting Assets -> Import Package -> Custom Package. diff --git a/docs/unity/integration/session-reporting.md b/docs/unity/integration/session-reporting.md index ffb001c8..33b0116d 100644 --- a/docs/unity/integration/session-reporting.md +++ b/docs/unity/integration/session-reporting.md @@ -15,7 +15,6 @@ process we're going to follow to collect our first session is: 1. [**Import the Embrace module**](/unity/integration/session-reporting#import-embrace) 1. [**Add a start call to the Embrace SDK**](/unity/integration/session-reporting#add-a-start-call) -1. [**End the Startup Moment**](/unity/integration/session-reporting#end-the-startup-moment) 1. [**Build and run our application**](/unity/integration/session-reporting#build-and-run-your-application) 1. Verify Embrace started via the logs 1. [**Trigger a session upload**](/unity/integration/session-reporting#trigger-a-session-upload) From ec9630a7d21976a569b26b8caa3ca0ec252d03ba Mon Sep 17 00:00:00 2001 From: alyssa-embrace <122310002+alyssa-embrace@users.noreply.github.com> Date: Thu, 12 Dec 2024 20:33:21 -0500 Subject: [PATCH 12/13] Update docs/unity/upgrade-guide.md Co-authored-by: Nathan Ostgard --- docs/unity/upgrade-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index ac838648..452fb81f 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -60,7 +60,7 @@ Unity has updated the internal android build tools, Gradle plugin, and Android G Please note that in upgrading, you may have to update values in the generated template files we require as they may still point to the older values. Please refer to the link to Unity's documentation above regarding supported Android Gradle versions for what these should be. ## Swift Library Workaround -Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). +Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a Swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning symbols such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to write add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. From 46606e8b65f0cdfdbcb974c7191869754d4a960b Mon Sep 17 00:00:00 2001 From: alyssa-embrace Date: Thu, 12 Dec 2024 20:34:43 -0500 Subject: [PATCH 13/13] typo fixes and implementing suggestions --- docs/unity/integration/configure-embrace-ios.md | 2 +- docs/unity/upgrade-guide.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/unity/integration/configure-embrace-ios.md b/docs/unity/integration/configure-embrace-ios.md index a14e9995..aca922c3 100644 --- a/docs/unity/integration/configure-embrace-ios.md +++ b/docs/unity/integration/configure-embrace-ios.md @@ -25,7 +25,7 @@ Now when you build and run your project, our editor script will use those values ## Known Issues -Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to write add any code. This will adjust the linker pipeline to invoke Swift appropriately. +Our Apple SDK and the Unity iOS SDK use Swift, which has a known issue with the current Unity build pipeline. To handle this issue, after creating your XCode project, add a Dummy Swift file to the UnityFramework target by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to add any code. This will adjust the linker pipeline to invoke Swift appropriately. For further information, please refer to this discussion: https://github.com/CocoaPods/CocoaPods/issues/11960 diff --git a/docs/unity/upgrade-guide.md b/docs/unity/upgrade-guide.md index 452fb81f..f4fef439 100644 --- a/docs/unity/upgrade-guide.md +++ b/docs/unity/upgrade-guide.md @@ -62,7 +62,7 @@ Please note that in upgrading, you may have to update values in the generated te ## Swift Library Workaround Currently the latest version of Xcode and Unity's iOS build pipeline have an issue where including a Swift library (such as the Embrace Apple SDK) does not result in Xcode invoking its linker toolchain correctly. This can block builds and will generally involve messages mentioning symbols such as `swift_FORCE_LOAD_$_swiftCompatibility`. The issue is rather recent, and listed [here](https://forums.developer.apple.com/forums/thread/762854). -The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to write add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokves its toolchain correctly. +The easiest solution to this is to add a Dummy Swift file in the exported Xcode project out of Unity by right clicking the `Unity-iPhone` xcode project in the Project Navigator and selecting the `New File from Template` option. When doing this make sure to add the Swift file to the UnityFramework in Xcode. Make sure to add the file to BOTH the game target AND the UnityFramework target. Then, make sure to create the bridging heading. There's no need to add any code. The sole purpose of the file is to provide Xcode the necessary hints so that it invokes its toolchain correctly. ## Some features still have yet to be migrated - Replacement for `EndAppStartup` planned for both Embrace Android and Embrace Apple SDKs