profile
viewpoint
Ivan Matkov MatkovIvan Akvelon Inc Ivanovo, Russia Mobile developer

bitstadium/HockeySDK-iOS 607

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Android 284

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Mac 126

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Windows 100

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Xamarin 61

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Unity-iOS 45

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-Unity-Android 26

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

glitchless/Recast 10

RPG игра. Технопарк Mail.Ru 1 семестр

bitstadium/HockeySDK-iOSDemo 7

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

bitstadium/HockeySDK-tvOS 7

HockeyApp was retired and the SDKs are deprecated. Please use App Center instead.

issue commentmicrosoft/appcenter-sdk-dotnet

Apple rejection for non-public API usage (ITMS-90338) related to MSAnalytics

@rpendleton I found the same message about MSService in 1y old StackOverflow issue, this one was there for a while and didn't cause any issues aside of this warning. As I mentioned about we're working on changing the prefix everywhere, but it will take some time. Today's patch should fix this issue.

warpedgeoid

comment created time in 14 hours

push eventmicrosoft/appcenter-sdk-dotnet

Ivan Matkov

commit sha 23ecc1a8b16178d1127e672053a62a9975e32b52

Fix raw binding usage in Demo application

view details

Ivan Matkov

commit sha cfa2196445104d20135ed62fc1cc1b168a89aae0

Merge pull request #1448 from microsoft/fix/demo-raw-bindings-usage Fix raw binding usage in Demo application

view details

Ivan Matkov

commit sha 177119f19ec384cee097a8ca2fe567f09255bba8

Merge pull request #1451 from microsoft/master Merge changes from master branch

view details

push time in 18 hours

PR merged microsoft/appcenter-sdk-dotnet

Merge changes from master branch

Related PRs or issues

#1448, #1450

+4 -4

0 comment

1 changed file

MatkovIvan

pr closed time in 18 hours

PR opened microsoft/appcenter-sdk-dotnet

Merge changes from master branch

Related PRs or issues

#1448, #1450

+4 -4

0 comment

1 changed file

pr created time in 18 hours

delete branch microsoft/appcenter-sdk-dotnet

delete branch : v-ankubo/rename-analytics

delete time in 18 hours

delete branch microsoft/appcenter-sdk-dotnet

delete branch : v-ankubo/fix-xamarin-ios14

delete time in 18 hours

issue closedmicrosoft/appcenter-sdk-dotnet

Apple rejection for non-public API usage (ITMS-90338) related to MSAnalytics

When submitting our app for review using Xamarin.iOS 14 and any version of Microsoft.AppCenter.Analytics from 3.2.2 to 3.4.2, the app is quickly rejected with the following message:

ITMS-90338: Non-public API usage - The app contains or inherits from non-public classes in <app_name>: MSAnalytics . If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Removing Microsoft.AppCenter.Analytics results in the app being accepted.

This is with Xcode 12 and built on VS for Mac 8.7.8b4.

closed time in 18 hours

warpedgeoid

issue commentmicrosoft/appcenter-sdk-dotnet

Apple rejection for non-public API usage (ITMS-90338) related to MSAnalytics

Closing this for now, but feel free to comment or reopen if the problem is still here or you have any questions.

warpedgeoid

comment created time in 18 hours

issue closedmicrosoft/appcenter-sdk-dotnet

AppCenter SDK Analytics.TrackEvent() throws errors on Xamarin.iOS 14

<!-- Thanks for your interest in using the App Center SDK for .NET platforms. If your issue is not related to using our .NET SDK but rather about the product experience like the portal or CI, please create an issue on https://github.com/Microsoft/appcenter instead. -->

Description

Since we moved to Xamarin.iOS 14 , we are experiencing issues when using Analytics.TrackEvent(), which were not there on the previous versions of Xamarin.iOS.

Repro Steps

  1. Create a simple iOS app that is integrating with the AppCenter SDK version 3.4.2 (Xamarin.iOS)
  2. Use event tracking to track a simple event, for example: Analytics.TrackEvent("test",null);
  3. Build and run the app on Xamarin.iOS 14. This issue does not occur with previous versions of Xamarin.iOS
  4. The TrackEvent() call throws the following error on any call to the method, with any parameter possible.

Objective-C exception thrown. Name: NSInvalidArgumentException Reason: +[MSAnalytics trackEvent:withProperties:]: unrecognized selector sent to class 0x1fa831430

Details

  1. What is your app platform (Xamarin.Android or Xamarin.iOS or UWP)?
    • e.g. Xamarin.iOS
  2. If using Xamarin.Forms or if using portable/shared code to call our SDK APIs, are you using shared project, PCL code or .NET standard code for the application? Which .NET standard version or which PCL profile?
    • NET standard 2.0.
  3. Which SDK version are you using?
    • e.g. 3.4.2
  4. Which OS version did you experience the issue on?
    • e.g. iOS 14
  5. What device version did you see this error on? Were you using an emulator or a physical device?
    • e.g. iPhone 6s physical device
  6. What third party libraries are you using? <!-- For .NET, you can find these in your .csproj, package.json, or package.config files -->
    • N/A
  7. Please enable verbose logging for your app using AppCenter.LogLevel = LogLevel.Verbose before your call to AppCenter.Start(...) and include the logs here:

Objective-C exception thrown. Name: NSInvalidArgumentException Reason: +[MSAnalytics trackEvent:withProperties:]: unrecognized selector sent to class 0x1fa831430 Native stack trace: 0 CoreFoundation 0x00000001a39f0128 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1155368 1 libobjc.A.dylib 0x00000001b7216cb4 objc_exception_throw + 56 2 CoreFoundation 0x00000001a3904e6c F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 192108 3 CoreFoundation 0x00000001a39f2758 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1165144 4 CoreFoundation 0x00000001a39f46cc _CF_forwarding_prep_0 + 92 5 QPark.MobilePark.iOS 0x000000010977bb34 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112842028 6 QPark.MobilePark.iOS 0x0000000109775b7c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112817524 7 QPark.MobilePark.iOS 0x0000000109774874 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112812652 8 QPark.MobilePark.iOS 0x00000001030f89b0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 5350312 9 QPark.MobilePark.iOS 0x0000000103355850 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7828040 10 QPark.MobilePark.iOS 0x0000000103355564 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827292 11 QPark.MobilePark.iOS 0x00000001033557d8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827920 12 QPark.MobilePark.iOS 0x000000010331e05c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600724 13 QPark.MobilePark.iOS 0x000000010331de5c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600212 14 QPark.MobilePark.iOS 0x000000010335bab8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7853232 15 QPark.MobilePark.iOS 0x00000001033556f0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827688 16 QPark.MobilePark.iOS 0x00000001033555c8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827392 17 QPark.MobilePark.iOS 0x0000000103327db8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7641008 18 QPark.MobilePark.iOS 0x0000000103bec800 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 16835064 19 QPark.MobilePark.iOS 0x0000000103329e78 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7649392 20 QPark.MobilePark.iOS 0x0000000103a18f10 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 14919944 21 QPark.MobilePark.iOS 0x000000010983ce14 mono_pmip + 28148 22 QPark.MobilePark.iOS 0x00000001098f9de4 mono_pmip + 802244 23 QPark.MobilePark.iOS 0x000000010993d430 mono_pmip + 1078288 24 QPark.MobilePark.iOS 0x000000010993ad0c mono_pmip + 1068268 25 QPark.MobilePark.iOS 0x00000001099464a4 mono_pmip + 1115268 26 QPark.MobilePark.iOS 0x0000000109946328 mono_pmip + 1114888 27 libsystem_pthread.dylib 0x00000001e9296b70 _pthread_start + 288 28 libsystem_pthread.dylib 0x00000001e929b880 thread_start + 8

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInvalidArgumentException Reason: +[MSAnalytics trackEvent:withProperties:]: unrecognized selector sent to class 0x1fa831430 Native stack trace: 0 CoreFoundation 0x00000001a39f0128 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1155368 1 libobjc.A.dylib 0x00000001b7216cb4 objc_exception_throw + 56 2 CoreFoundation 0x00000001a3904e6c F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 192108 3 CoreFoundation 0x00000001a39f2758 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1165144 4 CoreFoundation 0x00000001a39f46cc _CF_forwarding_prep_0 + 92 5 QPark.MobilePark.iOS 0x000000010977bb34 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112842028 6 QPark.MobilePark.iOS 0x0000000109775b7c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112817524 7 QPark.MobilePark.iOS 0x0000000109774874 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112812652 8 QPark.MobilePark.iOS 0x00000001030f89b0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 5350312 9 QPark.MobilePark.iOS 0x0000000103355850 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7828040 10 QPark.MobilePark.iOS 0x0000000103355564 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827292 11 QPark.MobilePark.iOS 0x00000001033557d8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827920 12 QPark.MobilePark.iOS 0x000000010331e05c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600724 13 QPark.MobilePark.iOS 0x000000010331de5c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600212 14 QPark.MobilePark.iOS 0x000000010335bab8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7853232 15 QPark.MobilePark.iOS 0x00000001033556f0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827688 16 QPark.MobilePark.iOS 0x00000001033555c8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827392 17 QPark.MobilePark.iOS 0x0000000103327db8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7641008 18 QPark.MobilePark.iOS 0x0000000103bec800 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 16835064 19 QPark.MobilePark.iOS 0x0000000103329e78 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7649392 20 QPark.MobilePark.iOS 0x0000000103a18f10 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 14919944 21 QPark.MobilePark.iOS 0x000000010983ce14 mono_pmip + 28148 22 QPark.MobilePark.iOS 0x00000001098f9de4 mono_pmip + 802244 23 QPark.MobilePark.iOS 0x000000010993d430 mono_pmip + 1078288 24 QPark.MobilePark.iOS 0x000000010993ad0c mono_pmip + 1068268 25 QPark.MobilePark.iOS 0x00000001099464a4 mono_pmip + 1115268 26 QPark.MobilePark.iOS 0x0000000109946328 mono_pmip + 1114888 27 libsystem_pthread.dylib 0x00000001e9296b70 _pthread_start + 288 28 libsystem_pthread.dylib 0x00000001e929b880 thread_start + 8

at ObjCRuntime.Runtime.ThrowNSException (System.IntPtr ns_exception) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/14.0.0.0/src/Xamarin.iOS/ObjCRuntime/Runtime.cs:407 at ObjCRuntime.Runtime.throw_ns_exception (System.IntPtr exc) [0x00000] in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/runtime/Delegates.generated.cs:128 at (wrapper native-to-managed) ObjCRuntime.Runtime.throw_ns_exception(intptr) at (wrapper managed-to-native) ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr(intptr,intptr,intptr,intptr) at Microsoft.AppCenter.Analytics.iOS.Bindings.MSAnalytics.TrackEvent (System.String eventName, Foundation.NSDictionary properties) [0x00020] in <956beacb74264aa6a825ca9cd7b094aa>:0 at Microsoft.AppCenter.Analytics.Analytics.TrackEvent (System.String name, System.Collections.Generic.IDictionary`2[TKey,TValue] properties) [0x0000a] in <5a9e1f22609148d9acf10da2d1e94b5c>:0 at QPark.MobilePark.iOS.Abstractions.IOSAppCenterAnalyticsProvider+<>c__DisplayClass4_0.<LogAnalytics>b__0 () [0x00002] in /Users/kennydm/Documents/Source Control/QPark/QPark.MobilePark/QPark.MobilePark.iOS/Abstractions/IOSAppCenterAnalyticsProvider.cs:31 --- End of stack trace from previous location where exception was thrown ---

at (wrapper managed-to-native) ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr(intptr,intptr,intptr,intptr) at Microsoft.AppCenter.Analytics.iOS.Bindings.MSAnalytics.TrackEvent (System.String eventName, Foundation.NSDictionary properties) [0x00020] in <956beacb74264aa6a825ca9cd7b094aa>:0 at Microsoft.AppCenter.Analytics.Analytics.TrackEvent (System.String name, System.Collections.Generic.IDictionary`2[TKey,TValue] properties) [0x0000a] in <5a9e1f22609148d9acf10da2d1e94b5c>:0 at QPark.MobilePark.iOS.Abstractions.IOSAppCenterAnalyticsProvider+<>c__DisplayClass4_0.<LogAnalytics>b__0 () [0x00002] in /Users/kennydm/Documents/Source Control/QPark/QPark.MobilePark/QPark.MobilePark.iOS/Abstractions/IOSAppCenterAnalyticsProvider.cs:31 0 CoreFoundation 0x00000001a39f0128 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1155368 1 libobjc.A.dylib 0x00000001b7216cb4 objc_exception_throw + 56 2 CoreFoundation 0x00000001a3904e6c F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 192108 3 CoreFoundation 0x00000001a39f2758 F80FCA31-BF76-3293-8BC6-1729588AE8B6 + 1165144 4 CoreFoundation 0x00000001a39f46cc _CF_forwarding_prep_0 + 92 5 QPark.MobilePark.iOS 0x000000010977bb34 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112842028 6 QPark.MobilePark.iOS 0x0000000109775b7c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112817524 7 QPark.MobilePark.iOS 0x0000000109774874 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 112812652 8 QPark.MobilePark.iOS 0x00000001030f89b0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 5350312 9 QPark.MobilePark.iOS 0x0000000103355850 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7828040 10 QPark.MobilePark.iOS 0x0000000103355564 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827292 11 QPark.MobilePark.iOS 0x00000001033557d8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827920 12 QPark.MobilePark.iOS 0x000000010331e05c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600724 13 QPark.MobilePark.iOS 0x000000010331de5c ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7600212 14 QPark.MobilePark.iOS 0x000000010335bab8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7853232 15 QPark.MobilePark.iOS 0x00000001033556f0 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827688 16 QPark.MobilePark.iOS 0x00000001033555c8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7827392 17 QPark.MobilePark.iOS 0x0000000103327db8 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7641008 18 QPark.MobilePark.iOS 0x0000000103bec800 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 16835064 19 QPark.MobilePark.iOS 0x0000000103329e78 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 7649392 20 QPark.MobilePark.iOS 0x0000000103a18f10 ZN9GMSx_absl13base_internal10AtomicHookIPFvPKciS3_S3_S3_EE13DummyFunctionES3_iS3_S3_S3 + 14919944 21 QPark.MobilePark.iOS 0x000000010983ce14 mono_pmip + 28148 22 QPark.MobilePark.iOS 0x00000001098f9de4 mono_pmip + 802244 23 QPark.MobilePark.iOS 0x000000010993d430 mono_pmip + 1078288 24 QPark.MobilePark.iOS 0x000000010993ad0c mono_pmip + 1068268 25 QPark.MobilePark.iOS 0x00000001099464a4 mono_pmip + 1115268 26 QPark.MobilePark.iOS 0x0000000109946328 mono_pmip + 1114888 27 libsystem_pthread.dylib 0x00000001e9296b70 _pthread_start + 288 28 libsystem_pthread.dylib 0x00000001e929b880 thread_start + 8

closed time in 18 hours

KennyDM

issue commentmicrosoft/appcenter-sdk-dotnet

AppCenter SDK Analytics.TrackEvent() throws errors on Xamarin.iOS 14

Closing this for now, but feel free to comment or reopen if the problem is still here or you have any questions.

KennyDM

comment created time in 18 hours

push eventmicrosoft/appcenter-sdk-dotnet

Anastasia Kubova

commit sha c13321f464cbe172f33a8a10cac94e2cf48f9c78

Rename analytics module

view details

Ivan Matkov

commit sha b0e53bfdb6287ba0212bf57fc3c8d10dc3d888ce

Start new 3.4.3 release

view details

App Center

commit sha 50c981c266371d44a424e6bcf50bf2fc55f372db

Update Demo apps

view details

Ivan Matkov

commit sha 6b09d513fd59c0b9841c10b14bad3aea94dc1cd6

Use patched apple version

view details

Ivan Matkov

commit sha ad207ff7c53932306c177e1441ae9bfb69318c2d

Update changelog

view details

Ivan Matkov

commit sha 05efe139d554c95338b28a2836512c8bb6f2228a

Merge pull request #1447 from microsoft/release/3.4.3 Start new 3.4.3 version

view details

App Center

commit sha 2893703ea2192229752e1feffb814cb4773b490d

Update SDK version

view details

Ivan Matkov

commit sha 8f8e9664c502bf660e1ef3699e9725d0796ff895

Merge pull request #1450 from microsoft/release/start-next-version Start next version

view details

push time in 18 hours

delete branch microsoft/appcenter-sdk-dotnet

delete branch : release/start-next-version

delete time in 18 hours

PullRequestReviewEvent

issue commentmicrosoft/appcenter-sdk-dotnet

Apple rejection for non-public API usage (ITMS-90338) related to MSAnalytics

Hi there. We've just released 3.4.3 with a hotfix for this issue. In this patch, only MSAnalytics is renamed to MSACAnalytics to avoid conflict with Apple's private framework. It should solve the problem and unblock you. Changing the prefix for all classes requires more time and introduces breaking changes for Objective-C/Swift so it will be a bump of major version for iOS SDK.

Please check it out and let us know if you have any issues with the new version. Thanks.

warpedgeoid

comment created time in 20 hours

issue commentmicrosoft/appcenter-sdk-dotnet

AppCenter SDK Analytics.TrackEvent() throws errors on Xamarin.iOS 14

Hi there. We've just released 3.4.3 with a hotfix for this issue. In this patch, only MSAnalytics is renamed to MSACAnalytics to avoid conflict with Apple's private framework. It should solve the problem and unblock you. Changing the prefix for all classes requires more time and introduces breaking changes for Objective-C/Swift so it will be a bump of major version for iOS SDK.

Please check it out and let us know if you have any issues with the new version. Thanks.

KennyDM

comment created time in 20 hours

push eventmicrosoft/appcenter-sdk-dotnet

Ivan Matkov

commit sha 23ecc1a8b16178d1127e672053a62a9975e32b52

Fix raw binding usage in Demo application

view details

Ivan Matkov

commit sha cfa2196445104d20135ed62fc1cc1b168a89aae0

Merge pull request #1448 from microsoft/fix/demo-raw-bindings-usage Fix raw binding usage in Demo application

view details

push time in a day

delete branch microsoft/appcenter-sdk-dotnet

delete branch : fix/demo-raw-bindings-usage

delete time in a day

PR merged microsoft/appcenter-sdk-dotnet

Fix raw binding usage in Demo application
  • [x] Are the files formatted correctly?
  • [x] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

Fix raw binding usage in Demo application. It's not documented API, no need to mention it in changelog.

Related PRs or issues

AB#83050

+4 -4

0 comment

1 changed file

MatkovIvan

pr closed time in a day

PR opened microsoft/appcenter-sdk-dotnet

Fix raw binding usage in Demo application
  • [x] Are the files formatted correctly?
  • [x] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

Fix raw binding usage in Demo application. It's not documented API, no need to mention it in changelog.

Related PRs or issues

AB#83050

+4 -4

0 comment

1 changed file

pr created time in a day

create barnchmicrosoft/appcenter-sdk-dotnet

branch : fix/demo-raw-bindings-usage

created branch time in a day

delete branch microsoft/appcenter-sdk-dotnet

delete branch : hotfix/rename-analytics

delete time in a day

push eventmicrosoft/appcenter-sdk-dotnet

App Center

commit sha 9dc0ed5f012423a5ea7a3a602d537fdcb79c6dc2

Update SDK version

view details

v-yali26

commit sha 739e6674727308cdc788624e302dc3e11edb2e6b

update changelog

view details

LuyaLiu

commit sha d9cea8f555d71a8e69dbd5dcfe2ead1a94d39cea

Merge pull request #1444 from microsoft/release/start-next-version Start next version

view details

Anastasia Kubova

commit sha c13321f464cbe172f33a8a10cac94e2cf48f9c78

Rename analytics module

view details

Ivan Matkov

commit sha b0e53bfdb6287ba0212bf57fc3c8d10dc3d888ce

Start new 3.4.3 release

view details

App Center

commit sha 50c981c266371d44a424e6bcf50bf2fc55f372db

Update Demo apps

view details

Ivan Matkov

commit sha 6b09d513fd59c0b9841c10b14bad3aea94dc1cd6

Use patched apple version

view details

Ivan Matkov

commit sha ad207ff7c53932306c177e1441ae9bfb69318c2d

Update changelog

view details

Ivan Matkov

commit sha 05efe139d554c95338b28a2836512c8bb6f2228a

Merge pull request #1447 from microsoft/release/3.4.3 Start new 3.4.3 version

view details

push time in a day

delete branch microsoft/appcenter-sdk-dotnet

delete branch : release/3.4.3

delete time in a day

PR merged microsoft/appcenter-sdk-dotnet

Start new 3.4.3 version

Version 3.4.3

App Center Analytics

iOS

  • [Fix] Fix naming conflict with iOS 14 private Apple framework.

+187 -177

0 comment

85 changed files

xabldint

pr closed time in a day

PullRequestReviewEvent

push eventmicrosoft/appcenter-sdk-dotnet

Ivan Matkov

commit sha 6b09d513fd59c0b9841c10b14bad3aea94dc1cd6

Use patched apple version

view details

Ivan Matkov

commit sha ad207ff7c53932306c177e1441ae9bfb69318c2d

Update changelog

view details

push time in a day

push eventmicrosoft/appcenter-sdk-dotnet

Ivan Matkov

commit sha b0e53bfdb6287ba0212bf57fc3c8d10dc3d888ce

Start new 3.4.3 release

view details

App Center

commit sha 50c981c266371d44a424e6bcf50bf2fc55f372db

Update Demo apps

view details

Ivan Matkov

commit sha 64ce3e494e20ae97bb010ccc86e3ec77344af816

Use patched apple version

view details

Ivan Matkov

commit sha 04d94745d3f33edc26eb4e587893e09f3e8fb2b3

Update changelog

view details

push time in a day

create barnchmicrosoft/appcenter-sdk-dotnet

branch : hotfix/rename-analytics

created branch time in a day

issue commentmicrosoft/appcenter-sdk-dotnet

AppCenter SDK Analytics.TrackEvent() throws errors on Xamarin.iOS 14

@BillFulton yep, in release mode it works. It's because of the linker setting. Setting it to "Link SDK assemblies only" fixes the crash in Debug mode too.

However, I doubt that it helps with #1466. So, I wouldn't call it as workaround.

KennyDM

comment created time in 4 days

issue commentmicrosoft/appcenter-sdk-dotnet

Unit Testing a .NET Standard 2.1 lib now requires creating mocks for the SDK

Let me share a bit more details here: Our nuget package contains multiple binaries for various target frameworks.

  • .NET Core 3.0 one was added to be used with Windows Desktop only (it's added in 2.3.0).
  • For shared Xamarin project we have .NETStandard 1.0 binary in the package.

In your case, NuGet picks up the binary that has Windows references, that's why it crashes.

So, changing target framework for the project or mocking this is the right way to go.

nmilcoff

comment created time in 5 days

push eventmicrosoft/appcenter-sdk-react-native

charmian01

commit sha 3832ef2bf5dd9c70e8a18fe21d423eeb6e078755

Merge pull request #858 from microsoft/develop Merge develop to master for release 3.1.2

view details

Charmian Cheng

commit sha f6404ef956946d23e1ca1904a02b68a5a46a6e9b

Update demo app for release

view details

Ivan Matkov

commit sha d040c0fa547a03b71e896b31252fb9d960821f13

Merge pull request #860 from microsoft/release/3.1.2 Setup DemoApp for release 3.1.2

view details

Ivan Matkov

commit sha c2128ec859dd4da66f85c27fd3f3dc48dd1e7fde

Merge pull request #861 from microsoft/master Merge master to develop

view details

push time in 5 days

PR merged microsoft/appcenter-sdk-react-native

Reviewers
Merge master to develop

Description

Merge master to develop for release 3.1.2.

+21 -21

0 comment

3 changed files

charmian01

pr closed time in 5 days

PullRequestReviewEvent

issue commentmicrosoft/appcenter-sdk-dotnet

Apple rejection for non-public API usage (ITMS-90338) related to MSAnalytics

Hi @warpedgeoid,

Thanks for getting in touch! That's weird, we didn't receive this kind of reports before and didn't change anything in this part recently. However, there was a report about false-positive detection on Apple side appeals helped in that case.

Anyway, could you please share

the private Apple APIs listed above

? For now, it's not clear what API triggers it (our SDK doesn't use any private ones).

warpedgeoid

comment created time in 5 days

issue commentmicrosoft/appcenter-sdk-apple

Cocoapod issue with Azure Pipelines builds

@lernamanto this is probably related to https://github.com/CocoaPods/CocoaPods/issues/10078

anabayan

comment created time in 6 days

issue commentmicrosoft/plcrashreporter

Bulid failure on Xcode 12 GM

Hi @taehoon-jung, Please check out my fix from #132, this should fix this problem

taehoon-jung

comment created time in 6 days

push eventmicrosoft/plcrashreporter

Ivan Matkov

commit sha 1a56a889ede0a0f8d82c3ada8d03af884832880b

Temporary exclude building for arm simulators

view details

push time in 6 days

PR opened microsoft/plcrashreporter

Temporary exclude building for arm simulators
  • [ ] Has CHANGELOG.md been updated?
  • [x] Are tests passing locally?
  • [x] Are the files formatted correctly?
  • [ ] Did you add unit tests?
  • [ ] Did you test your change with the sample apps?

Description

Temporary exclude building for arm simulators to avoid conflicts in universal frameworks

Related PRs or issues

#131 AB#82994

+8 -0

0 comment

1 changed file

pr created time in 6 days

create barnchmicrosoft/plcrashreporter

branch : fix/exclude-arm-simulators

created branch time in 6 days

Pull request review commentmicrosoft/appcenter-sdk-apple

[#2162] Fix NSInvalidArgumentException in MSAppCenterUserDefaults

 #import "MSAppCenterUserDefaults.h" #import "MSAppCenterUserDefaultsPrivate.h" #import "MSLoggerInternal.h"-#import "MSTestFrameworks.h" #import "MSUtility.h" #import "MSWrapperLogger.h"+#import <XCTest/XCTest.h>

Why do we need change imports here? This one was already imported in MSTestFrameworks.h

DmitriyKirakosyan

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentmicrosoft/appcenter-sdk-apple

[#2162] Fix NSInvalidArgumentException in MSAppCenterUserDefaults

  ## Version 3.3.5 (Under development) +### App Center++* **[Fix]** Fix `NSInvalidArgumentException` when using `__NSCFBoolean` as a key in `NSUserDefaults`.
* **[Fix]** Fix `NSInvalidArgumentException` when using non-string object as a key in `NSUserDefaults`.
DmitriyKirakosyan

comment created time in 6 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventmicrosoft/appcenter-sdk-unity

YuyaoHu

commit sha 9bcd352eeff68b3b43778645445663b7afd88547

update version to 3.3.1

view details

Ivan Matkov

commit sha 501f94769fd16fac3f73b84c0766ec085a6381f6

Merge pull request #470 from microsoft/release/3.3.1 Release 3.3.1

view details

push time in 7 days

delete branch microsoft/appcenter-sdk-unity

delete branch : release/3.3.1

delete time in 7 days

PR merged microsoft/appcenter-sdk-unity

Reviewers
Release 3.3.1

<!-- Thank you for submitting a pull request! Please add some info (if applicable) to give us some context on the PR.

We will review the PR as soon as possible, leave feedback, add a tag, etc. and let you know what's going on.

Cheers!

The App Center team -->

Things to consider before you submit the PR:

  • [x] Has CHANGELOG.md been updated?
  • [x] Are the files formatted correctly?
  • [ ] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

update version to 3.3.1

+69 -17

0 comment

14 changed files

YuyaoHu

pr closed time in 7 days

PullRequestReviewEvent

issue commentmicrosoft/appcenter-sdk-apple

Some exceptions thrown on main thread are swallowed by AppKit

Hm, interesting 🤔

@guidedways could you please share some reproduction sample of this crash type? Maybe it's a different case with similar symptoms or so.

depth42

comment created time in 7 days

issue commentmicrosoft/appcenter-sdk-apple

Still not seeing exceptions thrown on main thread.

The initial issue here is that some exceptions are swallowed by AppKit and cannot be caught without overriding private methods.

Marking it as known issue instead of feature request because there is no known way to deal with it without accessing to private API and we're not going to add private API usage to release to avoid submitting to store problems.

depth42

comment created time in 8 days

push eventmicrosoft/appcenter-sdk-react-native

Charmian Cheng

commit sha f6404ef956946d23e1ca1904a02b68a5a46a6e9b

Update demo app for release

view details

Ivan Matkov

commit sha d040c0fa547a03b71e896b31252fb9d960821f13

Merge pull request #860 from microsoft/release/3.1.2 Setup DemoApp for release 3.1.2

view details

push time in 8 days

delete branch microsoft/appcenter-sdk-react-native

delete branch : release/3.1.2

delete time in 8 days

PR merged microsoft/appcenter-sdk-react-native

Reviewers
Setup DemoApp for release 3.1.2

Description

Setup DemoApp for testing for React Native 3.1.2 release.

+21 -21

0 comment

3 changed files

charmian01

pr closed time in 8 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventmicrosoft/appcenter-sdk-react-native

Charmian Cheng

commit sha 2ddfa0547b5f5419bd8e68b26a04b9500f3bbff2

Bump SDK versions

view details

Charmian Cheng

commit sha 34d33461d0a4676a7b471c5076ae23f8424b67d4

Update SDK in TestApp

view details

Charmian Cheng

commit sha a29ea7d65356dcf14a8c8a3a9374748cee43fff8

Update CHANGELOG.md

view details

Ivan Matkov

commit sha 00ccb6019ccfc297abfb36f66de3828464bb7bd8

Merge pull request #857 from microsoft/release/3.1.2 React Native Release 3.1.2

view details

push time in 11 days

delete branch microsoft/appcenter-sdk-react-native

delete branch : release/3.1.2

delete time in 11 days

PR merged microsoft/appcenter-sdk-react-native

Reviewers
React Native Release 3.1.2

Things to consider before you submit the PR:

  • [X] Has CHANGELOG.md been updated?
  • [X] Are tests passing locally?
  • [X] Are the files formatted correctly?
  • [ ] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

Bumped the versions Updated TestApp to use latest SDKs Updated the CHANGELOG.md

+81 -71

0 comment

22 changed files

charmian01

pr closed time in 11 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

issue commentmicrosoft/plcrashreporter

Issues when trying to use in iOS with Cocoapods in a dynamic framework

@nachoBonafonte sorry to say, but we have no plans to release dynamic framework for iOS yet.

Also, the error message makes sense: if the library is already linked to the dynamic framework binary, it should not be a transitive dependency. Possible workaround here is to include PLCrashReporter via not CocoaPods.

Related thread: https://github.com/microsoft/appcenter-sdk-apple/issues/1227

nachoBonafonte

comment created time in 11 days

push eventmicrosoft/appcenter-sdk-dotnet

v-yali26

commit sha 952488ac04552101578cff389f0558546deff4d6

update changelog

view details

Ivan Matkov

commit sha 523853386553f9421980d39e05a596a7dfe7aa1f

Merge pull request #1442 from microsoft/release/start_3.4.2 Update changelog for 3.4.2 release

view details

push time in 11 days

delete branch microsoft/appcenter-sdk-dotnet

delete branch : release/start_3.4.2

delete time in 11 days

PR merged microsoft/appcenter-sdk-dotnet

Reviewers
Update changelog for 3.4.2 release

Things to consider before you submit the PR:

  • [x] Has CHANGELOG.md been updated?
  • [ ] Are tests passing locally?
  • [x] Are the files formatted correctly?
  • [ ] Did you add unit tests if this modifies the Windows code?
  • [ ] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

A few sentences describing the overall goals of the pull request.

+8 -2

0 comment

1 changed file

LuyaLiu

pr closed time in 11 days

PullRequestReviewEvent

Pull request review commentmicrosoft/appcenter-sdk-react-native

React Native Release 3.1.2

 # App Center SDK for React Native Change Log +## Version 3.1.2++### App Center Crashes++#### Android++* **[Fix]** Fix sending attachments with a `null` text value.

Does it really affects React-Native wrapper?

charmian01

comment created time in 11 days

PullRequestReviewEvent

delete branch microsoft/appcenter-sdk-dotnet

delete branch : patch-1

delete time in 12 days

push eventmicrosoft/appcenter-sdk-dotnet

Justin Hutchings

commit sha d3c86c7170fe00b0fc42b97f262604b880cc49b4

Optimize CodeQL analysis Currently, we're running on every push. This will reduce the actions minute usage, and allow it to work on PRs from forks.

view details

Ivan Matkov

commit sha aa1a2d2a8d24662496cc2aeaa7af6931c7970617

Merge pull request #1416 from jhutchings1/patch-1 Optimize CodeQL analysis

view details

push time in 12 days

PR merged microsoft/appcenter-sdk-dotnet

Optimize CodeQL analysis

Currently, this workflow is running on every push. This will reduce the actions minute usage, and allow it to work on PRs from forks.

<!-- Thank you for submitting a pull request! Please add some info (if applicable) to give us some context on the PR.

We will review the PR as soon as possible, leave feedback, add a tag, etc. and let you know what's going on.

Cheers!

The App Center team -->

Things to consider before you submit the PR:

  • [ ] Has CHANGELOG.md been updated?
  • [ ] Are tests passing locally?
  • [ ] Are the files formatted correctly?
  • [ ] Did you add unit tests if this modifies the Windows code?
  • [ ] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

The GitHub team that runs code scanning has updated our guidance around the default workflow to reduce unneeded compute minutes. This PR reflects the latest guidance.

Related PRs or issues

List related PRs and other issues.

Misc

Add what's missing, notes on what you tested, additional thoughts or questions.

+22 -0

0 comment

1 changed file

jhutchings1

pr closed time in 12 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestEvent

PR closed microsoft/appcenter-sdk-dotnet

Optimize CodeQL analysis

Currently, this workflow is running on every push. This will reduce the actions minute usage, and allow it to work on PRs from forks.

<!-- Thank you for submitting a pull request! Please add some info (if applicable) to give us some context on the PR.

We will review the PR as soon as possible, leave feedback, add a tag, etc. and let you know what's going on.

Cheers!

The App Center team -->

Things to consider before you submit the PR:

  • [ ] Has CHANGELOG.md been updated?
  • [ ] Are tests passing locally?
  • [ ] Are the files formatted correctly?
  • [ ] Did you add unit tests if this modifies the Windows code?
  • [ ] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

The GitHub team that runs code scanning has updated our guidance around the default workflow to reduce unneeded compute minutes. This PR reflects the latest guidance.

Related PRs or issues

List related PRs and other issues.

Misc

Add what's missing, notes on what you tested, additional thoughts or questions.

+22 -0

0 comment

1 changed file

jhutchings1

pr closed time in 12 days

issue commentmicrosoft/appcenter-sdk-android

Support Flutter

@hpoul yep. I guess you can refer this swagger spec copy as ref - ingestion.yaml. Also, our SDK are open source so it can be used as ref implementation.

Regarding initial topic, I know that there is community package for flutter - https://pub.dev/packages/appcenter, so you can try this one.

ElektrojungeAtWork

comment created time in 12 days

issue commentmicrosoft/plcrashreporter

Bulid failure on Xcode 12 GM

@taehoon-jung are you trying to build it on ARM mac?

taehoon-jung

comment created time in 12 days

issue commentmicrosoft/plcrashreporter

Bulid failure on Xcode 12 GM

Hi @taehoon-jung,

Thanks for getting in touch! We verified it on the beta recently and it worked 🤔 The problem here is clearly that simulator now has arm64 arch, so the old "fat" universal libs can't be built because of duplicates. We'll look at it, thanks.

taehoon-jung

comment created time in 12 days

issue commentmicrosoft/plcrashreporter

Xcode 12 SPM `IPHONEOS_DEPLOYMENT_TARGET` warning

Hi there.

It's kind of expected because PLCrashReporter still supports iOS 8 devices. Since it's just a warning, you can ignore it for now. I'm going to keep this issue open as the request of dropping iOS 8 support.

diogot

comment created time in 13 days

push eventmicrosoft/appcenter-sdk-android

Chengcheng Zhang

commit sha 0872e75c14b4b0ca6d2262ba04b80d1718a65caf

Merge pull request #1460 from microsoft/develop Version 3.3.1

view details

Chengcheng Zhang (GITHUB INC)

commit sha 49fdc41f19aa524cbc46c758ad97037df29190f5

Use new SDK V3.3.1 in demo app.

view details

Chengcheng Zhang

commit sha a395a80fbcd8e9f28efff774aa7257ec207d474f

Merge pull request #1461 from microsoft/release/demo_v3.3.1 Use new SDK V3.3.1 in demo app

view details

Chengcheng Zhang (GITHUB INC)

commit sha 81114b761041d93b4609f6d468527a30240a43ad

Start new version 3.3.2

view details

Ivan Matkov

commit sha 9e111e84fdf491a16befe2e758a94395a524123b

Merge pull request #1462 from microsoft/start/3.3.2 Start/3.3.2

view details

push time in 14 days

delete branch microsoft/appcenter-sdk-android

delete branch : start/3.3.2

delete time in 14 days

PR merged microsoft/appcenter-sdk-android

Reviewers
Start/3.3.2
  • [x] Has CHANGELOG.md been updated?
+7 -3

0 comment

3 changed files

zhangcc01

pr closed time in 14 days

PullRequestReviewEvent
PullRequestReviewEvent

issue closedmicrosoft/appcenter-sdk-apple

MASR rejection due to usage of private api getsectdatafromheader_64

Description

Got rejected by MASR because AppCenter for macOS uses private api: getsectdatafromheader_64 in MSErrorLogFormatter.m

Repro Steps

Details

  1. Which SDK version are you using?
    • e.g. 3.3.1
  2. Which OS version did you experience the issue on?
    • e.g. macOS 10.15.6
  3. What language are you using?
    • [x] Objective C
    • [ ] Swift
  4. What third party libraries are you using? NONE

closed time in 15 days

berbie

issue commentmicrosoft/appcenter-sdk-apple

MASR rejection due to usage of private api getsectdatafromheader_64

It looks like this issue was temporary and has been resolved from Apple side.

Closing this issue, but please leave a comment here if the problem still exists.

berbie

comment created time in 15 days

Pull request review commentJamminroot/todo-2-gh-issue

Add excluded\included lists support; Add file pattern check; Optimize checks; Refactor and cleanup; Fix token usage

  namespace Todo2GhIssue {-	[DataContract]-	public class GhEvent-	{-		[DataMember(Name = "forced")]-		public bool Forced;--		[DataMember(Name = "pusher")]-		public Pusher Pusher;--		[DataMember(Name = "repository")]-		public Repository Repository;--		[DataMember(Name = "after")]-		public string After;--		[DataMember(Name = "before")]-		public string Before;-	}--	[DataContract]-	public class Pusher-	{-		[DataMember(Name = "email")]-		public string Email;--		[DataMember(Name = "name")]-		public string Name;-	}--	[DataContract]-	public class Repository-	{-		[DataMember(Name = "full_name")]-		public string FullName;-	}--	[DataContract]-	internal class Issue-	{-		[DataMember(Name = "number")]-		public long Number;--		[DataMember(Name = "title")]-		public string Title;-	}--	internal class TodoItem-	{-		public readonly string Title;-		public readonly TodoDiffType DiffType;-		private readonly IList<string> _labels;-		private readonly int _line;-		private readonly string _body;-		private readonly string _file;--		public TodoItem(string title, int line, string file, int startLines, int endLine, TodoDiffType type, string repo, string sha, IList<string> labels)-		{-			Title = title;-			_line = line;-			_file = file;-			DiffType = type;-			_labels = labels;-			_body = $"**{Title}**\n\nLine: {_line}\nhttps://github.com/{repo}/blob/{sha}{file}#L{startLines}-L{endLine}";-		}--		public object RequestBody(string pusher = "")-		{-			return new {title = Title, body = _body + "\n\n" + pusher, labels = _labels.ToArray()};-		}--		public override string ToString()-		{-			return $"{Title} @ {_file}:{_line} (Labels: {string.Join(", ", _labels)})";-		}-	}--	internal enum TodoDiffType-	{-		None,-		Addition,-		Deletion-	}--	internal static class Program-	{-		private const string ApiBase = @"https://api.github.com/repos/";-		private const string DiffHeaderPattern = @"(?<=diff\s--git\sa.*b.*).+";-		private const string BlockStartPattern = @"((?<=^@@\s).+(?=\s@@))";-		private const string LineNumPattern = @"(?<=\+).+";--		private static IEnumerable<Issue> GetActiveItems(string repo, string token)-		{-			var client = new RestClient($"{ApiBase}{repo}/issues?access_token={token}") {Timeout = -1};-			var request = new RestRequest(Method.GET);-			request.AddHeader("Accept", "application/json");-			var ser = new DataContractJsonSerializer(typeof(List<Issue>));-			var response = client.Execute(request);-			if (response.StatusCode != HttpStatusCode.OK)-			{-				Console.WriteLine($"Failed to get active items.\n{response.Content}\n{response.StatusCode}\n{response.StatusDescription}");-				Environment.Exit(1);-			}-			using var sr = new MemoryStream(Encoding.UTF8.GetBytes(response.Content));-			var result = (List<Issue>) ser.ReadObject(sr);-			return result;-		}--		private static IEnumerable<string> GetDiff(string repo, string token, string oldSha, string newSha)-		{-			var client = new RestClient($"{ApiBase}{repo}/compare/{oldSha}...{newSha}?access_token={token}") {Timeout = -1};-			var request = new RestRequest(Method.GET);-			request.AddHeader("Accept", "application/vnd.github.v3.diff");-			var response = client.Execute(request);-			if (response.StatusCode != HttpStatusCode.OK)-			{-				Console.WriteLine($"Failed to get diff: {response.Content} - {response.StatusDescription} ({response.StatusCode})");-				Environment.Exit(1);-			}-			return response.Content.Split('\n');-		}--		private static IEnumerable<string> GetLabels(string line, string pattern)-		{-			var labels = new List<string>();-			var labelsMatches = Regex.Matches(line, pattern);-			labels.AddRange(labelsMatches.Select(cap => cap.Value));-			return labels;-		}--		private static IList<TodoItem> GetTodoItems(IEnumerable<string> diff, string repo, string sha, int skipLinesLongerThan, string inlineLabelPattern,-			string inlineLabelReplacePattern, string issueLabel, int linesBefore, int linesAfter, string todoPattern = @"\/\/ TODO", char[] trimSeparators = null)-		{-			var parseLabels = !string.IsNullOrWhiteSpace(inlineLabelPattern);-			trimSeparators ??= new[] {' ', ':', ' ', '"'};-			var todos = new List<TodoItem>();-			var lineNumber = 0;-			var currFile = "";-			foreach (var line in diff)-			{-				if (skipLinesLongerThan > 0 && line.Length > skipLinesLongerThan)-				{-					if (!line.StartsWith('-')) lineNumber++;-					continue;-				}-				var headerMatch = Regex.Match(line, DiffHeaderPattern, RegexOptions.IgnoreCase);-				if (headerMatch.Success) { currFile = headerMatch.Value; }-				else-				{-					var blockStartMatch = Regex.Match(line, BlockStartPattern, RegexOptions.IgnoreCase);-					if (blockStartMatch.Success)-					{-						var lineNumsMatch = Regex.Match(blockStartMatch.Value, LineNumPattern);-						if (lineNumsMatch.Success) { lineNumber = int.Parse(lineNumsMatch.Groups[0].Value.Split(',')[0]); }-					}-					else-					{-						var todoMatch = Regex.Match(line, todoPattern);-						if (todoMatch.Success)-						{-							var todoType = LineDiffType(line);-							if (todoType == TodoDiffType.None) continue;-							var labels = new List<string> {issueLabel};-							var title = todoMatch.Value.Trim(trimSeparators);-							if (parseLabels)-							{-								var inlineLabels = GetLabels(line, inlineLabelPattern);-								title = Regex.Replace(title, inlineLabelReplacePattern, "");-								labels.AddRange(inlineLabels);-							}-							todos.Add(new TodoItem(title.Trim(), lineNumber, currFile, Math.Max(lineNumber - linesBefore, 0), lineNumber + linesAfter, todoType, repo,-								sha, labels));-						}-						if (!line.StartsWith('-')) lineNumber++;-					}-				}-			}-			return todos;-		}--		private static void HandleTodos(string repo, string pusher, string token, string newSha, int timeout, IList<TodoItem> todos)-		{-			var activeIssues = GetActiveItems(repo, token);-			var deletions = todos.Where(t => t.DiffType == TodoDiffType.Deletion).ToList();-			var additions = todos.Where(t => t.DiffType == TodoDiffType.Addition).ToList();-			foreach (var number in activeIssues.Where(i => deletions.Select(d => d.Title).Contains(i.Title)).Select(i => i.Number))-			{-				var client = new RestClient($"{ApiBase}{repo}/issues/{number}") {Timeout = -1};-				var request = new RestRequest(Method.PATCH);-				request.AddHeader("Authorization", $"token {token}");-				request.AddHeader("Accept", "application/json");-				request.AddJsonBody(new {state = "closed"});-				var response = client.Execute(request);-				if (response.StatusCode != HttpStatusCode.OK)-				{-					Console.WriteLine($"Failed to close GH issue #{number}.\n{response.Content}\n{response.StatusCode}\n{response.StatusDescription}");-					Environment.Exit(1);-				}-				request = new RestRequest(Method.POST);-				request.AddHeader("Accept", "application/json");-				request.AddJsonBody(new {body = $"Closed automatically with {newSha}"});-				client = new RestClient($"{ApiBase}{repo}/issues/{number}/comments?access_token={token}") {Timeout = -1};-				response = client.Execute(request);-				if (response.StatusCode != HttpStatusCode.Created)-				{-					Console.WriteLine($"Failed to post GH comment for issue #{number}.\n{response.Content}\n{response.StatusCode}\n{response.StatusDescription}");-					Environment.Exit(1);-				}-				else-				{-					Console.WriteLine($"Closed issue #{number}");-				}-				Thread.Sleep(timeout);-			}-			foreach (var todoItem in additions)-			{-				Thread.Sleep(timeout);-				var client = new RestClient($"{ApiBase}{repo}/issues?access_token={token}") {Timeout = -1};-				var request = new RestRequest(Method.POST);-				request.AddHeader("Accept", "application/json");-				request.AddJsonBody(todoItem.RequestBody(pusher));-				var response = client.Execute(request);-				if (response.StatusCode != HttpStatusCode.Created)-				{-					Console.WriteLine(-						$"Failed to create GH issue for {todoItem}.\n{response.Content}\n{response.StatusCode}\n{response.StatusDescription}\nRequest:{request.Body.Value}");-					Environment.Exit(1);-				}-				else { Console.WriteLine($"Created new issue #{todoItem.Title}"); }-			}-		}--		private static TodoDiffType LineDiffType(string line)-		{-			if (string.IsNullOrWhiteSpace(line)) return TodoDiffType.None;-			return line[0] switch-			{-				'+' => TodoDiffType.Addition,-				'-' => TodoDiffType.Deletion,-				_ => TodoDiffType.None-			};-		}--		private static void Main()-		{-			Console.WriteLine("Parsing parameters.");-			var ghEvEnvironmentVariable = Environment.GetEnvironmentVariable("GITHUB_EVENT_PATH");-			var repo = "";-			var newSha = "";-			var oldSha = "";-			var pusher = "";-			if (!string.IsNullOrWhiteSpace(ghEvEnvironmentVariable))-			{-				var eventData = File.ReadAllText(ghEvEnvironmentVariable);-				var ser = new DataContractJsonSerializer(typeof(GhEvent));-				using var sr = new MemoryStream(Encoding.UTF8.GetBytes(eventData));-				var githubEvent = (GhEvent) ser.ReadObject(sr);-				oldSha = githubEvent.Before;-				newSha = githubEvent.After;-				repo = githubEvent.Repository.FullName;-				pusher = $"{(githubEvent.Forced ? "Force-pushed" : "Pushed")} by @{githubEvent.Pusher.Name} <{githubEvent.Pusher.Email}>";-			}-			var repoOverride = Environment.GetEnvironmentVariable("INPUT_REPOSITORY");-			var newShaOverride = Environment.GetEnvironmentVariable("INPUT_SHA");-			var oldShaOverride = Environment.GetEnvironmentVariable("INPUT_BASE_SHA");-			if (!string.IsNullOrWhiteSpace(repoOverride)) repo = repoOverride;-			if (!string.IsNullOrWhiteSpace(newShaOverride)) newSha = newShaOverride;-			if (!string.IsNullOrWhiteSpace(oldShaOverride)) oldSha = oldShaOverride;-			var token = Environment.GetEnvironmentVariable("INPUT_TOKEN");-			var todoPattern = Environment.GetEnvironmentVariable("INPUT_TODO_PATTERN");-			var inlineLabelPattern = Environment.GetEnvironmentVariable("INPUT_LABELS_PATTERN");-			var inlineLabelReplacePattern = Environment.GetEnvironmentVariable("INPUT_LABELS_REPLACE_PATTERN");-			var ghIssueLabel = Environment.GetEnvironmentVariable("INPUT_GH_LABEL");-			var symbolsToTrim = Environment.GetEnvironmentVariable("INPUT_TRIM");-			if (!bool.TryParse(Environment.GetEnvironmentVariable("INPUT_NOPUBLISH"), out var nopublish)) { nopublish = false; }-			else { Console.WriteLine("No publishing result mode."); }-			if (!int.TryParse(Environment.GetEnvironmentVariable("INPUT_TIMEOUT"), out var timeout)) { timeout = 1000; }-			timeout = Math.Max(0, timeout);-			if (!int.TryParse(Environment.GetEnvironmentVariable("INPUT_IGNORED_LINES_LENGTH"), out var skipLinesLongerThan)) { skipLinesLongerThan = 0; }-			skipLinesLongerThan = Math.Max(0, skipLinesLongerThan);-			if (!int.TryParse(Environment.GetEnvironmentVariable("INPUT_LINES_BEFORE"), out var linesBefore)) { linesBefore = 3; }-			linesBefore = Math.Clamp(linesBefore, 0, 15);-			if (!int.TryParse(Environment.GetEnvironmentVariable("INPUT_LINES_AFTER"), out var linesAfter)) { linesAfter = 7; }-			linesAfter = Math.Clamp(linesAfter, 0, 15);-			Console.WriteLine("Repository:\t{0}", repo);-			Console.WriteLine("Old SHA:\t{0}", oldSha);-			Console.WriteLine("New SHA:\t{0}", newSha);-			Console.WriteLine("Token:\t{0}", token?[0] + string.Join("", Enumerable.Repeat('*', token.Length - 2)) + token?[^1]);-			Console.WriteLine("TODO regular expression:\t{0}", todoPattern);-			Console.WriteLine("Inline label regular expression:\t{0}", inlineLabelPattern);-			Console.WriteLine("Inline label replace regular expression:\t{0}", inlineLabelReplacePattern);-			Console.WriteLine("GH Label:\t{0}", ghIssueLabel);-			Console.WriteLine("Trim:\t{0}", symbolsToTrim);-			Console.WriteLine("Timeout:\t{0}", timeout);-			Console.WriteLine("Lines of code before todo to include to snippet:\t{0}", linesBefore);-			Console.WriteLine("Lines of code after todo to include to snippet:\t{0}", linesAfter);-			Console.WriteLine("Maximum length of line to be processed:\t{0}", skipLinesLongerThan);-			if (string.IsNullOrWhiteSpace(repo) || string.IsNullOrWhiteSpace(todoPattern) || string.IsNullOrWhiteSpace(oldSha) || string.IsNullOrWhiteSpace(newSha) ||-			    string.IsNullOrWhiteSpace(token))-			{-				Console.WriteLine("Failed to parse required parameters (repository, SHAs of commits, token).");-				Console.WriteLine("Aborting.");-				Environment.Exit(1);-			}-			Console.WriteLine("Getting diff.");-			var diff = GetDiff(repo, token, oldSha, newSha);-			var todos = GetTodoItems(diff, repo, newSha, skipLinesLongerThan, inlineLabelPattern, inlineLabelReplacePattern, ghIssueLabel, linesBefore, linesAfter,-				todoPattern, symbolsToTrim?.ToCharArray());-			Console.WriteLine("Parsed new TODOs:");-			foreach (var todoItem in todos.Where(t => t.DiffType == TodoDiffType.Addition)) { Console.WriteLine($"+\t{todoItem}"); }-			Console.WriteLine("Parsed removed TODOs:");-			foreach (var todoItem in todos.Where(t => t.DiffType == TodoDiffType.Deletion)) { Console.WriteLine($"-\t{todoItem}"); }-			if (!nopublish) { HandleTodos(repo, pusher, token, newSha, timeout, todos); }-			Console.WriteLine("Finished updating issues.");-		}-	}+    [DataContract]+    public class GhEvent+    {+        [DataMember(Name = "after")] public string After;++        [DataMember(Name = "before")] public string Before;++        [DataMember(Name = "forced")] public bool Forced;++        [DataMember(Name = "pusher")] public Pusher Pusher;++        [DataMember(Name = "repository")] public Repository Repository;+    }++    [DataContract]+    public class Pusher+    {+        [DataMember(Name = "email")] public string Email;++        [DataMember(Name = "name")] public string Name;+    }++    [DataContract]+    public class Repository+    {+        [DataMember(Name = "full_name")] public string FullName;+    }++    [DataContract]+    internal class Issue+    {+        [DataMember(Name = "number")] public long Number;+        [DataMember(Name = "title")] public string Title;+    }++    internal class TodoItem+    {+        private readonly string _body;+        private readonly IList<string> _labels;+        private readonly int _line;+        public readonly TodoDiffType DiffType;+        public readonly string File;+        public readonly string Title;++        public TodoItem(string title, int line, string file, int startLines, int endLine, TodoDiffType type,+            string repo, string sha, IList<string> labels)+        {+            Title = title;+            _line = line;+            File = file;+            DiffType = type;+            _labels = labels;+            _body =+                $"**{Title}**\n\nLine: {_line}\nhttps://github.com/{repo}/blob/{sha}{File}#L{startLines}-L{endLine}";+        }++        public object RequestBody(string pusher = "")+        {+            return new {title = Title, body = _body + "\n\n" + pusher, labels = _labels.ToArray()};+        }++        public override string ToString()+        {+            return $"{Title} @ {File}:{_line} (Labels: {string.Join(", ", _labels)})";+        }+    }++    internal enum TodoDiffType+    {+        None,+        Addition,+        Deletion+    }+++    internal static class Program+    {+        private const string ConsoleSeparator = "------------------------------------------";+        private const string ApiBase = @"https://api.github.com/repos/";+        private const string DiffHeaderPattern = @"(?<=diff\s--git\sa.*b.*).+";+        private const string BlockStartPattern = @"((?<=^@@\s).+(?=\s@@))";+        private const string LineNumPattern = @"(?<=\+).+";++        private static IEnumerable<Issue> GetActiveItems(Parameters parameters)+        {+            var client = new RestClient($"{ApiBase}{parameters.Repository}/issues") {Timeout = -1};+            var request = new RestRequest(Method.GET);+            request.AddHeader("Accept", "application/json");+            request.AddHeader("Authorization", $"token {parameters.GithubToken}");+            var ser = new DataContractJsonSerializer(typeof(List<Issue>));+            var response = client.Execute(request);+            if (response.StatusCode != HttpStatusCode.OK)+            {+                Console.WriteLine(+                    $"Failed to get active items.\n{response.Content}\n{response.StatusCode}\n{response.StatusDescription}");+                Environment.Exit(1);+            }++            using var sr = new MemoryStream(Encoding.UTF8.GetBytes(response.Content));+            var result = (List<Issue>) ser.ReadObject(sr);+            return result;+        }++        private static IEnumerable<string> GetDiff(Parameters parameters)+        {+            var client =+                new RestClient($"{ApiBase}{parameters.Repository}/compare/{parameters.OldSha}...{parameters.NewSha}")+                    {Timeout = -1};+            var request = new RestRequest(Method.GET);+            request.AddHeader("Authorization", $"token {parameters.GithubToken}");+            request.AddHeader("Accept", "application/vnd.github.v3.diff");+            var response = client.Execute(request);+            if (response.StatusCode != HttpStatusCode.OK)+            {+                Console.WriteLine(+                    $"Failed to get diff: {response.Content} - {response.StatusDescription} ({response.StatusCode})");+                Environment.Exit(1);+            }++            return response.Content.Split('\n');+        }++        private static IEnumerable<string> GetLabels(string line, string pattern)+        {+            var labels = new List<string>();+            var labelsMatches = Regex.Matches(line, pattern);+            labels.AddRange(labelsMatches.Select(cap => cap.Value));+            return labels;+        }++        private static IList<TodoItem> GetTodoItems(Parameters parameters, IEnumerable<string> diff)+        {+            var parseLabels = !string.IsNullOrWhiteSpace(parameters.InlineLabelRegex);+            var trimSeparators = parameters.TrimmedCharacters?.Length == 0+                ? new[] {' ', ':', ' ', '"'}+                : parameters.TrimmedCharacters;+            var todos = new List<TodoItem>();+            var lineNumber = 0;+            var currFile = "";++            var excludedPathsCount = parameters.ExcludedPaths?.Length ?? 0;+            var includedPathsCount = parameters.IncludedPaths?.Length ?? 0;++            foreach (var line in diff)+            {+                if (parameters.MaxDiffLineLength > 0 && line.Length > parameters.MaxDiffLineLength)+                {+                    if (!line.StartsWith('-')) lineNumber++;+                    continue;+                }++                var headerMatch = Regex.Match(line, DiffHeaderPattern, RegexOptions.IgnoreCase);+                if (headerMatch.Success)+                {+                    currFile = Regex.Matches(headerMatch.Value, @"(?<=)e\/.+ b(\/.*)$")[0].Groups[1].Value;+                }+                else if (!string.IsNullOrWhiteSpace(currFile))+                {+                    if (excludedPathsCount > 0+                        && includedPathsCount == 0+                        && parameters.ExcludedPaths.ToList().Any(excl => currFile.StartsWith(value:excl, StringComparison.OrdinalIgnoreCase))+                        || excludedPathsCount == 0+                        && includedPathsCount > 0+                        && !parameters.IncludedPaths.ToList().Any(incl => currFile.StartsWith(incl, StringComparison.OrdinalIgnoreCase))+                        || excludedPathsCount > 0+                        && includedPathsCount > 0+                        && parameters.ExcludedPaths.ToList().Any(excl => currFile.StartsWith(excl, StringComparison.OrdinalIgnoreCase))+                        && !parameters.IncludedPaths.ToList()+                            .Any(incl => currFile.StartsWith(incl, StringComparison.OrdinalIgnoreCase)))

Oh my...

I'd suggest to split it and cache results from linq commands

Jamminroot

comment created time in 15 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventmicrosoft/appcenter-sdk-unity

Anastasia Kubova

commit sha c6dbcd8e775b65c87642b7acf3ca242d0d1fe61d

Add custom schemes to Info.plist

view details

Anastasia Kubova

commit sha b21258aa9d34d992e29a701fc8a99c0a2a979b23

Add a comments

view details

Anastasia Kubova

commit sha 40f011ede12023ca222ff48a3df17c199d1c2800

Update changelog

view details

Vladimir Vechkanov

commit sha bc3f5930b35f120a6eac5054e161b7f6fe498bcf

Move custom schemes from unity into array of "urlSchemes" in Info.plist

view details

Anastasia Kubova

commit sha 4caa52d16801481188dc1d5d22b8efa5196d7f77

Formatting

view details

Anastasia Kubova

commit sha d55914bae6d229212e24e7f6f1a65edf69013e02

Resolve feedbacks

view details

Anastasia Kubova

commit sha ce64d9dd5499e4c4dc84be32b25e2f26fa16f88a

Resolve feedbacks

view details

Ivan Matkov

commit sha 96bf42c1482efd9389f4656f134de4c17e621597

Merge pull request #469 from microsoft/fix/add-custom-schemes App Center post-build does not override custom URL Scheme

view details

push time in 15 days

delete branch microsoft/appcenter-sdk-unity

delete branch : fix/add-custom-schemes

delete time in 15 days

PR merged microsoft/appcenter-sdk-unity

App Center post-build does not override custom URL Scheme

<!-- Thank you for submitting a pull request! Please add some info (if applicable) to give us some context on the PR.

We will review the PR as soon as possible, leave feedback, add a tag, etc. and let you know what's going on.

Cheers!

The App Center team -->

Things to consider before you submit the PR:

  • [x] Has CHANGELOG.md been updated?
  • [x] Are the files formatted correctly?
  • [x] Did you test your change with either the sample apps that are included in the repository or with a blank app that uses your change?

Description

  1. Create a Unity project for iOS
  2. Implement the AppCenter Unity plugin and turn on Distribute feature
  3. Define new URL scheme (ex. "myscheme") in Unity project settings: Player Settings->iOS->Other settings->Configuration section->Supported URL Scheme
  4. Build an iOS project

Current behavior Info.plist contains only one entry in CFBundleURLTypes array for appcenter-xxxxx.

Expected behavior Info.plist contains two appcenter-xxxxx and myscheme entries in CFBundleURLTypes array.

Related PRs or issues

AB#82424

+32 -2

0 comment

2 changed files

AnastasiaKubova

pr closed time in 15 days

PullRequestReviewEvent
more