Merge pull request #1668 from microsoft/feature/net6

Add .NET 6 support for iOS/macOS
This commit is contained in:
Ivan Matkov 2022-07-28 16:27:43 +02:00 коммит произвёл GitHub
Родитель ef157f65d2 eb03920b12
Коммит 658230fb63
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
121 изменённых файлов: 1128 добавлений и 5406 удалений

12
.config/dotnet-tools.json Normal file
Просмотреть файл

@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"cake.tool": {
"version": "2.2.0",
"commands": [
"dotnet-cake"
]
}
}
}

Просмотреть файл

@ -19,8 +19,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Android
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.iOS", "SDK\AppCenter\Microsoft.AppCenter.iOS\Microsoft.AppCenter.iOS.csproj", "{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.iOS.Bindings", "SDK\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj", "{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Shared", "SDK\AppCenter\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.shproj", "{C6C4937C-D5F4-4E00-8B51-8D826AD83C5E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics\Microsoft.AppCenter.Analytics.csproj", "{0F13E444-717E-460A-BDE7-8AD537F0A418}"
@ -31,8 +29,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analyti
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.iOS", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.iOS\Microsoft.AppCenter.Analytics.iOS.csproj", "{EF5D0090-9E12-45B5-961C-45D787BD80A5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.iOS.Bindings", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.iOS.Bindings\Microsoft.AppCenter.Analytics.iOS.Bindings.csproj", "{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes\Microsoft.AppCenter.Crashes.csproj", "{302F0881-77AE-4CCE-ACF4-930AD5D4FB08}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Crashes.Shared", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.shproj", "{DB5A0B7D-8090-4A0C-97C7-CDF17AACAAF2}"
@ -41,8 +37,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.Android", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Android\Microsoft.AppCenter.Crashes.Android.csproj", "{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.iOS.Bindings", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.iOS.Bindings\Microsoft.AppCenter.Crashes.iOS.Bindings.csproj", "{FCEB9729-627A-4964-B853-1649CA1FA76D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.iOS", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.iOS\Microsoft.AppCenter.Crashes.iOS.csproj", "{4936A94C-BE22-4F73-8468-64FA4371FF80}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Apps", "Apps", "{274AB35C-68B4-4EFA-803B-8A7CFEC25EFC}"
@ -63,8 +57,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AppCenterDistribute", "AppC
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.Android.Bindings", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Android.Bindings\Microsoft.AppCenter.Distribute.Android.Bindings.csproj", "{11D31A79-0F09-4708-8097-3D1C5D886547}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.iOS.Bindings", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.iOS.Bindings\Microsoft.AppCenter.Distribute.iOS.Bindings.csproj", "{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.Android", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Android\Microsoft.AppCenter.Distribute.Android.csproj", "{AD38DEE9-8A74-4B04-93C3-0831B55E7254}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.iOS", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.iOS\Microsoft.AppCenter.Distribute.iOS.csproj", "{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A}"
@ -73,7 +65,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distrib
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Distribute.Shared", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.shproj", "{5AEF073D-7370-41C1-86CD-A61B4DEB9883}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Crashes.Shared.Targets", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.shproj", "{CAE55C79-1601-400D-86BF-03AB8CC5B8B9}"
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Crashes.Shared.Xamarin", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.shproj", "{CAE55C79-1601-400D-86BF-03AB8CC5B8B9}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Shared.Xamarin", "SDK\AppCenter\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.shproj", "{7076E711-FE72-4EC0-8335-045EEFC1100C}"
EndProject
@ -81,20 +73,24 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.UtilClassLibrary",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.MacOS", "SDK\AppCenter\Microsoft.AppCenter.MacOS\Microsoft.AppCenter.MacOS.csproj", "{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.MacOS.Bindings", "SDK\AppCenter\Microsoft.AppCenter.MacOS.Bindings\Microsoft.AppCenter.MacOS.Bindings.csproj", "{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.MacOS", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.MacOS\Microsoft.AppCenter.Analytics.MacOS.csproj", "{EE438174-EE11-432E-9225-5B4EA80A7917}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.MacOS.Bindings", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.MacOS.Bindings\Microsoft.AppCenter.Analytics.MacOS.Bindings.csproj", "{D00918DD-BAC4-4AD4-A866-056CBE780AB2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.MacOS", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.MacOS\Microsoft.AppCenter.Crashes.MacOS.csproj", "{0635DC94-08B3-458F-B466-3524132601EB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.MacOS.Bindings", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.MacOS.Bindings\Microsoft.AppCenter.Crashes.MacOS.Bindings.csproj", "{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.MacOS.Puppet", "Apps\Contoso.MacOS.Puppet\Contoso.MacOS.Puppet.csproj", "{83AAE9C7-04A6-447E-AE5F-07C8E0A509A8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contoso.Forms.Puppet.MacOS", "Apps\Contoso.Forms.Puppet\Contoso.Forms.Puppet.MacOS\Contoso.Forms.Puppet.MacOS.csproj", "{C5B1AC34-F9F1-4C05-AF7A-CB84C16C5481}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.AppCenter.Shared.Apple", "SDK\AppCenter\Microsoft.AppCenter.Shared.Apple\Microsoft.AppCenter.Shared.Apple.shproj", "{C9DC2286-37E4-467A-9DFB-593444265B74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.AppleUnified", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.AppleUnified\Microsoft.AppCenter.Analytics.AppleUnified.csproj", "{A81E0040-093E-4517-9AFD-C788F96D8E4B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.AppleUnified", "SDK\AppCenter\Microsoft.AppCenter.AppleUnified\Microsoft.AppCenter.AppleUnified.csproj", "{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.AppleUnified", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.AppleUnified\Microsoft.AppCenter.Crashes.AppleUnified.csproj", "{B062D990-A256-4E0A-88C7-14B1C1216283}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.AppleUnified", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.AppleUnified\Microsoft.AppCenter.Distribute.AppleUnified.csproj", "{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SDK\AppCenter\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems*{119c1730-e109-4bc9-aa89-9dca2c50bfd5}*SharedItemsImports = 4
@ -119,7 +115,7 @@ Global
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems*{302f0881-77ae-4cce-acf4-930ad5d4fb08}*SharedItemsImports = 4
SDK\AppCenter\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems*{3fe04b97-48de-4895-8612-ecbdfebd917c}*SharedItemsImports = 4
SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems*{41febc72-c12b-47e1-b6f6-51d50158c825}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems*{4936a94c-be22-4f73-8468-64fa4371ff80}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems*{4936a94c-be22-4f73-8468-64fa4371ff80}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems*{4936a94c-be22-4f73-8468-64fa4371ff80}*SharedItemsImports = 4
SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems*{5aef073d-7370-41c1-86cd-a61b4deb9883}*SharedItemsImports = 13
SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems*{60241627-33bb-45f9-a1b6-6f1cb2bf2c4a}*SharedItemsImports = 4
@ -131,7 +127,7 @@ Global
SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems*{ad38dee9-8a74-4b04-93c3-0831b55e7254}*SharedItemsImports = 4
SDK\AppCenter\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems*{b87370cd-af51-45e0-aa15-3e0abc0c30a0}*SharedItemsImports = 4
SDK\AppCenter\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems*{c6c4937c-d5f4-4e00-8b51-8d826ad83c5e}*SharedItemsImports = 13
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems*{d6db87ca-b8ec-4a38-805f-afdc7fec38eb}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems*{d6db87ca-b8ec-4a38-805f-afdc7fec38eb}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems*{d6db87ca-b8ec-4a38-805f-afdc7fec38eb}*SharedItemsImports = 4
SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems*{db5a0b7d-8090-4a0c-97c7-cdf17aacaaf2}*SharedItemsImports = 13
EndGlobalSection
@ -376,55 +372,6 @@ Global
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.Release|x86.ActiveCfg = Release|Any CPU
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.Release|x86.Build.0 = Release|Any CPU
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|ARM.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|iPhone.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|x64.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|x64.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|x86.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.AppStore|x86.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|ARM.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|ARM.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhone.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|x64.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|x64.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|x86.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|x86.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|Any CPU.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|ARM.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|ARM.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhone.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhone.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|x64.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|x64.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|x86.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|x86.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{0F13E444-717E-460A-BDE7-8AD537F0A418}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{0F13E444-717E-460A-BDE7-8AD537F0A418}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{0F13E444-717E-460A-BDE7-8AD537F0A418}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -636,55 +583,6 @@ Global
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.Release|x86.ActiveCfg = Release|Any CPU
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.Release|x86.Build.0 = Release|Any CPU
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|ARM.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|iPhone.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|x64.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|x64.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|x86.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.AppStore|x86.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|ARM.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|ARM.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhone.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|x64.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|x64.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|x86.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|x86.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|Any CPU.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|ARM.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|ARM.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhone.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhone.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|x64.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|x64.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|x86.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|x86.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{302F0881-77AE-4CCE-ACF4-930AD5D4FB08}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{302F0881-77AE-4CCE-ACF4-930AD5D4FB08}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{302F0881-77AE-4CCE-ACF4-930AD5D4FB08}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -847,55 +745,6 @@ Global
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.GooglePlay|x64.Build.0 = Release|Any CPU
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.GooglePlay|x86.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|ARM.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|iPhone.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|x64.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|x64.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|x86.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.AppStore|x86.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|ARM.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|ARM.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhone.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|x64.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|x64.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|x86.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|x86.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|Any CPU.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|ARM.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|ARM.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhone.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhone.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|x64.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|x64.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|x86.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|x86.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -1259,55 +1108,6 @@ Global
{11D31A79-0F09-4708-8097-3D1C5D886547}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{11D31A79-0F09-4708-8097-3D1C5D886547}.GooglePlay|x64.Build.0 = Release|Any CPU
{11D31A79-0F09-4708-8097-3D1C5D886547}.GooglePlay|x86.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|ARM.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|iPhone.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|x64.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|x64.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|x86.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.AppStore|x86.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|Any CPU.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|ARM.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|ARM.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhone.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|x64.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|x64.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|x86.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|x86.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|Any CPU.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|Any CPU.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|ARM.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|ARM.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhone.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhone.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|x64.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|x64.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|x86.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|x86.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.GooglePlay|Any CPU.ActiveCfg = Debug|Any CPU
{AD38DEE9-8A74-4B04-93C3-0831B55E7254}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{AD38DEE9-8A74-4B04-93C3-0831B55E7254}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{AD38DEE9-8A74-4B04-93C3-0831B55E7254}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -1629,60 +1429,6 @@ Global
{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}.GooglePlay|x64.Build.0 = Release|Any CPU
{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}.GooglePlay|x86.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|ARM.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|iPhone.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|x64.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|x64.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|x86.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.AppStore|x86.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|ARM.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|ARM.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|iPhone.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|x64.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|x64.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|x86.ActiveCfg = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Debug|x86.Build.0 = Debug|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|Any CPU.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|ARM.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|ARM.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|iPhone.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|iPhone.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|x64.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|x64.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|x86.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.Release|x86.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|x64.Build.0 = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}.GooglePlay|x86.Build.0 = Release|Any CPU
{EE438174-EE11-432E-9225-5B4EA80A7917}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{EE438174-EE11-432E-9225-5B4EA80A7917}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{EE438174-EE11-432E-9225-5B4EA80A7917}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -1737,60 +1483,6 @@ Global
{EE438174-EE11-432E-9225-5B4EA80A7917}.GooglePlay|x64.Build.0 = Release|Any CPU
{EE438174-EE11-432E-9225-5B4EA80A7917}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{EE438174-EE11-432E-9225-5B4EA80A7917}.GooglePlay|x86.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|ARM.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|iPhone.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|x64.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|x64.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|x86.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.AppStore|x86.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|ARM.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|iPhone.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|x64.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|x64.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|x86.ActiveCfg = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Debug|x86.Build.0 = Debug|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|Any CPU.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|ARM.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|ARM.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|iPhone.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|iPhone.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|x64.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|x64.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|x86.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.Release|x86.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|x64.Build.0 = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{D00918DD-BAC4-4AD4-A866-056CBE780AB2}.GooglePlay|x86.Build.0 = Release|Any CPU
{0635DC94-08B3-458F-B466-3524132601EB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{0635DC94-08B3-458F-B466-3524132601EB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{0635DC94-08B3-458F-B466-3524132601EB}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -1845,60 +1537,6 @@ Global
{0635DC94-08B3-458F-B466-3524132601EB}.GooglePlay|x64.Build.0 = Release|Any CPU
{0635DC94-08B3-458F-B466-3524132601EB}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{0635DC94-08B3-458F-B466-3524132601EB}.GooglePlay|x86.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|ARM.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|iPhone.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|x64.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|x64.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|x86.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.AppStore|x86.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|ARM.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|ARM.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|iPhone.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|x64.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|x64.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|x86.ActiveCfg = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Debug|x86.Build.0 = Debug|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|Any CPU.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|ARM.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|ARM.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|iPhone.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|iPhone.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|x64.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|x64.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|x86.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.Release|x86.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|x64.Build.0 = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}.GooglePlay|x86.Build.0 = Release|Any CPU
{83AAE9C7-04A6-447E-AE5F-07C8E0A509A8}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{83AAE9C7-04A6-447E-AE5F-07C8E0A509A8}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{83AAE9C7-04A6-447E-AE5F-07C8E0A509A8}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@ -2007,6 +1645,222 @@ Global
{C5B1AC34-F9F1-4C05-AF7A-CB84C16C5481}.GooglePlay|x64.Build.0 = Release|Any CPU
{C5B1AC34-F9F1-4C05-AF7A-CB84C16C5481}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{C5B1AC34-F9F1-4C05-AF7A-CB84C16C5481}.GooglePlay|x86.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|ARM.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|iPhone.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|x64.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|x64.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|x86.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.AppStore|x86.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|ARM.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|iPhone.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|x64.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|x64.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Debug|x86.Build.0 = Debug|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|Any CPU.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|ARM.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|ARM.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|iPhone.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|iPhone.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|x64.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|x64.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|x86.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.Release|x86.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|x64.Build.0 = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{A81E0040-093E-4517-9AFD-C788F96D8E4B}.GooglePlay|x86.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|ARM.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|iPhone.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|x64.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|x64.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|x86.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.AppStore|x86.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|ARM.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|iPhone.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|x64.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|x64.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|x86.ActiveCfg = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Debug|x86.Build.0 = Debug|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|Any CPU.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|ARM.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|ARM.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|iPhone.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|iPhone.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|x64.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|x64.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|x86.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.Release|x86.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|x64.Build.0 = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85}.GooglePlay|x86.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|ARM.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|iPhone.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|x64.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|x64.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|x86.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.AppStore|x86.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|ARM.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|iPhone.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|x64.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|x64.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|x86.ActiveCfg = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Debug|x86.Build.0 = Debug|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|Any CPU.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|ARM.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|ARM.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|iPhone.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|iPhone.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|x64.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|x64.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|x86.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.Release|x86.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|x64.Build.0 = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{B062D990-A256-4E0A-88C7-14B1C1216283}.GooglePlay|x86.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|ARM.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|iPhone.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|x64.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|x64.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|x86.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.AppStore|x86.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|ARM.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|ARM.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|iPhone.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|x64.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|x64.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|x86.ActiveCfg = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Debug|x86.Build.0 = Debug|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|Any CPU.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|ARM.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|ARM.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|iPhone.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|iPhone.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|x64.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|x64.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|x86.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.Release|x86.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|Any CPU.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|Any CPU.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|x64.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|x64.Build.0 = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|x86.ActiveCfg = Release|Any CPU
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE}.GooglePlay|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2019,18 +1873,15 @@ Global
{119C1730-E109-4BC9-AA89-9DCA2C50BFD5} = {13744327-9529-490B-A970-06A1D3144117}
{C3B5BA33-DA39-400D-B5B3-85C68354FD74} = {13744327-9529-490B-A970-06A1D3144117}
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0} = {13744327-9529-490B-A970-06A1D3144117}
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351} = {13744327-9529-490B-A970-06A1D3144117}
{C6C4937C-D5F4-4E00-8B51-8D826AD83C5E} = {13744327-9529-490B-A970-06A1D3144117}
{0F13E444-717E-460A-BDE7-8AD537F0A418} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{93E4ADA5-8D7A-44BF-9549-0AD76AB86E8F} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{34771DC0-9684-45BE-9C9C-5A686468722C} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{EF5D0090-9E12-45B5-961C-45D787BD80A5} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{302F0881-77AE-4CCE-ACF4-930AD5D4FB08} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{DB5A0B7D-8090-4A0C-97C7-CDF17AACAAF2} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{FCEB9729-627A-4964-B853-1649CA1FA76D} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{4936A94C-BE22-4F73-8468-64FA4371FF80} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{088DA4BA-0AFB-4690-A639-7559BE14D0C8} = {274AB35C-68B4-4EFA-803B-8A7CFEC25EFC}
{92313C69-3BC4-4276-A1C8-100C86183F12} = {088DA4BA-0AFB-4690-A639-7559BE14D0C8}
@ -2040,7 +1891,6 @@ Global
{7595F47D-11D6-4716-BDE6-264C1AFBFFB5} = {274AB35C-68B4-4EFA-803B-8A7CFEC25EFC}
{B0562DBB-3784-4F1C-A355-61CFD44ED963} = {8CDD4942-2E48-4CF7-AC99-85718F238455}
{11D31A79-0F09-4708-8097-3D1C5D886547} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
{AD38DEE9-8A74-4B04-93C3-0831B55E7254} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
{41FEBC72-C12B-47E1-B6F6-51D50158C825} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
@ -2049,13 +1899,15 @@ Global
{7076E711-FE72-4EC0-8335-045EEFC1100C} = {13744327-9529-490B-A970-06A1D3144117}
{D0FC73E2-AE97-495B-B41B-61CD422A8AE9} = {274AB35C-68B4-4EFA-803B-8A7CFEC25EFC}
{727A9E5A-566A-4DC5-B62B-8F7CA17661B8} = {13744327-9529-490B-A970-06A1D3144117}
{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4} = {13744327-9529-490B-A970-06A1D3144117}
{EE438174-EE11-432E-9225-5B4EA80A7917} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{D00918DD-BAC4-4AD4-A866-056CBE780AB2} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{0635DC94-08B3-458F-B466-3524132601EB} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{85C929EF-7FF4-4C43-967E-DFA816EFF5E4} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{83AAE9C7-04A6-447E-AE5F-07C8E0A509A8} = {274AB35C-68B4-4EFA-803B-8A7CFEC25EFC}
{C5B1AC34-F9F1-4C05-AF7A-CB84C16C5481} = {088DA4BA-0AFB-4690-A639-7559BE14D0C8}
{C9DC2286-37E4-467A-9DFB-593444265B74} = {13744327-9529-490B-A970-06A1D3144117}
{A81E0040-093E-4517-9AFD-C788F96D8E4B} = {C4C63221-60D5-412B-92CC-D59A8EA62E23}
{2B8DAB16-91E2-4EFB-ADFB-CA87F7B97A85} = {13744327-9529-490B-A970-06A1D3144117}
{B062D990-A256-4E0A-88C7-14B1C1216283} = {7FAAA086-4453-4B62-AD9A-2E2ED216E3C4}
{416D42EC-CD5D-42FF-BC16-E2E66C38FDAE} = {B0562DBB-3784-4F1C-A355-61CFD44ED963}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0

Просмотреть файл

@ -0,0 +1,11 @@
{
"solution": {
"path": "AppCenter-Mac.sln",
"projects": [
"SDK\\AppCenter\\Microsoft.AppCenter.AppleUnified\\Microsoft.AppCenter.AppleUnified.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics.AppleUnified\\Microsoft.AppCenter.Analytics.AppleUnified.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes.AppleUnified\\Microsoft.AppCenter.Crashes.AppleUnified.csproj",
"SDK\\AppCenterDistribute\\Microsoft.AppCenter.Distribute.AppleUnified\\Microsoft.AppCenter.Distribute.AppleUnified.csproj"
]
}
}

Просмотреть файл

@ -0,0 +1,26 @@
{
"solution": {
"path": "AppCenter-Mac.sln",
"projects": [
"SDK\\AppCenter\\Microsoft.AppCenter\\Microsoft.AppCenter.csproj",
"SDK\\AppCenter\\Microsoft.AppCenter.Android\\Microsoft.AppCenter.Android.csproj",
"SDK\\AppCenter\\Microsoft.AppCenter.Android.Bindings\\Microsoft.AppCenter.Android.Bindings.csproj",
"SDK\\AppCenter\\Microsoft.AppCenter.iOS\\Microsoft.AppCenter.iOS.csproj",
"SDK\\AppCenter\\Microsoft.AppCenter.MacOS\\Microsoft.AppCenter.MacOS.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics\\Microsoft.AppCenter.Analytics.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics.Android\\Microsoft.AppCenter.Analytics.Android.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics.Android.Bindings\\Microsoft.AppCenter.Analytics.Android.Bindings.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics.iOS\\Microsoft.AppCenter.Analytics.iOS.csproj",
"SDK\\AppCenterAnalytics\\Microsoft.AppCenter.Analytics.MacOS\\Microsoft.AppCenter.Analytics.MacOS.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes\\Microsoft.AppCenter.Crashes.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes.Android\\Microsoft.AppCenter.Crashes.Android.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes.Android.Bindings\\Microsoft.AppCenter.Crashes.Android.Bindings.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes.iOS\\Microsoft.AppCenter.Crashes.iOS.csproj",
"SDK\\AppCenterCrashes\\Microsoft.AppCenter.Crashes.MacOS\\Microsoft.AppCenter.Crashes.MacOS.csproj",
"SDK\\AppCenterDistribute\\Microsoft.AppCenter.Distribute\\Microsoft.AppCenter.Distribute.csproj",
"SDK\\AppCenterDistribute\\Microsoft.AppCenter.Distribute.Android\\Microsoft.AppCenter.Distribute.Android.csproj",
"SDK\\AppCenterDistribute\\Microsoft.AppCenter.Distribute.Android.Bindings\\Microsoft.AppCenter.Distribute.Android.Bindings.csproj",
"SDK\\AppCenterDistribute\\Microsoft.AppCenter.Distribute.iOS\\Microsoft.AppCenter.Distribute.iOS.csproj"
]
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -19,8 +19,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Android
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.iOS", "SDK\AppCenter\Microsoft.AppCenter.iOS\Microsoft.AppCenter.iOS.csproj", "{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.iOS.Bindings", "SDK\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj", "{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{E8119A94-6E9A-4073-983D-C9AB3D93F001}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AppCenterAnalytics", "AppCenterAnalytics", "{A4F89D36-B1BC-4C40-97C0-8D8216B356FC}"
@ -32,9 +30,6 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.Android.Bindings", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.Android.Bindings\Microsoft.AppCenter.Analytics.Android.Bindings.csproj", "{34771DC0-9684-45BE-9C9C-5A686468722C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.iOS", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.iOS\Microsoft.AppCenter.Analytics.iOS.csproj", "{EF5D0090-9E12-45B5-961C-45D787BD80A5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Analytics.iOS.Bindings", "SDK\AppCenterAnalytics\Microsoft.AppCenter.Analytics.iOS.Bindings\Microsoft.AppCenter.Analytics.iOS.Bindings.csproj", "{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AppCenterDistribute", "AppCenterDistribute", "{843F6812-F5B0-4B7E-9CB5-112CDADAEF19}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute\Microsoft.AppCenter.Distribute.csproj", "{2E2927E8-2C9A-4E38-80A7-71FC2212EDAA}"
@ -45,16 +40,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distrib
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.iOS", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.iOS\Microsoft.AppCenter.Distribute.iOS.csproj", "{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Distribute.iOS.Bindings", "SDK\AppCenterDistribute\Microsoft.AppCenter.Distribute.iOS.Bindings\Microsoft.AppCenter.Distribute.iOS.Bindings.csproj", "{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AppCenterCrashes", "AppCenterCrashes", "{132CD282-47A0-442A-9F30-A43332C2BEF6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.iOS", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.iOS\Microsoft.AppCenter.Crashes.iOS.csproj", "{4936A94C-BE22-4F73-8468-64FA4371FF80}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.Android.Bindings", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Android.Bindings\Microsoft.AppCenter.Crashes.Android.Bindings.csproj", "{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.iOS.Bindings", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.iOS.Bindings\Microsoft.AppCenter.Crashes.iOS.Bindings.csproj", "{FCEB9729-627A-4964-B853-1649CA1FA76D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes.Android", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes.Android\Microsoft.AppCenter.Crashes.Android.csproj", "{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AppCenter.Crashes", "SDK\AppCenterCrashes\Microsoft.AppCenter.Crashes\Microsoft.AppCenter.Crashes.csproj", "{2A90310C-3A9A-4E89-840D-CB4F584B7879}"
@ -155,18 +146,6 @@ Global
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}.Debug|iPhone.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|Any CPU.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhone.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhone.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}.Debug|iPhone.Build.0 = Debug|Any CPU
{A3C3F12A-D7A9-4AE5-A252-3BCB63545B09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3C3F12A-D7A9-4AE5-A252-3BCB63545B09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3C3F12A-D7A9-4AE5-A252-3BCB63545B09}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -215,18 +194,6 @@ Global
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{EF5D0090-9E12-45B5-961C-45D787BD80A5}.Debug|iPhone.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|Any CPU.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhone.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhone.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}.Debug|iPhone.Build.0 = Debug|Any CPU
{2E2927E8-2C9A-4E38-80A7-71FC2212EDAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E2927E8-2C9A-4E38-80A7-71FC2212EDAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E2927E8-2C9A-4E38-80A7-71FC2212EDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -275,18 +242,6 @@ Global
{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A}.Debug|iPhone.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|Any CPU.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|Any CPU.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|Any CPU.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhone.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhone.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}.Debug|iPhone.Build.0 = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4936A94C-BE22-4F73-8468-64FA4371FF80}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -311,18 +266,6 @@ Global
{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3}.Debug|iPhone.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|Any CPU.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhone.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhone.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FCEB9729-627A-4964-B853-1649CA1FA76D}.Debug|iPhone.Build.0 = Debug|Any CPU
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -354,7 +297,6 @@ Global
{119C1730-E109-4BC9-AA89-9DCA2C50BFD5} = {C6395FB6-8473-4A4B-9FA4-2A187F0B0B10}
{C3B5BA33-DA39-400D-B5B3-85C68354FD74} = {C6395FB6-8473-4A4B-9FA4-2A187F0B0B10}
{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0} = {C6395FB6-8473-4A4B-9FA4-2A187F0B0B10}
{5490FECC-63B2-4543-B4FE-EDD8D1BD8351} = {C6395FB6-8473-4A4B-9FA4-2A187F0B0B10}
{115F38E3-5DD5-469E-8A06-AA6BE4B99777} = {E8119A94-6E9A-4073-983D-C9AB3D93F001}
{CA4FB145-763C-4014-B0AF-F5884412E9F3} = {E8119A94-6E9A-4073-983D-C9AB3D93F001}
{CC0B2B0C-5150-477E-A687-1218C64E3367} = {E8119A94-6E9A-4073-983D-C9AB3D93F001}
@ -363,17 +305,14 @@ Global
{93E4ADA5-8D7A-44BF-9549-0AD76AB86E8F} = {A4F89D36-B1BC-4C40-97C0-8D8216B356FC}
{34771DC0-9684-45BE-9C9C-5A686468722C} = {A4F89D36-B1BC-4C40-97C0-8D8216B356FC}
{EF5D0090-9E12-45B5-961C-45D787BD80A5} = {A4F89D36-B1BC-4C40-97C0-8D8216B356FC}
{45EA6818-8759-4E48-BD7A-E240E4D4B0F7} = {A4F89D36-B1BC-4C40-97C0-8D8216B356FC}
{843F6812-F5B0-4B7E-9CB5-112CDADAEF19} = {79390575-9F0F-43F3-9BDA-8E3491693230}
{2E2927E8-2C9A-4E38-80A7-71FC2212EDAA} = {843F6812-F5B0-4B7E-9CB5-112CDADAEF19}
{AD38DEE9-8A74-4B04-93C3-0831B55E7254} = {843F6812-F5B0-4B7E-9CB5-112CDADAEF19}
{11D31A79-0F09-4708-8097-3D1C5D886547} = {843F6812-F5B0-4B7E-9CB5-112CDADAEF19}
{60241627-33BB-45F9-A1B6-6F1CB2BF2C4A} = {843F6812-F5B0-4B7E-9CB5-112CDADAEF19}
{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462} = {843F6812-F5B0-4B7E-9CB5-112CDADAEF19}
{132CD282-47A0-442A-9F30-A43332C2BEF6} = {79390575-9F0F-43F3-9BDA-8E3491693230}
{4936A94C-BE22-4F73-8468-64FA4371FF80} = {132CD282-47A0-442A-9F30-A43332C2BEF6}
{42D541D7-B7C9-45A7-8D4D-8FB5A00668B3} = {132CD282-47A0-442A-9F30-A43332C2BEF6}
{FCEB9729-627A-4964-B853-1649CA1FA76D} = {132CD282-47A0-442A-9F30-A43332C2BEF6}
{D6DB87CA-B8EC-4A38-805F-AFDC7FEC38EB} = {132CD282-47A0-442A-9F30-A43332C2BEF6}
{2A90310C-3A9A-4E89-840D-CB4F584B7879} = {132CD282-47A0-442A-9F30-A43332C2BEF6}
{C6C4937C-D5F4-4E00-8B51-8D826AD83C5E} = {C6395FB6-8473-4A4B-9FA4-2A187F0B0B10}

Просмотреть файл

@ -28,20 +28,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t=externals-android</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf externals/android</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
<NoWarn>CS0109</NoWarn>
<Commandlineparameters></Commandlineparameters>
</PropertyGroup>
@ -53,20 +39,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t=externals-android</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf externals/android</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
<NoWarn>CS0109</NoWarn>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -7,6 +7,9 @@ namespace Microsoft.AppCenter
public static partial class AppCenterLog
{
/// <summary>
/// The log tag for this SDK. All logs emitted at the SDK level will contain this tag.
/// </summary>
public const string LogTag = nameof(AppCenter) + "Xamarin";
public static void Verbose(string tag, string message)

Просмотреть файл

@ -1,9 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
namespace Microsoft.AppCenter
{
public abstract class AppCenterService : IAppCenterService
{
}
}

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
namespace Microsoft.AppCenter
{
public interface IAppCenterService
{
/* This interface should remain empty */
}
}

Просмотреть файл

@ -47,8 +47,6 @@
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="AppCenterService.cs" />
<Compile Include="IAppCenterService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="AppCenter.cs" />
<Compile Include="AppCenterLog.cs" />

Просмотреть файл

@ -5,10 +5,8 @@ using Foundation;
using ObjCRuntime;
using System;
namespace Microsoft.AppCenter.iOS.Bindings
namespace Microsoft.AppCenter.Apple.Bindings
{
interface IMSACService { }
// typedef (void (^)(BOOL))completionHandler();
delegate void MSACSetLogLevelCompletionHandlerCallback(bool result);
@ -16,7 +14,7 @@ namespace Microsoft.AppCenter.iOS.Bindings
delegate string MSACLogMessageProvider();
// typedef void (^MSACLogHandler)(MSACLogMessageProvider, MSACLogLevel, const char *, const char *, uint);
unsafe delegate void MSACLogHandler(MSACLogMessageProvider arg0, MSACLogLevel arg1, IntPtr arg2, IntPtr arg3, uint arg4);
unsafe delegate void MSACLogHandler([CCallback] MSACLogMessageProvider arg0, MSACLogLevel arg1, IntPtr arg2, IntPtr arg3, uint arg4);
//Note: Objective Sharpie tried to bind the above as:
// unsafe delegate void MSACLogHandler(MSACLogMessageProvider arg0, MSACLogLevel arg1, string arg2, sbyte* arg3, sbyte* arg4, uint arg5);
//But trying to use it as given gave an error.
@ -261,19 +259,11 @@ namespace Microsoft.AppCenter.iOS.Bindings
[BaseType(typeof(NSObject))]
interface MSACService
{
// @required +(BOOL)isEnabled;
[Static]
[Export("isEnabled")]
bool GetEnabled();
[Static]
[Export("setEnabled:")]
void SetEnabled(bool val);
}
// @interface MSACServiceAbstract : NSObject <MSACService>
[BaseType(typeof(MSACService))]
interface MSACServiceAbstract : IMSACService
interface MSACServiceAbstract : MSACService
{
}

Просмотреть файл

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-ios;net6.0-macos</TargetFrameworks>
<IsBindingProject>true</IsBindingProject>
<Optimize>true</Optimize>
<Copyright>Microsoft Corp. All rights reserved.</Copyright>
<Product>Microsoft.AppCenter.Core</Product>
<Company>Microsoft Corporation</Company>
<Version>4.5.4-SNAPSHOT</Version>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>4.5.4.0</FileVersion>
<RootNamespace>Microsoft.AppCenter</RootNamespace>
<AssemblyName>Microsoft.AppCenter</AssemblyName>
<AssemblyTitle>Microsoft.AppCenter.Core</AssemblyTitle>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\Microsoft.AppCenter.xml</DocumentationFile>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<NoBindingEmbedding>false</NoBindingEmbedding>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<NativeReference Include="..\..\..\externals\apple\ios\AppCenter.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenter.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Shared.Apple\Microsoft.AppCenter.Shared.Apple.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -4,7 +4,7 @@
using System;
using ObjCRuntime;
namespace Microsoft.AppCenter.iOS.Bindings
namespace Microsoft.AppCenter.Apple.Bindings
{
[Native]
public enum MSACLogLevel : ulong

Просмотреть файл

@ -1,360 +0,0 @@
using Foundation;
using ObjCRuntime;
using System;
namespace Microsoft.AppCenter.MacOS.Bindings
{
interface IMSACService { }
// typedef NSString * (^MSACLogMessageProvider)();
delegate string MSACLogMessageProvider();
// typedef (void (^)(BOOL))completionHandler();
delegate void MSACSetLogLevelCompletionHandlerCallback(bool result);
// typedef void (^MSACLogHandler)(MSACLogMessageProvider, MSACLogLevel, const char *, const char *, uint);
unsafe delegate void MSACLogHandler(MSACLogMessageProvider arg0, MSACLogLevel arg1, IntPtr arg2, IntPtr arg3, uint arg4);
//Note: Objective Sharpie tried to bind the above as:
// unsafe delegate void MSACLogHandler(MSACLogMessageProvider arg0, MSACLogLevel arg1, string arg2, sbyte* arg3, sbyte* arg4, uint arg5);
//But trying to use it as given gave an error.
// @interface MSACWrapperSdk : NSObject
[BaseType(typeof(NSObject))]
interface MSACWrapperSdk
{
// @property (readonly, nonatomic) NSString * wrapperSdkVersion;
[Export("wrapperSdkVersion")]
string WrapperSdkVersion { get; }
// @property (readonly, nonatomic) NSString * wrapperSdkName;
[Export("wrapperSdkName")]
string WrapperSdkName { get; }
// @property (readonly, nonatomic) NSString * wrapperRuntimeVersion;
[Export("wrapperRuntimeVersion")]
string WrapperRuntimeVersion { get; }
// @property (readonly, nonatomic) NSString * liveUpdateReleaseLabel;
[Export("liveUpdateReleaseLabel")]
string LiveUpdateReleaseLabel { get; }
// @property (readonly, nonatomic) NSString * liveUpdateDeploymentKey;
[Export("liveUpdateDeploymentKey")]
string LiveUpdateDeploymentKey { get; }
// @property (readonly, nonatomic) NSString * liveUpdatePackageHash;
[Export("liveUpdatePackageHash")]
string LiveUpdatePackageHash { get; }
// -(BOOL)isEqual:(MSACWrapperSdk *)wrapperSdk;
[Export("isEqual:")]
bool IsEqual(MSACWrapperSdk wrapperSdk);
// initWithWrapperSdkVersion:(NSString *)wrapperSdkVersion wrapperSdkName:(NSString *)wrapperSdkName wrapperRuntimeVersion:(NSString*)wrapperRuntimeVersion liveUpdateReleaseLabel:(NSString*)liveUpdateReleaseLabel liveUpdateDeploymentKey:(NSString*)liveUpdateDeploymentKey liveUpdatePackageHash:(NSString*)liveUpdatePackageHash;
[Export("initWithWrapperSdkVersion:wrapperSdkName:wrapperRuntimeVersion:liveUpdateReleaseLabel:liveUpdateDeploymentKey:liveUpdatePackageHash:")]
IntPtr Constructor([NullAllowed] string wrapperSdkVersion, [NullAllowed] string wrapperSdkName, [NullAllowed] string wrapperRuntimeVersion, [NullAllowed] string liveUpdateReleaseLabel, [NullAllowed] string liveUpdateDeploymentKey, [NullAllowed] string liveUpdatePackageHash);
}
// @interface MSACKeychainUtil : NSObject
[BaseType(typeof(NSObject))]
interface MSACKeychainUtil
{
// + (BOOL)storeString:(NSString *)string forKey:(NSString *)key;
[Static]
[Export("storeString:forKey:")]
void StoreString(NSString value, NSString key);
// + (NSString *_Nullable)stringForKey:(NSString *)key statusCode:(OSStatus *_Nullable)statusCode;
[Static]
[Export("stringForKey:statusCode:")]
NSString StringForKey(NSString key, out int errorCode);
// + (BOOL) clear;
[Static]
[Export("clear")]
bool Clear();
}
// @interface MSACDevice : MSACWrapperSdk
[BaseType(typeof(MSACWrapperSdk))]
interface MSACDevice
{
// @property (readonly, nonatomic) NSString * sdkName;
[Export("sdkName")]
string SdkName { get; }
// @property (readonly, nonatomic) NSString * sdkVersion;
[Export("sdkVersion")]
string SdkVersion { get; }
// @property (readonly, nonatomic) NSString * model;
[Export("model")]
string Model { get; }
// @property (readonly, nonatomic) NSString * oemName;
[Export("oemName")]
string OemName { get; }
// @property (readonly, nonatomic) NSString * osName;
[Export("osName")]
string OsName { get; }
// @property (readonly, nonatomic) NSString * osVersion;
[Export("osVersion")]
string OsVersion { get; }
// @property (readonly, nonatomic) NSString * osBuild;
[Export("osBuild")]
string OsBuild { get; }
// @property (readonly, nonatomic) NSNumber * osApiLevel;
[Export("osApiLevel")]
NSNumber OsApiLevel { get; }
// @property (readonly, nonatomic) NSString * locale;
[Export("locale")]
string Locale { get; }
// @property (readonly, nonatomic) NSNumber * timeZoneOffset;
[Export("timeZoneOffset")]
NSNumber TimeZoneOffset { get; }
// @property (readonly, nonatomic) NSString * screenSize;
[Export("screenSize")]
string ScreenSize { get; }
// @property (readonly, nonatomic) NSString * appVersion;
[Export("appVersion")]
string AppVersion { get; }
// @property (readonly, nonatomic) NSString * carrierName;
[Export("carrierName")]
string CarrierName { get; }
// @property (readonly, nonatomic) NSString * carrierCountry;
[Export("carrierCountry")]
string CarrierCountry { get; }
// @property (readonly, nonatomic) NSString * appBuild;
[Export("appBuild")]
string AppBuild { get; }
// @property (readonly, nonatomic) NSString * appNamespace;
[Export("appNamespace")]
string AppNamespace { get; }
// -(BOOL)isEqual:(MSACDevice *)device;
[Export("isEqual:")]
bool IsEqual(MSACDevice device);
}
// @interface MSACAppCenter : NSObject
[BaseType(typeof(NSObject), Name = "MSACAppCenter")]
interface MSACAppCenter
{
// +(instancetype)sharedInstance;
[Static]
[Export("sharedInstance")]
MSACAppCenter SharedInstance();
// +(void)resetSharedInstance
[Static]
[Export("resetSharedInstance")]
void ResetSharedInstance();
// +(void)configureWithAppSecret:(NSString *)appSecret;
[Static]
[Export("configureWithAppSecret:")]
void ConfigureWithAppSecret([NullAllowed] string appSecret);
// +(void)start:(NSString *)appSecret withServices:(NSArray<Class> *)services;
[Static]
[Export("start:withServices:")]
void Start([NullAllowed] string appSecret, Class[] services);
// +(void)startService:(Class)service;
[Static]
[Export("startService:")]
void StartService(Class service);
// +(BOOL)isConfigured;
[Static]
[Export("isConfigured")]
bool IsConfigured();
// +(void)setLogUrl:(NSString *)setLogUrl;
[Static]
[Export("setLogUrl:")]
void SetLogUrl([NullAllowed] string logUrl);
// + (void)setCountryCode:(NSString *)countryCode
[Static]
[Export("setCountryCode:")]
void SetCountryCode(string countryCode);
// +(void)setEnabled:(BOOL)isEnabled;
[Static]
[Export("setEnabled:")]
void SetEnabled(bool isEnabled);
// +(BOOL)isEnabled;
[Static]
[Export("isEnabled")]
bool IsEnabled();
// +(MSACLogLevel)logLevel;
// +(void)setLogLevel:(MSACLogLevel)logLevel;
[Static]
[Export("logLevel")]
MSACLogLevel LogLevel();
[Static]
[Export("setLogLevel:")]
void SetLogLevel(MSACLogLevel logLevel);
// + (void)setNetworkRequestsAllowed:(BOOL)isAllowed;
[Static]
[Export("setNetworkRequestsAllowed:")]
void SetNetworkRequestsAllowed(bool isAllowed);
// + (BOOL)isNetworkRequestsAllowed;
[Static]
[Export("isNetworkRequestsAllowed")]
bool IsNetworkRequestsAllowed();
// + (void)setUserId:(NSString *)userId;
[Static]
[Export("setUserId:")]
void SetUserId([NullAllowed] string userId);
// +(void)setLogHandler:(MSACLogHandler)logHandler;
[Static]
[Export("setLogHandler:")]
void SetLogHandler(MSACLogHandler logHandler);
// +(void)setWrapperSdk:(MSACWrapperSdk *)wrapperSdk;
[Static]
[Export("setWrapperSdk:")]
void SetWrapperSdk(MSACWrapperSdk wrapperSdk);
// +(NSUUID *)installId;
[Static]
[Export("installId")]
NSUuid InstallId();
// +(BOOL)isDebuggerAttached;
[Static]
[Export("isDebuggerAttached")]
bool IsDebuggerAttached();
// +(void)setMaxStorageSize:(long)sizeInBytes completionHandler(void (^)(BOOL))completionHandler;
[Static]
[Export("setMaxStorageSize:completionHandler:")]
void SetMaxStorageSize(long sizeInBytes, MSACSetLogLevelCompletionHandlerCallback callback);
}
// @protocol MSACService <NSObject>
[Protocol, Model]
[BaseType(typeof(NSObject))]
interface MSACService
{
// @required +(BOOL)isEnabled;
[Static]
[Export("isEnabled")]
bool GetEnabled();
[Static]
[Export("setEnabled:")]
void SetEnabled(bool val);
}
// @interface MSACServiceAbstract : NSObject <MSACService>
[BaseType(typeof(MSACService))]
interface MSACServiceAbstract : IMSACService
{
}
// @interface MSACLogger : NSObject
[BaseType(typeof(NSObject))]
interface MSACLogger
{
// +(void)logMessage:(MSACLogMessageProvider)messageProvider level:(MSACLogLevel)loglevel tag:(NSString *)tag file:(const char *)file function:(const char *)function line:(uint)line;
[Static]
[Export("logMessage:level:tag:file:function:line:")]
unsafe void LogMessage(MSACLogMessageProvider messageProvider, MSACLogLevel loglevel, string tag, IntPtr file, IntPtr function, uint line);
}
// @interface MSACWrapperLogger : NSObject
[BaseType(typeof(NSObject))]
interface MSACWrapperLogger
{
// +(void)MSACWrapperLog:(MSACLogMessageProvider)message tag:(NSString *)tag level:(MSACLogLevel)level;
[Static]
[Export("MSACWrapperLog:tag:level:")]
void MSACWrapperLog(MSACLogMessageProvider message, string tag, MSACLogLevel level);
}
// typedef void (^MSACHttpRequestCompletionHandler)(NSData *_Nullable responseBody, NSHTTPURLResponse *_Nullable response, NSError* _Nullable error);
delegate void MSACHttpRequestCompletionHandler([NullAllowed] NSData responseBody, [NullAllowed] NSHttpUrlResponse response, [NullAllowed] NSError error);
// @protocol MSACHttpClientProtocol <NSObject>
[Protocol, Model]
[BaseType(typeof(NSObject))]
interface MSACHttpClientProtocol
{
// @property(nonatomic, weak, nullable) id<MSACHttpClientDelegate> delegate;
// Using a C# property, even when using the Wrap/Weak pattern, we get "setDelegate:]: unrecognized selector sent to instance", work around by using a setter method as we don't need the getter
[Export("setDelegate:")]
void SetDelegate([NullAllowed] MSACHttpClientDelegate httpClientDelegate);
// @required - (void)sendAsync:(NSURL *)url
// method:(NSString*) method
// headers:(nullable NSDictionary<NSString*, NSString*> *)headers
// data:(nullable NSData *)data
// completionHandler:(nullable MSACHttpRequestCompletionHandler) completionHandler;
[Export("sendAsync:method:headers:data:completionHandler:")]
void SendAsync(NSUrl url, NSString method, [NullAllowed] NSDictionary<NSString, NSString> headers, [NullAllowed] NSData data, [NullAllowed] MSACHttpRequestCompletionHandler completionHandler);
// @required - (void) sendAsync:(NSURL*) url
// method:(NSString*) method
// headers:(nullable NSDictionary<NSString*, NSString*> *)headers
// data:(nullable NSData *)data
// retryIntervals:(NSArray*) retryIntervals
// compressionEnabled:(BOOL) compressionEnabled
// completionHandler:(nullable MSACHttpRequestCompletionHandler) completionHandler;
[Export("sendAsync:method:headers:data:retryIntervals:compressionEnabled:completionHandler:")]
void SendAsync(NSUrl url, NSString method, [NullAllowed] NSDictionary<NSString, NSString> headers, [NullAllowed] NSData data, NSArray retryIntervals, bool compressionEnabled, [NullAllowed] MSACHttpRequestCompletionHandler completionHandler);
// @required - (void)pause;
[Export("pause")]
void Pause();
// @required - (void)resume;
[Export("resume")]
void Resume();
// @required - (void)setEnabled:(BOOL)isEnabled;
[Export("setEnabled:")]
void SetEnabled(bool enabled);
}
// @protocol MSACHttpClientDelegate <NSObject>
[Protocol]
[BaseType(typeof(NSObject))]
interface MSACHttpClientDelegate
{
// -(void)willSendHTTPRequestToURL:(NSURL *)url withHeaders:(nullable NSDictionary<NSString *, NSString *> *)headers;
[Export("willSendHTTPRequestToURL:withHeaders:")]
void WillSendHTTPRequestToURL(NSUrl url, [NullAllowed] NSDictionary<NSString, NSString> headers);
}
// @interface MSACDependencyConfiguration : NSObject
[BaseType(typeof(NSObject))]
interface MSACDependencyConfiguration
{
// @property(class, nonatomic) id<MSACHttpClientProtocol> httpClient;
[Static]
[Export("httpClient")]
MSACHttpClientProtocol HttpClient { get; set; }
}
}

Просмотреть файл

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}</ProjectGuid>
<ProjectTypeGuids>{810C163F-4746-4721-8B8E-88A3673A62EA};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.MacOS.Binding</RootNamespace>
<AssemblyName>Microsoft.AppCenter.MacOS.Bindings</AssemblyName>
<MacResourcePrefix>Resources</MacResourcePrefix>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t-Externals-Apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf external/apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants />
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t-Externals-Apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf external/apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenter.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,34 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: AssemblyMetadata("IsTrimmable", "False")]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.MacOS.Binding")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("${AuthorCopyright}")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

Просмотреть файл

@ -1,17 +0,0 @@
using System;
using ObjCRuntime;
namespace Microsoft.AppCenter.MacOS.Bindings
{
[Native]
public enum MSACLogLevel : ulong
{
Verbose = 2,
Debug = 3,
Info = 4,
Warning = 5,
Error = 6,
Assert = 7,
None = 99
}
}

Просмотреть файл

@ -1,6 +0,0 @@
<Project>
<Target Name="FixAppCenterSymlink" AfterTargets="_CollectFrameworks">
<Message Text="symlinking AppCenter" />
<Exec Command="cd $(AppBundleDir)\Contents\Frameworks\AppCenter.framework\ ; rm AppCenter ; ln -s Versions\A\AppCenter AppCenter" />
</Target>
</Project>

Просмотреть файл

@ -1,207 +0,0 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ObjCRuntime;
namespace Microsoft.AppCenter
{
using MacOSLogLevel = Microsoft.AppCenter.MacOS.Bindings.MSACLogLevel;
using MacOSAppCenter = Microsoft.AppCenter.MacOS.Bindings.MSACAppCenter;
using MacOSWrapperSdk = Microsoft.AppCenter.MacOS.Bindings.MSACWrapperSdk;
public partial class AppCenter
{
/* The key identifier for parsing app secrets */
const string PlatformIdentifier = "macos";
internal AppCenter()
{
}
static LogLevel PlatformLogLevel
{
get
{
var val = MacOSAppCenter.LogLevel();
switch (val)
{
case MacOSLogLevel.Verbose:
return LogLevel.Verbose;
case MacOSLogLevel.Debug:
return LogLevel.Debug;
case MacOSLogLevel.Info:
return LogLevel.Info;
case MacOSLogLevel.Warning:
return LogLevel.Warn;
case MacOSLogLevel.Error:
return LogLevel.Error;
case MacOSLogLevel.Assert:
return LogLevel.Assert;
case MacOSLogLevel.None:
return LogLevel.None;
default:
throw new ArgumentOutOfRangeException(nameof(val), val, null);
}
}
set
{
MacOSLogLevel loglevel;
switch (value)
{
case LogLevel.Verbose:
loglevel = MacOSLogLevel.Verbose;
break;
case LogLevel.Debug:
loglevel = MacOSLogLevel.Debug;
break;
case LogLevel.Info:
loglevel = MacOSLogLevel.Info;
break;
case LogLevel.Warn:
loglevel = MacOSLogLevel.Warning;
break;
case LogLevel.Error:
loglevel = MacOSLogLevel.Error;
break;
case LogLevel.Assert:
loglevel = MacOSLogLevel.Assert;
break;
case LogLevel.None:
loglevel = MacOSLogLevel.None;
break;
default:
throw new ArgumentOutOfRangeException(nameof(value), value, null);
}
MacOSAppCenter.SetLogLevel(loglevel);
}
}
static bool PlatformIsNetworkRequestsAllowed
{
get => MacOSAppCenter.IsNetworkRequestsAllowed();
set => MacOSAppCenter.SetNetworkRequestsAllowed(value);
}
static void PlatformSetUserId(string userId)
{
MacOSAppCenter.SetUserId(userId);
}
static void PlatformSetLogUrl(string logUrl)
{
MacOSAppCenter.SetLogUrl(logUrl);
}
static void PlatformSetCountryCode(string countryCode)
{
MacOSAppCenter.SetCountryCode(countryCode);
}
static bool PlatformConfigured
{
get
{
return MacOSAppCenter.IsConfigured();
}
}
static void PlatformConfigure(string appSecret)
{
SetWrapperSdk();
MacOSAppCenter.ConfigureWithAppSecret(appSecret);
}
static void PlatformStart(params Type[] services)
{
SetWrapperSdk();
foreach (var service in GetServices(services))
{
MacOSAppCenter.StartService(service);
}
}
static void PlatformStart(string appSecret, params Type[] services)
{
SetWrapperSdk();
string parsedSecret;
try
{
parsedSecret = GetSecretAndTargetForPlatform(appSecret, PlatformIdentifier);
}
catch (AppCenterException ex)
{
AppCenterLog.Assert(AppCenterLog.LogTag, ex.Message);
return;
}
MacOSAppCenter.Start(parsedSecret, GetServices(services));
}
static Task<bool> PlatformIsEnabledAsync()
{
return Task.FromResult(MacOSAppCenter.IsEnabled());
}
static Task PlatformSetEnabledAsync(bool enabled)
{
MacOSAppCenter.SetEnabled(enabled);
return Task.FromResult(default(object));
}
static Task<Guid?> PlatformGetInstallIdAsync()
{
Guid? installId = Guid.Parse(MacOSAppCenter.InstallId().AsString());
return Task.FromResult(installId);
}
static Class[] GetServices(IEnumerable<Type> services)
{
var classes = new List<Class>();
foreach (var t in services)
{
var bindingType = GetBindingType(t);
if (bindingType != null)
{
var aClass = GetClassForType(bindingType);
if (aClass != null)
{
classes.Add(aClass);
}
}
}
return classes.ToArray();
}
static Class GetClassForType(Type type)
{
IntPtr classHandle = Class.GetHandle(type);
if (classHandle != IntPtr.Zero)
{
return new Class(classHandle);
}
return null;
}
static Type GetBindingType(Type type)
{
return (Type)type.GetProperty("BindingType")?.GetValue(null, null);
}
static void SetWrapperSdk()
{
MacOSWrapperSdk wrapperSdk = new MacOSWrapperSdk(WrapperSdk.Version, WrapperSdk.Name, Constants.Version, null, null, null);
MacOSAppCenter.SetWrapperSdk(wrapperSdk);
}
internal static void PlatformUnsetInstance()
{
MacOSAppCenter.ResetSharedInstance();
}
static Task<bool> PlatformSetMaxStorageSizeAsync(long sizeInBytes)
{
TaskCompletionSource<bool> taskCompletionSource = new TaskCompletionSource<bool>();
MacOSAppCenter.SetMaxStorageSize(sizeInBytes, (result) => taskCompletionSource.SetResult(result));
return taskCompletionSource.Task;
}
}
}

Просмотреть файл

@ -1,50 +0,0 @@
namespace Microsoft.AppCenter
{
using MacOSMessageProvider = Microsoft.AppCenter.MacOS.Bindings.MSACLogMessageProvider;
using MacOSLogger = Microsoft.AppCenter.MacOS.Bindings.MSACWrapperLogger;
using MacOSLogLevel = Microsoft.AppCenter.MacOS.Bindings.MSACLogLevel;
public static partial class AppCenterLog
{
/// <summary>
/// The log tag for this SDK. All logs emitted at the SDK level will contain this tag.
/// </summary>
public const string LogTag = nameof(AppCenter) + "Xamarin";
public static void Verbose(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Verbose);
}
public static void Debug(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Debug);
}
public static void Info(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Info);
}
public static void Warn(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Warning);
}
public static void Error(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Error);
}
public static void Assert(string tag, string message)
{
MacOSMessageProvider msg_provider = () => { return message; };
MacOSLogger.MSACWrapperLog(msg_provider, tag, MacOSLogLevel.Assert);
}
}
}

Просмотреть файл

@ -1,6 +0,0 @@
namespace Microsoft.AppCenter
{
public abstract class AppCenterService : IAppCenterService
{
}
}

Просмотреть файл

@ -1,27 +0,0 @@
using Microsoft.AppCenter.MacOS.Bindings;
namespace Microsoft.AppCenter
{
public partial class Device
{
public Device(MSACDevice device)
{
SdkName = device.SdkName;
SdkVersion = device.SdkVersion;
Model = device.Model;
OemName = device.OemName;
OsName = device.OsName;
OsVersion = device.OsVersion;
OsBuild = device.OsBuild;
OsApiLevel = device.OsApiLevel == null ? 0 : device.OsApiLevel.Int32Value;
Locale = device.Locale;
TimeZoneOffset = device.TimeZoneOffset == null ? 0 : device.TimeZoneOffset.Int32Value;
ScreenSize = device.ScreenSize;
AppVersion = device.AppVersion;
CarrierName = device.CarrierName;
CarrierCountry = device.CarrierCountry;
AppBuild = device.AppBuild;
AppNamespace = device.AppNamespace;
}
}
}

Просмотреть файл

@ -1,7 +0,0 @@
namespace Microsoft.AppCenter
{
public interface IAppCenterService
{
/* This interface should remain empty */
}
}

Просмотреть файл

@ -4,7 +4,7 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}</ProjectGuid>
<ProjectTypeGuids>{A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectTypeGuids>{810C163F-4746-4721-8B8E-88A3673A62EA};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter</RootNamespace>
<AssemblyName>Microsoft.AppCenter</AssemblyName>
@ -14,6 +14,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -33,6 +34,7 @@
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -50,29 +52,33 @@
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Compile Include="AppCenter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="AppCenterLog.cs" />
<Compile Include="Device.cs" />
<Compile Include="IAppCenterService.cs" />
<Compile Include="AppCenterService.cs" />
<Compile Include="DependencyConfiguration.cs" />
<Compile Include="MacOSHttpClientAdapter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.AppCenter.MacOS.Bindings\Microsoft.AppCenter.MacOS.Bindings.csproj">
<Project>{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}</Project>
<Name>Microsoft.AppCenter.MacOS.Bindings</Name>
</ProjectReference>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems')" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenter.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Shared.Apple\Microsoft.AppCenter.Shared.Apple.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -5,17 +5,18 @@ using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ObjCRuntime;
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter
{
using iOSLogLevel = Microsoft.AppCenter.iOS.Bindings.MSACLogLevel;
using iOSAppCenter = Microsoft.AppCenter.iOS.Bindings.MSACAppCenter;
using iOSWrapperSdk = Microsoft.AppCenter.iOS.Bindings.MSACWrapperSdk;
public partial class AppCenter
{
/* The key identifier for parsing app secrets */
#if __IOS__
const string PlatformIdentifier = "ios";
#elif __MACOS__
const string PlatformIdentifier = "macos";
#endif
internal AppCenter()
{
@ -25,22 +26,22 @@ namespace Microsoft.AppCenter
{
get
{
var val = iOSAppCenter.LogLevel();
var val = MSACAppCenter.LogLevel();
switch (val)
{
case iOSLogLevel.Verbose:
case MSACLogLevel.Verbose:
return LogLevel.Verbose;
case iOSLogLevel.Debug:
case MSACLogLevel.Debug:
return LogLevel.Debug;
case iOSLogLevel.Info:
case MSACLogLevel.Info:
return LogLevel.Info;
case iOSLogLevel.Warning:
case MSACLogLevel.Warning:
return LogLevel.Warn;
case iOSLogLevel.Error:
case MSACLogLevel.Error:
return LogLevel.Error;
case iOSLogLevel.Assert:
case MSACLogLevel.Assert:
return LogLevel.Assert;
case iOSLogLevel.None:
case MSACLogLevel.None:
return LogLevel.None;
default:
throw new ArgumentOutOfRangeException(nameof(val), val, null);
@ -48,70 +49,70 @@ namespace Microsoft.AppCenter
}
set
{
iOSLogLevel loglevel;
MSACLogLevel loglevel;
switch (value)
{
case LogLevel.Verbose:
loglevel = iOSLogLevel.Verbose;
loglevel = MSACLogLevel.Verbose;
break;
case LogLevel.Debug:
loglevel = iOSLogLevel.Debug;
loglevel = MSACLogLevel.Debug;
break;
case LogLevel.Info:
loglevel = iOSLogLevel.Info;
loglevel = MSACLogLevel.Info;
break;
case LogLevel.Warn:
loglevel = iOSLogLevel.Warning;
loglevel = MSACLogLevel.Warning;
break;
case LogLevel.Error:
loglevel = iOSLogLevel.Error;
loglevel = MSACLogLevel.Error;
break;
case LogLevel.Assert:
loglevel = iOSLogLevel.Assert;
loglevel = MSACLogLevel.Assert;
break;
case LogLevel.None:
loglevel = iOSLogLevel.None;
loglevel = MSACLogLevel.None;
break;
default:
throw new ArgumentOutOfRangeException(nameof(value), value, null);
}
iOSAppCenter.SetLogLevel(loglevel);
MSACAppCenter.SetLogLevel(loglevel);
}
}
static bool PlatformIsNetworkRequestsAllowed
{
get => iOSAppCenter.IsNetworkRequestsAllowed();
set => iOSAppCenter.SetNetworkRequestsAllowed(value);
get => MSACAppCenter.IsNetworkRequestsAllowed();
set => MSACAppCenter.SetNetworkRequestsAllowed(value);
}
static void PlatformSetUserId(string userId)
{
iOSAppCenter.SetUserId(userId);
MSACAppCenter.SetUserId(userId);
}
static void PlatformSetLogUrl(string logUrl)
{
iOSAppCenter.SetLogUrl(logUrl);
MSACAppCenter.SetLogUrl(logUrl);
}
static void PlatformSetCountryCode(string countryCode)
{
iOSAppCenter.SetCountryCode(countryCode);
MSACAppCenter.SetCountryCode(countryCode);
}
static bool PlatformConfigured
{
get
{
return iOSAppCenter.IsConfigured();
return MSACAppCenter.IsConfigured();
}
}
static void PlatformConfigure(string appSecret)
{
SetWrapperSdk();
iOSAppCenter.ConfigureWithAppSecret(appSecret);
MSACAppCenter.ConfigureWithAppSecret(appSecret);
}
static void PlatformStart(params Type[] services)
@ -119,7 +120,7 @@ namespace Microsoft.AppCenter
SetWrapperSdk();
foreach (var service in GetServices(services))
{
iOSAppCenter.StartService(service);
MSACAppCenter.StartService(service);
}
}
@ -136,23 +137,23 @@ namespace Microsoft.AppCenter
AppCenterLog.Assert(AppCenterLog.LogTag, ex.Message);
return;
}
iOSAppCenter.Start(parsedSecret, GetServices(services));
MSACAppCenter.Start(parsedSecret, GetServices(services));
}
static Task<bool> PlatformIsEnabledAsync()
{
return Task.FromResult(iOSAppCenter.IsEnabled());
return Task.FromResult(MSACAppCenter.IsEnabled());
}
static Task PlatformSetEnabledAsync(bool enabled)
{
iOSAppCenter.SetEnabled(enabled);
MSACAppCenter.SetEnabled(enabled);
return Task.FromResult(default(object));
}
static Task<Guid?> PlatformGetInstallIdAsync()
{
Guid? installId = Guid.Parse(iOSAppCenter.InstallId().AsString());
Guid? installId = Guid.Parse(MSACAppCenter.InstallId().AsString());
return Task.FromResult(installId);
}
@ -191,19 +192,19 @@ namespace Microsoft.AppCenter
static void SetWrapperSdk()
{
iOSWrapperSdk wrapperSdk = new iOSWrapperSdk(WrapperSdk.Version, WrapperSdk.Name, Constants.Version, null, null, null);
iOSAppCenter.SetWrapperSdk(wrapperSdk);
MSACWrapperSdk wrapperSdk = new MSACWrapperSdk(WrapperSdk.Version, WrapperSdk.Name, Constants.Version, null, null, null);
MSACAppCenter.SetWrapperSdk(wrapperSdk);
}
internal static void PlatformUnsetInstance()
{
iOSAppCenter.ResetSharedInstance();
MSACAppCenter.ResetSharedInstance();
}
static Task<bool> PlatformSetMaxStorageSizeAsync(long sizeInBytes)
{
TaskCompletionSource<bool> taskCompletionSource = new TaskCompletionSource<bool>();
iOSAppCenter.SetMaxStorageSize(sizeInBytes, (result) => taskCompletionSource.SetResult(result));
MSACAppCenter.SetMaxStorageSize(sizeInBytes, (result) => taskCompletionSource.SetResult(result));
return taskCompletionSource.Task;
}
}

Просмотреть файл

@ -0,0 +1,51 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter
{
public static partial class AppCenterLog
{
/// <summary>
/// The log tag for this SDK. All logs emitted at the SDK level will contain this tag.
/// </summary>
public const string LogTag = nameof(AppCenter) + "Xamarin";
public static void Verbose(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Verbose);
}
public static void Debug(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Debug);
}
public static void Info(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Info);
}
public static void Warn(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Warning);
}
public static void Error(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Error);
}
public static void Assert(string tag, string message)
{
MSACLogMessageProvider msg_provider = () => { return message; };
MSACWrapperLogger.MSACWrapperLog(msg_provider, tag, MSACLogLevel.Assert);
}
}
}

Просмотреть файл

@ -4,17 +4,17 @@
using System.Collections.Generic;
using System.Threading;
using Foundation;
using Microsoft.AppCenter.MacOS.Bindings;
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter
{
internal class MacOSHttpClientAdapter : MSACHttpClientProtocol
internal class AppleHttpClientAdapter : MSACHttpClientProtocol
{
private readonly IHttpNetworkAdapter _httpNetworkAdapter;
private MSACHttpClientDelegate _httpClientDelegate;
public MacOSHttpClientAdapter(IHttpNetworkAdapter httpNetworkAdapter)
public AppleHttpClientAdapter(IHttpNetworkAdapter httpNetworkAdapter)
{
_httpNetworkAdapter = httpNetworkAdapter;
}

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Microsoft.AppCenter.MacOS.Bindings;
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter
{
@ -13,7 +13,7 @@ namespace Microsoft.AppCenter
get => _httpNetworkAdapter;
set
{
MSACDependencyConfiguration.HttpClient = new MacOSHttpClientAdapter(value);
MSACDependencyConfiguration.HttpClient = new AppleHttpClientAdapter(value);
_httpNetworkAdapter = value;
}
}

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Microsoft.AppCenter.iOS.Bindings;
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter
{

Просмотреть файл

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>{C9DC2286-37E4-467A-9DFB-593444265B74}</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration" />
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)AppCenter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)AppCenterLog.cs" />
<Compile Include="$(MSBuildThisFileDirectory)DependencyConfiguration.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Device.cs" />
<Compile Include="$(MSBuildThisFileDirectory)AppleHttpClientAdapter.cs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{C9DC2286-37E4-467A-9DFB-593444265B74}</ProjectGuid>
</PropertyGroup>
<Import Project="Microsoft.AppCenter.Shared.Apple.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -8,5 +8,6 @@ namespace Microsoft.AppCenter
/// </summary>
public interface IAppCenterService
{
/* This interface should remain empty */
}
}

Просмотреть файл

@ -13,5 +13,7 @@
<Compile Include="$(MSBuildThisFileDirectory)HttpResponse.cs" />
<Compile Include="$(MSBuildThisFileDirectory)IHttpNetworkAdapter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)HttpException.cs" />
<Compile Include="$(MSBuildThisFileDirectory)AppCenterService.cs" />
<Compile Include="$(MSBuildThisFileDirectory)IAppCenterService.cs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</ProjectGuid>
<ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.iOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.iOS.Bindings</AssemblyName>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t=Externals-Apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf externals/apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CustomCommands>
<CustomCommands>
<Command>
<type>BeforeBuild</type>
<command>sh build.sh -t=Externals-Apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
<Command>
<type>AfterClean</type>
<command>rm -rf externals/apple</command>
<workingdir>${SolutionDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenter.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,37 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Reflection;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.iOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Microsoft Corp. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.0.0")]
[assembly: AssemblyFileVersion("4.5.4.0")]
[assembly: AssemblyInformationalVersion("4.5.4-SNAPSHOT")]

Просмотреть файл

@ -1,53 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
namespace Microsoft.AppCenter
{
using iOSMessageProvider = Microsoft.AppCenter.iOS.Bindings.MSACLogMessageProvider;
using iOSLogger = Microsoft.AppCenter.iOS.Bindings.MSACWrapperLogger;
using iOSLogLevel = Microsoft.AppCenter.iOS.Bindings.MSACLogLevel;
public static partial class AppCenterLog
{
/// <summary>
/// The log tag for this SDK. All logs emitted at the SDK level will contain this tag.
/// </summary>
public const string LogTag = nameof(AppCenter) + "Xamarin";
public static void Verbose(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Verbose);
}
public static void Debug(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Debug);
}
public static void Info(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Info);
}
public static void Warn(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Warning);
}
public static void Error(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Error);
}
public static void Assert(string tag, string message)
{
iOSMessageProvider msg_provider = () => { return message; };
iOSLogger.MSACWrapperLog(msg_provider, tag, iOSLogLevel.Assert);
}
}
}

Просмотреть файл

@ -1,9 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
namespace Microsoft.AppCenter
{
public abstract class AppCenterService : IAppCenterService
{
}
}

Просмотреть файл

@ -1,21 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Microsoft.AppCenter.iOS.Bindings;
namespace Microsoft.AppCenter
{
static partial class DependencyConfiguration
{
private static IHttpNetworkAdapter _httpNetworkAdapter;
private static IHttpNetworkAdapter PlatformHttpNetworkAdapter
{
get => _httpNetworkAdapter;
set
{
MSACDependencyConfiguration.HttpClient = new IosHttpClientAdapter(value);
_httpNetworkAdapter = value;
}
}
}
}

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
namespace Microsoft.AppCenter
{
public interface IAppCenterService
{
/* This interface should remain empty */
}
}

Просмотреть файл

@ -1,80 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Collections.Generic;
using System.Threading;
using Foundation;
using Microsoft.AppCenter.iOS.Bindings;
namespace Microsoft.AppCenter
{
internal class IosHttpClientAdapter : MSACHttpClientProtocol
{
private readonly IHttpNetworkAdapter _httpNetworkAdapter;
private MSACHttpClientDelegate _httpClientDelegate;
public IosHttpClientAdapter(IHttpNetworkAdapter httpNetworkAdapter)
{
_httpNetworkAdapter = httpNetworkAdapter;
}
public override void SendAsync(NSUrl url, NSString method, NSDictionary<NSString, NSString> headers, NSData data, MSACHttpRequestCompletionHandler completionHandler)
{
_httpClientDelegate?.WillSendHTTPRequestToURL(url, headers);
var managedHeaders = new Dictionary<string, string>();
if (headers == null)
{
managedHeaders = new Dictionary<string, string>();
}
else
{
foreach (KeyValuePair<NSObject, NSObject> header in headers)
{
managedHeaders[header.Key.ToString()] = header.Value.ToString();
}
}
_httpNetworkAdapter.SendAsync(url.ToString(), method, managedHeaders, data?.ToString(), CancellationToken.None).ContinueWith(t =>
{
var innerException = t.Exception?.InnerException;
if (innerException is HttpException)
{
var response = (innerException as HttpException).HttpResponse;
completionHandler(NSData.FromString(response.Content), new NSHttpUrlResponse(url, response.StatusCode, "1.1", new NSDictionary()), null);
}
else if (innerException != null)
{
var userInfo = NSDictionary.FromObjectAndKey(new NSString("stackTrace"), new NSString(innerException.ToString()));
completionHandler(null, null, new NSError(new NSString(".NET SDK"), 1, userInfo));
}
else
{
var response = t.Result;
completionHandler(NSData.FromString(response.Content), new NSHttpUrlResponse(url, response.StatusCode, "1.1", new NSDictionary()), null);
}
});
}
public override void SendAsync(NSUrl url, NSString method, NSDictionary<NSString, NSString> headers, NSData data, NSArray retryIntervals, bool compressionEnabled, MSACHttpRequestCompletionHandler completionHandler)
{
SendAsync(url, method, headers, data, completionHandler);
}
public override void Pause()
{
}
public override void Resume()
{
}
public override void SetEnabled(bool enabled)
{
}
public override void SetDelegate(MSACHttpClientDelegate httpClientDelegate)
{
_httpClientDelegate = httpClientDelegate;
}
}
}

Просмотреть файл

@ -4,7 +4,7 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}</ProjectGuid>
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter</RootNamespace>
<AssemblyName>Microsoft.AppCenter</AssemblyName>
@ -12,6 +12,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -25,6 +26,7 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Debug\Microsoft.AppCenter.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -37,36 +39,36 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Release\Microsoft.AppCenter.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<Compile Include="IAppCenterService.cs" />
<Compile Include="AppCenter.cs" />
<Compile Include="AppCenterService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="AppCenterLog.cs" />
<Compile Include="Device.cs" />
<Compile Include="DependencyConfiguration.cs" />
<Compile Include="IosHttpClientAdapter.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj">
<Project>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</Project>
<Name>Microsoft.AppCenter.iOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Info.plist" />
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems')" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ItemGroup>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenter.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
<LinkerFlags>-lsqlite3</LinkerFlags>
<Frameworks>CoreTelephony Security SystemConfiguration</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Shared.Apple\Microsoft.AppCenter.Shared.Apple.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Shared.Xamarin\Microsoft.AppCenter.Shared.Xamarin.projitems')" />
<Import Project="..\Microsoft.AppCenter.Shared\Microsoft.AppCenter.Shared.projitems" Label="Shared" />
<PropertyGroup>

Просмотреть файл

@ -3,15 +3,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Foundation;
using Microsoft.AppCenter.Analytics.Apple.Bindings;
namespace Microsoft.AppCenter.Analytics
{
using System.Linq;
using System.Threading.Tasks;
using iOSAnalytics = iOS.Bindings.MSACAnalytics;
/// <summary>
/// Analytics feature.
/// </summary>
@ -25,10 +24,10 @@ namespace Microsoft.AppCenter.Analytics
/// Internal SDK property not intended for public use.
/// </summary>
/// <value>
/// The iOS SDK Analytics bindings type.
/// The Apple SDK Analytics bindings type.
/// </value>
[Preserve]
public static Type BindingType => typeof(iOSAnalytics);
public static Type BindingType => typeof(MSACAnalytics);
/// <summary>
/// Check whether the Analytics service is enabled or not.
@ -36,7 +35,7 @@ namespace Microsoft.AppCenter.Analytics
/// <returns>A task with result being true if enabled, false if disabled.</returns>
public static Task<bool> IsEnabledAsync()
{
return Task.FromResult(iOSAnalytics.IsEnabled());
return Task.FromResult(MSACAnalytics.IsEnabled());
}
/// <summary>
@ -45,7 +44,7 @@ namespace Microsoft.AppCenter.Analytics
/// <returns>A task to monitor the operation.</returns>
public static Task SetEnabledAsync(bool enabled)
{
iOSAnalytics.SetEnabled(enabled);
MSACAnalytics.SetEnabled(enabled);
return Task.FromResult(default(object));
}
@ -54,7 +53,7 @@ namespace Microsoft.AppCenter.Analytics
/// </summary>
internal static void Pause()
{
iOSAnalytics.Pause();
MSACAnalytics.Pause();
}
/// <summary>
@ -62,7 +61,7 @@ namespace Microsoft.AppCenter.Analytics
/// </summary>
internal static void Resume()
{
iOSAnalytics.Resume();
MSACAnalytics.Resume();
}
/// <summary>
@ -71,8 +70,8 @@ namespace Microsoft.AppCenter.Analytics
/// </summary>
//public static bool AutoPageTrackingEnabled
//{
// get { return iOSAnalytics.IsAutoPageTrackingEnabled(); }
// set { iOSAnalytics.SetAutoPageTrackingEnabled(value); }
// get { return MSACAnalytics.IsAutoPageTrackingEnabled(); }
// set { MSACAnalytics.SetAutoPageTrackingEnabled(value); }
//}
/// <summary>
@ -84,10 +83,10 @@ namespace Microsoft.AppCenter.Analytics
{
if (properties != null)
{
iOSAnalytics.TrackEvent(name, StringDictToNSDict(properties));
MSACAnalytics.TrackEvent(name, StringDictToNSDict(properties));
return;
}
iOSAnalytics.TrackEvent(name);
MSACAnalytics.TrackEvent(name);
}
/// <summary>
@ -95,7 +94,7 @@ namespace Microsoft.AppCenter.Analytics
/// </summary>
public static void EnableManualSessionTracker()
{
iOSAnalytics.EnableManualSessionTracker();
MSACAnalytics.EnableManualSessionTracker();
}
/// <summary>
@ -103,7 +102,7 @@ namespace Microsoft.AppCenter.Analytics
/// </summary>
public static void StartSession()
{
iOSAnalytics.StartSession();
MSACAnalytics.StartSession();
}
///// <summary>
@ -115,15 +114,15 @@ namespace Microsoft.AppCenter.Analytics
//{
// if (properties != null)
// {
// iOSAnalytics.TrackPage(name, StringDictToNSDict(properties));
// MSACAnalytics.TrackPage(name, StringDictToNSDict(properties));
// return;
// }
// iOSAnalytics.TrackPage(name);
// MSACAnalytics.TrackPage(name);
//}
internal static void UnsetInstance()
{
iOSAnalytics.ResetSharedInstance();
MSACAnalytics.ResetSharedInstance();
}
private static NSDictionary StringDictToNSDict(IDictionary<string, string> dict)

Просмотреть файл

@ -3,7 +3,7 @@
using Foundation;
namespace Microsoft.AppCenter.Analytics.iOS.Bindings
namespace Microsoft.AppCenter.Analytics.Apple.Bindings
{
// @interface MSACAnalytics : MSACService
[BaseType(typeof(NSObject))]

Просмотреть файл

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-ios;net6.0-macos</TargetFrameworks>
<IsBindingProject>true</IsBindingProject>
<Optimize>true</Optimize>
<Copyright>Microsoft Corp. All rights reserved.</Copyright>
<Product>Microsoft.AppCenter.Analytics</Product>
<Company>Microsoft Corporation</Company>
<Version>4.5.4-SNAPSHOT</Version>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>4.5.4.0</FileVersion>
<RootNamespace>Microsoft.AppCenter.Analytics</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Analytics</AssemblyName>
<AssemblyTitle>Microsoft.AppCenter.Analytics</AssemblyTitle>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\Microsoft.AppCenter.Analytics.xml</DocumentationFile>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<NoBindingEmbedding>false</NoBindingEmbedding>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterAnalytics.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterAnalytics.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.AppleUnified\Microsoft.AppCenter.AppleUnified.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
namespace Microsoft.AppCenter.Analytics.iOS.Bindings
namespace Microsoft.AppCenter.Analytics.Apple.Bindings
{
}

Просмотреть файл

@ -1,108 +0,0 @@
using Foundation;
namespace Microsoft.AppCenter.Analytics.MacOS.Bindings
{
// @interface MSACAnalytics : MSACService
[BaseType(typeof(NSObject))]
interface MSACAnalytics
{
// +(void)setEnabled:(BOOL)isEnabled;
[Static]
[Export("setEnabled:")]
void SetEnabled(bool isEnabled);
// +(BOOL)isEnabled;
[Static]
[Export("isEnabled")]
bool IsEnabled();
// +(void)pause;
[Static]
[Export("pause")]
void Pause();
// +(void)resume;
[Static]
[Export("resume")]
void Resume();
// +(void)trackEvent:(NSString *)eventName;
[Static]
[Export("trackEvent:")]
void TrackEvent([NullAllowed] string eventName);
// +(void)trackEvent:(NSString *)eventName withProperties:(NSDictionary *)properties;
[Static]
[Export("trackEvent:withProperties:")]
void TrackEvent([NullAllowed] string eventName, [NullAllowed] NSDictionary properties);
// +(void)setDelegate:(id<MSACAnalyticsDelegate> _Nullable)delegate;
[Static]
[Export("setDelegate:")]
void SetDelegate([NullAllowed] MSACAnalyticsDelegate analyticsDelegate);
// + (void)resetSharedInstance
[Static]
[Export("resetSharedInstance")]
void ResetSharedInstance();
// + (void)enableManualSessionTracker
[Static]
[Export("enableManualSessionTracker")]
void EnableManualSessionTracker();
// + (void)startSession
[Static]
[Export("startSession")]
void StartSession();
}
// @protocol MSACAnalyticsDelegate <NSObject>
[Protocol, Model]
[BaseType(typeof(NSObject))]
interface MSACAnalyticsDelegate
{
//@optional - (void)analytics:(MSACAnalytics*)analytics willSendEventLog:(MSACEventLog*)eventLog;
[Export("analytics:willSendEventLog:")]
void WillSendEventLog(MSACAnalytics analytics, MSACEventLog eventLog);
//@optional - (void)analytics:(MSACAnalytics*)analytics didSucceedSendingEventLog:(MSACEventLog*)eventLog;
[Export("analytics:didSucceedSendingEventLog:")]
void DidSucceedSendingEventLog(MSACAnalytics analytics, MSACEventLog eventLog);
//@optional - (void)analytics:(MSACAnalytics*)analytics didFailSendingEventLog:(MSACEventLog*)eventLog withError:(NSError*)error;
[Export("analytics:didFailSendingEventLog:withError:")]
void DidFailSendingEventLog(MSACAnalytics analytics, MSACEventLog eventLog, NSError error);
}
// @interface MSACLogWithProperties : MSACAbstractLog
[BaseType(typeof(NSObject))]
interface MSACLogWithProperties
{
//@property(nonatomic) NSDictionary<NSString*, NSString*>* properties;
[Export("properties")]
NSDictionary<NSString, NSString> Properties { get; set; }
}
//@interface MSACEventLog : MSACLogWithProperties
[BaseType(typeof(MSACLogWithProperties))]
interface MSACEventLog : MSACLogWithProperties
{
//@property(nonatomic) NSString *eventId;
[Export("eventId")]
string EventId { get; set; }
//@property(nonatomic) NSString *name;
[Export("name")]
string Name { get; set; }
}
//@interface MSACPageLog : MSACLogWithProperties
[BaseType(typeof(MSACLogWithProperties))]
interface MSACPageLog : MSACLogWithProperties
{
//@property(nonatomic) NSString *name;
[Export("name")]
string Name { get; set; }
}
}

Просмотреть файл

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D00918DD-BAC4-4AD4-A866-056CBE780AB2}</ProjectGuid>
<ProjectTypeGuids>{810C163F-4746-4721-8B8E-88A3673A62EA};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.Analytics.MacOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Analytics.MacOS.Bindings</AssemblyName>
<MacResourcePrefix>Resources</MacResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants />
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterAnalytics.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
<Frameworks>IOKit</Frameworks>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,34 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: AssemblyMetadata("IsTrimmable", "False")]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.Analytics.MacOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("${AuthorCopyright}")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

Просмотреть файл

@ -1,5 +0,0 @@
using System;
namespace Microsoft.AppCenter.Analytics.MacOS.Bindings
{
}

Просмотреть файл

@ -1,106 +0,0 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Foundation;
namespace Microsoft.AppCenter.Analytics
{
using System.Linq;
using System.Threading.Tasks;
using MacOSAnalytics = MacOS.Bindings.MSACAnalytics;
/// <summary>
/// Analytics feature.
/// </summary>
public class Analytics : AppCenterService
{
internal Analytics()
{
}
/// <summary>
/// Internal SDK property not intended for public use.
/// </summary>
/// <value>
/// The MacOS SDK Analytics bindings type.
/// </value>
[Preserve]
public static Type BindingType => typeof(MacOSAnalytics);
/// <summary>
/// Check whether the Analytics service is enabled or not.
/// </summary>
/// <returns>A task with result being true if enabled, false if disabled.</returns>
public static Task<bool> IsEnabledAsync()
{
return Task.FromResult(MacOSAnalytics.IsEnabled());
}
/// <summary>
/// Enable or disable the Analytics service.
/// </summary>
/// <returns>A task to monitor the operation.</returns>
public static Task SetEnabledAsync(bool enabled)
{
MacOSAnalytics.SetEnabled(enabled);
return Task.FromResult(default(object));
}
/// <summary>
/// Pause the Analytics service.
/// </summary>
internal static void Pause()
{
MacOSAnalytics.Pause();
}
/// <summary>
/// Resume the Analytics service.
/// </summary>
internal static void Resume()
{
MacOSAnalytics.Resume();
}
/// <summary>
/// Track a custom event.
/// </summary>
/// <param name="name">An event name.</param>
/// <param name="properties">Optional properties.</param>
public static void TrackEvent(string name, [Optional] IDictionary<string, string> properties)
{
if (properties != null)
{
MacOSAnalytics.TrackEvent(name, StringDictToNSDict(properties));
return;
}
MacOSAnalytics.TrackEvent(name);
}
/// <summary>
/// Enable manual session tracker.
/// </summary>
public static void EnableManualSessionTracker()
{
MacOSAnalytics.EnableManualSessionTracker();
}
/// <summary>
/// Start a new session if manual session tracker is enabled, otherwise do nothing.
/// </summary>
public static void StartSession()
{
MacOSAnalytics.StartSession();
}
internal static void UnsetInstance()
{
MacOSAnalytics.ResetSharedInstance();
}
private static NSDictionary StringDictToNSDict(IDictionary<string, string> dict)
{
return NSDictionary.FromObjectsAndKeys(dict.Values.ToArray(), dict.Keys.ToArray());
}
}
}

Просмотреть файл

@ -14,6 +14,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -30,9 +31,10 @@
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler />
<LinkMode />
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -47,9 +49,10 @@
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler />
<LinkMode />
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@ -57,22 +60,28 @@
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Compile Include="Analytics.cs" />
<Compile Include="..\Microsoft.AppCenter.Analytics.AppleUnified\Analytics.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.Analytics.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.Analytics.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterAnalytics.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.MacOS\Microsoft.AppCenter.MacOS.csproj">
<Project>{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}</Project>
<Name>Microsoft.AppCenter.MacOS</Name>
</ProjectReference>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.MacOS.Bindings\Microsoft.AppCenter.MacOS.Bindings.csproj">
<Project>{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}</Project>
<Name>Microsoft.AppCenter.MacOS.Bindings</Name>
</ProjectReference>
<ProjectReference Include="..\Microsoft.AppCenter.Analytics.MacOS.Bindings\Microsoft.AppCenter.Analytics.MacOS.Bindings.csproj">
<Project>{D00918DD-BAC4-4AD4-A866-056CBE780AB2}</Project>
<Name>Microsoft.AppCenter.Analytics.MacOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,6 +0,0 @@
<Project>
<Target Name="FixAppCenterAnalyticsSymlink" AfterTargets="_CollectFrameworks">
<Message Text="symlinking AppCenterAnalytics" />
<Exec Command="cd $(AppBundleDir)\Contents\Frameworks\AppCenterAnalytics.framework\ ; rm AppCenterAnalytics ; ln -s Versions\A\AppCenterAnalytics AppCenterAnalytics" />
</Target>
</Project>

Просмотреть файл

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}</ProjectGuid>
<ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.Analytics.iOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Analytics.iOS.Bindings</AssemblyName>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="Structs.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterAnalytics.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,37 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Reflection;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.Analytics.iOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Microsoft Corp. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.0.0")]
[assembly: AssemblyFileVersion("4.5.4.0")]
[assembly: AssemblyInformationalVersion("4.5.4-SNAPSHOT")]

Просмотреть файл

@ -12,6 +12,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -25,6 +26,7 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Debug\Microsoft.AppCenter.Analytics.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -37,25 +39,32 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Release\Microsoft.AppCenter.Analytics.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<Compile Include="Analytics.cs" />
<Compile Include="..\Microsoft.AppCenter.Analytics.AppleUnified\Analytics.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.AppCenter.Analytics.iOS.Bindings\Microsoft.AppCenter.Analytics.iOS.Bindings.csproj">
<Project>{45EA6818-8759-4E48-BD7A-E240E4D4B0F7}</Project>
<Name>Microsoft.AppCenter.Analytics.iOS.Bindings</Name>
</ProjectReference>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.Analytics.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.Analytics.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterAnalytics.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS\Microsoft.AppCenter.iOS.csproj">
<Project>{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}</Project>
<Name>Microsoft.AppCenter.iOS</Name>
@ -64,5 +73,5 @@
<ItemGroup>
<None Include="Info.plist" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.0</TargetFramework>
<Optimize>true</Optimize>
@ -22,4 +22,4 @@
<Folder Include="Properties\" />
</ItemGroup>
<Target Name="GetPackagingOutputs" />
</Project>
</Project>

Просмотреть файл

@ -81,7 +81,7 @@
<Name>Microsoft.AppCenter.Android.Bindings</Name>
</ProjectReference>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
</Project>
</Project>

Просмотреть файл

@ -1,9 +1,12 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using Foundation;
using ObjCRuntime;
using CoreFoundation;
using Microsoft.AppCenter.Apple.Bindings;
namespace Microsoft.AppCenter.Crashes.MacOS.Bindings
namespace Microsoft.AppCenter.Crashes.Apple.Bindings
{
// @interface MSACErrorReport : NSObject
[BaseType(typeof(NSObject))]
@ -39,7 +42,7 @@ namespace Microsoft.AppCenter.Crashes.MacOS.Bindings
// @property (readonly, nonatomic) MSACDevice * device;
[Export("device")]
Microsoft.AppCenter.MacOS.Bindings.MSACDevice Device { get; }
MSACDevice Device { get; }
// @property (readonly, assign, nonatomic) NSUInteger appProcessIdentifier;
[Export("appProcessIdentifier")]
@ -291,4 +294,4 @@ namespace Microsoft.AppCenter.Crashes.MacOS.Bindings
[Export("setCrashHandlerSetupDelegate:")]
void SetCrashHandlerSetupDelegate(MSACCrashHandlerSetupDelegate del);
}
}
}

Просмотреть файл

@ -8,71 +8,69 @@ using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Foundation;
using Microsoft.AppCenter.Crashes.iOS.Bindings;
using Microsoft.AppCenter.Crashes.Apple.Bindings;
namespace Microsoft.AppCenter.Crashes
{
using iOSCrashes = iOS.Bindings.MSACCrashes;
public partial class Crashes
{
/// <summary>
/// Internal SDK property not intended for public use.
/// </summary>
/// <value>
/// The iOS SDK Crashes bindings type.
/// The Apple SDK Crashes bindings type.
/// </value>
[Preserve]
public static Type BindingType => typeof(iOSCrashes);
public static Type BindingType => typeof(MSACCrashes);
static Task<bool> PlatformIsEnabledAsync()
{
return Task.FromResult(iOSCrashes.IsEnabled());
return Task.FromResult(MSACCrashes.IsEnabled());
}
static Task PlatformSetEnabledAsync(bool enabled)
{
iOSCrashes.SetEnabled(enabled);
MSACCrashes.SetEnabled(enabled);
return Task.FromResult(default(object));
}
static Task<bool> PlatformHasCrashedInLastSessionAsync()
{
return Task.FromResult(iOSCrashes.HasCrashedInLastSession);
return Task.FromResult(MSACCrashes.HasCrashedInLastSession);
}
static Task<ErrorReport> PlatformGetLastSessionCrashReportAsync()
{
return Task.Run(() =>
{
var msReport = iOSCrashes.LastSessionCrashReport;
var msReport = MSACCrashes.LastSessionCrashReport;
return (msReport == null) ? null : new ErrorReport(msReport);
});
}
static Task<bool> PlatformHasReceivedMemoryWarningInLastSessionAsync()
{
return Task.FromResult(iOSCrashes.HasReceivedMemoryWarningInLastSession);
return Task.FromResult(MSACCrashes.HasReceivedMemoryWarningInLastSession);
}
static void PlatformNotifyUserConfirmation(UserConfirmation confirmation)
{
MSACUserConfirmation iosUserConfirmation;
MSACUserConfirmation appleUserConfirmation;
switch (confirmation)
{
case UserConfirmation.Send:
iosUserConfirmation = MSACUserConfirmation.Send;
appleUserConfirmation = MSACUserConfirmation.Send;
break;
case UserConfirmation.DontSend:
iosUserConfirmation = MSACUserConfirmation.DontSend;
appleUserConfirmation = MSACUserConfirmation.DontSend;
break;
case UserConfirmation.AlwaysSend:
iosUserConfirmation = MSACUserConfirmation.Always;
appleUserConfirmation = MSACUserConfirmation.Always;
break;
default:
throw new ArgumentOutOfRangeException(nameof(confirmation), confirmation, null);
}
iOSCrashes.NotifyWithUserConfirmation(iosUserConfirmation);
MSACCrashes.NotifyWithUserConfirmation(appleUserConfirmation);
}
static void PlatformTrackError(Exception exception, IDictionary<string, string> properties, ErrorAttachmentLog[] attachments)
@ -93,7 +91,7 @@ namespace Microsoft.AppCenter.Crashes
}
}
}
MSACCrashes.TrackException(GenerateiOSException(exception, false), propertyDictionary, attachmentArray);
MSACCrashes.TrackException(GenerateAppleException(exception, false), propertyDictionary, attachmentArray);
}
/// <summary>
@ -109,10 +107,10 @@ namespace Microsoft.AppCenter.Crashes
static Crashes()
{
/* Perform custom setup around the native SDK's for setting signal handlers */
iOSCrashes.DisableMachExceptionHandler();
MSACCrashes.DisableMachExceptionHandler();
MSACWrapperCrashesHelper.SetCrashHandlerSetupDelegate(_crashesInitializationDelegate);
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
iOSCrashes.SetUserConfirmationHandler((reports) =>
MSACCrashes.SetUserConfirmationHandler((reports) =>
{
if (ShouldAwaitUserConfirmation != null)
{
@ -120,14 +118,14 @@ namespace Microsoft.AppCenter.Crashes
}
return false;
});
iOSCrashes.SetDelegate(_crashesDelegate);
MSACCrashes.SetDelegate(_crashesDelegate);
}
static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var systemException = e.ExceptionObject as Exception;
AppCenterLog.Error(LogTag, "Unhandled Exception:", systemException);
var exception = GenerateiOSException(systemException, true);
var exception = GenerateAppleException(systemException, true);
var exceptionBytes = CrashesUtils.SerializeException(systemException) ?? new byte[0];
var wrapperExceptionData = NSData.FromArray(exceptionBytes);
var wrapperException = new MSACWrapperException
@ -137,16 +135,20 @@ namespace Microsoft.AppCenter.Crashes
ProcessId = new NSNumber(Process.GetCurrentProcess().Id)
};
AppCenterLog.Info(LogTag, "Saving wrapper exception...");
#if __IOS__
MSACWrapperExceptionManager.SaveWrapperException(wrapperException);
#elif __MACOS__
MSACWrapperExceptionManager.SaveWrapperExceptionAndCrashReport(wrapperException);
#endif
AppCenterLog.Info(LogTag, "Saved wrapper exception.");
}
static MSACWrapperExceptionModel GenerateiOSException(Exception exception, bool structuredFrames)
static MSACWrapperExceptionModel GenerateAppleException(Exception exception, bool structuredFrames)
{
var msException = new MSACWrapperExceptionModel();
msException.Type = exception.GetType().FullName;
msException.Message = exception.Message ?? "";
msException.StackTrace = exception.StackTrace;
msException.StackTrace = AnonymizePath(exception.StackTrace);
msException.Frames = structuredFrames ? GenerateStackFrames(exception) : null;
msException.WrapperSdkName = WrapperSdk.Name;
@ -157,12 +159,12 @@ namespace Microsoft.AppCenter.Crashes
{
foreach (Exception innerException in aggregateException.InnerExceptions)
{
innerExceptions.Add(GenerateiOSException(innerException, structuredFrames));
innerExceptions.Add(GenerateAppleException(innerException, structuredFrames));
}
}
else if (exception.InnerException != null)
{
innerExceptions.Add(GenerateiOSException(exception.InnerException, structuredFrames));
innerExceptions.Add(GenerateAppleException(exception.InnerException, structuredFrames));
}
msException.InnerExceptions = innerExceptions.Count > 0 ? innerExceptions.ToArray() : null;
@ -209,7 +211,7 @@ namespace Microsoft.AppCenter.Crashes
// Bridge between .NET events/callbacks and Apple native SDK
class CrashesDelegate : MSACCrashesDelegate
{
public override bool CrashesShouldProcessErrorReport(iOSCrashes crashes, MSACErrorReport msReport)
public override bool CrashesShouldProcessErrorReport(MSACCrashes crashes, MSACErrorReport msReport)
{
if (ShouldProcessErrorReport == null)
{
@ -219,7 +221,7 @@ namespace Microsoft.AppCenter.Crashes
return ShouldProcessErrorReport(report);
}
public override NSArray AttachmentsWithCrashes(iOSCrashes crashes, MSACErrorReport msReport)
public override NSArray AttachmentsWithCrashes(MSACCrashes crashes, MSACErrorReport msReport)
{
if (GetErrorAttachments == null)
{
@ -246,7 +248,7 @@ namespace Microsoft.AppCenter.Crashes
return null;
}
public override void CrashesWillSendErrorReport(iOSCrashes crashes, MSACErrorReport msReport)
public override void CrashesWillSendErrorReport(MSACCrashes crashes, MSACErrorReport msReport)
{
if (SendingErrorReport != null)
{
@ -259,7 +261,7 @@ namespace Microsoft.AppCenter.Crashes
}
}
public override void CrashesDidSucceedSendingErrorReport(iOSCrashes crashes, MSACErrorReport msReport)
public override void CrashesDidSucceedSendingErrorReport(MSACCrashes crashes, MSACErrorReport msReport)
{
if (SentErrorReport != null)
{
@ -273,7 +275,7 @@ namespace Microsoft.AppCenter.Crashes
}
public override void CrashesDidFailSendingErrorReport(iOSCrashes crashes, MSACErrorReport msReport, NSError error)
public override void CrashesDidFailSendingErrorReport(MSACCrashes crashes, MSACErrorReport msReport, NSError error)
{
if (FailedToSendErrorReport != null)
{
@ -295,7 +297,7 @@ namespace Microsoft.AppCenter.Crashes
private static void PlatformUnsetInstance()
{
iOSCrashes.ResetSharedInstance();
MSACCrashes.ResetSharedInstance();
}
public static bool UseMonoRuntimeSignalMethods { get; set; } = true;

Просмотреть файл

@ -5,7 +5,7 @@ using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using Microsoft.AppCenter.Crashes.iOS.Bindings;
using Microsoft.AppCenter.Crashes.Apple.Bindings;
namespace Microsoft.AppCenter.Crashes
{

Просмотреть файл

@ -2,7 +2,7 @@
// Licensed under the MIT License.
using Foundation;
using Microsoft.AppCenter.Crashes.iOS.Bindings;
using Microsoft.AppCenter.Crashes.Apple.Bindings;
namespace Microsoft.AppCenter.Crashes
{
@ -10,22 +10,22 @@ namespace Microsoft.AppCenter.Crashes
{
internal MSACErrorAttachmentLog internalAttachment { get; }
ErrorAttachmentLog(MSACErrorAttachmentLog iosAttachment)
ErrorAttachmentLog(MSACErrorAttachmentLog appleAttachment)
{
internalAttachment = iosAttachment;
internalAttachment = appleAttachment;
}
static ErrorAttachmentLog PlatformAttachmentWithText(string text, string fileName)
{
MSACErrorAttachmentLog iosAttachment = MSACErrorAttachmentLog.AttachmentWithText(text, fileName);
return new ErrorAttachmentLog(iosAttachment);
MSACErrorAttachmentLog appleAttachment = MSACErrorAttachmentLog.AttachmentWithText(text, fileName);
return new ErrorAttachmentLog(appleAttachment);
}
static ErrorAttachmentLog PlatformAttachmentWithBinary(byte[] data, string filename, string contentType)
{
NSData nsdata = NSData.FromArray(data);
MSACErrorAttachmentLog iosAttachment = MSACErrorAttachmentLog.AttachmentWithBinaryData(nsdata, filename, contentType);
return new ErrorAttachmentLog(iosAttachment);
MSACErrorAttachmentLog appleAttachment = MSACErrorAttachmentLog.AttachmentWithBinaryData(nsdata, filename, contentType);
return new ErrorAttachmentLog(appleAttachment);
}
}
}

Просмотреть файл

@ -3,7 +3,7 @@
using System;
using Foundation;
using Microsoft.AppCenter.Crashes.iOS.Bindings;
using Microsoft.AppCenter.Crashes.Apple.Bindings;
namespace Microsoft.AppCenter.Crashes
{

Просмотреть файл

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-ios;net6.0-macos</TargetFrameworks>
<IsBindingProject>true</IsBindingProject>
<Optimize>true</Optimize>
<Copyright>Microsoft Corp. All rights reserved.</Copyright>
<Product>Microsoft.AppCenter.Crashes</Product>
<Company>Microsoft Corporation</Company>
<Version>4.5.4-SNAPSHOT</Version>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>4.5.4.0</FileVersion>
<RootNamespace>Microsoft.AppCenter.Crashes</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Crashes</AssemblyName>
<AssemblyTitle>Microsoft.AppCenter.Crashes</AssemblyTitle>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\Microsoft.AppCenter.Crashes.xml</DocumentationFile>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<NoBindingEmbedding>false</NoBindingEmbedding>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterCrashes.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterCrashes.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.AppleUnified\Microsoft.AppCenter.AppleUnified.csproj" />
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -4,7 +4,8 @@
using System;
using ObjCRuntime;
namespace Microsoft.AppCenter.Crashes.iOS.Bindings {
namespace Microsoft.AppCenter.Crashes.Apple.Bindings
{
[Native]
public enum MSACErrorLogSetting : ulong
{

Просмотреть файл

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}</ProjectGuid>
<ProjectTypeGuids>{810C163F-4746-4721-8B8E-88A3673A62EA};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.Crashes.MacOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Crashes.MacOS.Bindings</AssemblyName>
<MacResourcePrefix>Resources</MacResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants />
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.MacOS.Bindings\Microsoft.AppCenter.MacOS.Bindings.csproj">
<Project>{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}</Project>
<Name>Microsoft.AppCenter.MacOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterCrashes.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
<Frameworks />
<LinkerFlags>-lc++</LinkerFlags>
<IsCxx>True</IsCxx>
<SmartLink>False</SmartLink>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,34 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: AssemblyMetadata("IsTrimmable", "False")]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.Crashes.MacOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("${AuthorCopyright}")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

Просмотреть файл

@ -1,21 +0,0 @@
using System;
using ObjCRuntime;
namespace Microsoft.AppCenter.Crashes.MacOS.Bindings
{
[Native]
public enum MSACErrorLogSetting : ulong
{
Disabled = 0,
AlwaysAsk = 1,
AutoSend = 2
}
[Native]
public enum MSACUserConfirmation : ulong
{
DontSend = 0,
Send = 1,
Always = 2
}
}

Просмотреть файл

@ -1,6 +0,0 @@
<Project>
<Target Name="FixAppCenterCrashesSymlink" AfterTargets="_CollectFrameworks">
<Message Text="symlinking AppCenterCrashes" />
<Exec Command="cd $(AppBundleDir)\Contents\Frameworks\AppCenterCrashes.framework\ ; rm AppCenterCrashes ; ln -s Versions\A\AppCenterCrashes AppCenterCrashes" />
</Target>
</Project>

Просмотреть файл

@ -1,294 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Foundation;
using Microsoft.AppCenter.Crashes.MacOS.Bindings;
namespace Microsoft.AppCenter.Crashes
{
using MacOSCrashes = MacOS.Bindings.MSACCrashes;
public partial class Crashes
{
/// <summary>
/// Internal SDK property not intended for public use.
/// </summary>
/// <value>
/// The macOS SDK Crashes bindings type.
/// </value>
[Preserve]
public static Type BindingType => typeof(MacOSCrashes);
static Task<bool> PlatformIsEnabledAsync()
{
return Task.FromResult(MacOSCrashes.IsEnabled());
}
static Task PlatformSetEnabledAsync(bool enabled)
{
MacOSCrashes.SetEnabled(enabled);
return Task.FromResult(default(object));
}
static Task<bool> PlatformHasCrashedInLastSessionAsync()
{
return Task.FromResult(MacOSCrashes.HasCrashedInLastSession);
}
static Task<ErrorReport> PlatformGetLastSessionCrashReportAsync()
{
return Task.Run(() =>
{
var msReport = MacOSCrashes.LastSessionCrashReport;
return (msReport == null) ? null : new ErrorReport(msReport);
});
}
static Task<bool> PlatformHasReceivedMemoryWarningInLastSessionAsync()
{
return Task.FromResult(MacOSCrashes.HasReceivedMemoryWarningInLastSession);
}
static void PlatformNotifyUserConfirmation(UserConfirmation confirmation)
{
MSACUserConfirmation macosUserConfirmation;
switch (confirmation)
{
case UserConfirmation.Send:
macosUserConfirmation = MSACUserConfirmation.Send;
break;
case UserConfirmation.DontSend:
macosUserConfirmation = MSACUserConfirmation.DontSend;
break;
case UserConfirmation.AlwaysSend:
macosUserConfirmation = MSACUserConfirmation.Always;
break;
default:
throw new ArgumentOutOfRangeException(nameof(confirmation), confirmation, null);
}
MacOSCrashes.NotifyWithUserConfirmation(macosUserConfirmation);
}
static void PlatformTrackError(Exception exception, IDictionary<string, string> properties, ErrorAttachmentLog[] attachments)
{
NSDictionary propertyDictionary = properties != null ? StringDictToNSDict(properties) : new NSDictionary();
NSMutableArray attachmentArray = new NSMutableArray();
if (attachments != null)
{
foreach (var attachment in attachments)
{
if (attachment?.internalAttachment != null)
{
attachmentArray.Add(attachment.internalAttachment);
}
else
{
AppCenterLog.Warn(LogTag, "Skipping null ErrorAttachmentLog in Crashes.TrackError.");
}
}
}
MSACCrashes.TrackException(GenerateMacOSException(exception, false), propertyDictionary, attachmentArray);
}
/// <summary>
/// We keep the reference to avoid it being freed, inlining this object will cause listeners not to be called.
/// </summary>
static readonly CrashesInitializationDelegate _crashesInitializationDelegate = new CrashesInitializationDelegate();
/// <summary>
/// We keep the reference to avoid it being freed, inlining this object will cause listeners not to be called.
/// </summary>
static readonly CrashesDelegate _crashesDelegate = new CrashesDelegate();
static Crashes()
{
/* Perform custom setup around the native SDK's for setting signal handlers */
MacOSCrashes.DisableMachExceptionHandler();
MSACWrapperCrashesHelper.SetCrashHandlerSetupDelegate(_crashesInitializationDelegate);
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
MacOSCrashes.SetUserConfirmationHandler((reports) =>
{
if (ShouldAwaitUserConfirmation != null)
{
return ShouldAwaitUserConfirmation();
}
return false;
});
MacOSCrashes.SetDelegate(_crashesDelegate);
}
static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var systemException = e.ExceptionObject as Exception;
AppCenterLog.Error(LogTag, "Unhandled Exception:", systemException);
var exception = GenerateMacOSException(systemException, true);
var exceptionBytes = CrashesUtils.SerializeException(systemException) ?? new byte[0];
var wrapperExceptionData = NSData.FromArray(exceptionBytes);
var wrapperException = new MSACWrapperException
{
Exception = exception,
ExceptionData = wrapperExceptionData,
ProcessId = new NSNumber(Process.GetCurrentProcess().Id)
};
AppCenterLog.Info(LogTag, "Saving wrapper exception...");
MSACWrapperExceptionManager.SaveWrapperExceptionAndCrashReport(wrapperException);
AppCenterLog.Info(LogTag, "Saved wrapper exception.");
}
static MSACWrapperExceptionModel GenerateMacOSException(Exception exception, bool structuredFrames)
{
var msException = new MSACWrapperExceptionModel();
msException.Type = exception.GetType().FullName;
msException.Message = exception.Message ?? "";
msException.StackTrace = AnonymizePath(exception.StackTrace);
msException.Frames = structuredFrames ? GenerateStackFrames(exception) : null;
msException.WrapperSdkName = WrapperSdk.Name;
var aggregateException = exception as AggregateException;
var innerExceptions = new List<MSACWrapperExceptionModel>();
if (aggregateException?.InnerExceptions != null)
{
foreach (Exception innerException in aggregateException.InnerExceptions)
{
innerExceptions.Add(GenerateMacOSException(innerException, structuredFrames));
}
}
else if (exception.InnerException != null)
{
innerExceptions.Add(GenerateMacOSException(exception.InnerException, structuredFrames));
}
msException.InnerExceptions = innerExceptions.Count > 0 ? innerExceptions.ToArray() : null;
return msException;
}
#pragma warning disable XS0001 // Find usages of mono todo items
static MSACStackFrame[] GenerateStackFrames(Exception e)
{
var trace = new StackTrace(e, true);
var frameList = new List<MSACStackFrame>();
for (int i = 0; i < trace.FrameCount; ++i)
{
StackFrame dotnetFrame = trace.GetFrame(i);
if (dotnetFrame.GetMethod() == null) continue;
var msFrame = new MSACStackFrame();
msFrame.Address = null;
msFrame.Code = null;
msFrame.MethodName = dotnetFrame.GetMethod().Name;
msFrame.ClassName = dotnetFrame.GetMethod().DeclaringType?.FullName;
msFrame.LineNumber = dotnetFrame.GetFileLineNumber() == 0 ? null : (NSNumber)(dotnetFrame.GetFileLineNumber());
msFrame.FileName = AnonymizePath(dotnetFrame.GetFileName());
frameList.Add(msFrame);
}
return frameList.ToArray();
}
#pragma warning restore XS0001 // Find usages of mono todo items
static string AnonymizePath(string path)
{
if ((path == null) || (path.Count() == 0) || !path.Contains("/Users/"))
{
return path;
}
string pattern = "(/Users/[^/]+/)";
return Regex.Replace(path, pattern, "/Users/USER/");
}
// Bridge between .NET events/callbacks and Apple native SDK
class CrashesDelegate : MSACCrashesDelegate
{
public override bool CrashesShouldProcessErrorReport(MacOSCrashes crashes, MSACErrorReport msReport)
{
if (ShouldProcessErrorReport == null)
{
return true;
}
var report = new ErrorReport(msReport);
return ShouldProcessErrorReport(report);
}
public override NSArray AttachmentsWithCrashes(MacOSCrashes crashes, MSACErrorReport msReport)
{
if (GetErrorAttachments == null)
{
return null;
}
var report = new ErrorReport(msReport);
var attachments = GetErrorAttachments(report);
if (attachments != null)
{
var nsArray = new NSMutableArray();
foreach (var attachment in attachments)
{
if (attachment != null)
{
nsArray.Add(attachment.internalAttachment);
}
else
{
AppCenterLog.Warn(LogTag, "Skipping null ErrorAttachmentLog in Crashes.GetErrorAttachments.");
}
}
return nsArray;
}
return null;
}
public override void CrashesWillSendErrorReport(MacOSCrashes crashes, MSACErrorReport msReport)
{
if (SendingErrorReport != null)
{
var report = new ErrorReport(msReport);
var e = new SendingErrorReportEventArgs
{
Report = report
};
SendingErrorReport(null, e);
}
}
public override void CrashesDidSucceedSendingErrorReport(MacOSCrashes crashes, MSACErrorReport msReport)
{
if (SentErrorReport != null)
{
var report = new ErrorReport(msReport);
var e = new SentErrorReportEventArgs
{
Report = report
};
SentErrorReport(null, e);
}
}
public override void CrashesDidFailSendingErrorReport(MacOSCrashes crashes, MSACErrorReport msReport, NSError error)
{
if (FailedToSendErrorReport != null)
{
var report = new ErrorReport(msReport);
var e = new FailedToSendErrorReportEventArgs
{
Report = report,
Exception = error
};
FailedToSendErrorReport(null, e);
}
}
}
private static NSDictionary StringDictToNSDict(IDictionary<string, string> dict)
{
return NSDictionary.FromObjectsAndKeys(dict.Values.ToArray(), dict.Keys.ToArray());
}
private static void PlatformUnsetInstance()
{
MacOSCrashes.ResetSharedInstance();
}
public static bool UseMonoRuntimeSignalMethods { get; set; } = true;
}
}

Просмотреть файл

@ -1,106 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using Microsoft.AppCenter.Crashes.MacOS.Bindings;
namespace Microsoft.AppCenter.Crashes
{
/*
* This class is required so that Mono can handle the signals SIGSEGV and SIGBUS, which should not always
* cause a crash, but do if the native SDK's crash reporting service handles them.
*/
public class CrashesInitializationDelegate : MSACCrashHandlerSetupDelegate
{
[DllImport("libc")]
private static extern int sigaction(Signal sig, IntPtr act, IntPtr oact);
private enum Signal
{
SIGFPE = 8,
SIGBUS = 10,
SIGSEGV = 11
}
IntPtr sigbus;
IntPtr sigsegv;
IntPtr sigfpe;
/* This constructor is required for Mono's internal purposes. Deleting it can cause crashes. */
public CrashesInitializationDelegate(IntPtr handle) : base(handle)
{
}
public CrashesInitializationDelegate()
{
}
// In Mono 4.8, it is possible to chain the mono signal handlers to the PLCrashReporter signal handlers, so
// if the APIs for this are available, it is preferable to use them.
public override void WillSetUpCrashHandlers()
{
if (Crashes.UseMonoRuntimeSignalMethods)
{
var type = Type.GetType("Mono.Runtime");
var removeSignalHandlers = type?.GetMethod("RemoveSignalHandlers", BindingFlags.Public | BindingFlags.Static);
if (removeSignalHandlers != null)
{
removeSignalHandlers.Invoke(null, null);
AppCenterLog.Info(Crashes.LogTag, "Temporarily remove signal handlers while native crash reporter is initialized (Mono 4.8+).");
return;
}
}
// Mono 4.8+ APIs must be unavailable
// Allocate space to store the Mono handlers
sigbus = Marshal.AllocHGlobal(512);
sigsegv = Marshal.AllocHGlobal(512);
sigfpe = Marshal.AllocHGlobal(512);
// Store Mono's SIGSEGV, SIGBUS, and SIGFPE handlers
sigaction(Signal.SIGBUS, IntPtr.Zero, sigbus);
sigaction(Signal.SIGSEGV, IntPtr.Zero, sigsegv);
sigaction(Signal.SIGFPE, IntPtr.Zero, sigfpe);
AppCenterLog.Info(Crashes.LogTag, "Temporarily remove signal handlers while native crash reporter is initialized (Mono < 4.8).");
}
// In Mono 4.8, it is possible to chain the mono signal handlers to the PLCrashReporter signal handlers, so
// if the APIs for this are available, it is preferable to use them.
public override void DidSetUpCrashHandlers()
{
if (Crashes.UseMonoRuntimeSignalMethods)
{
var type = Type.GetType("Mono.Runtime");
var installSignalHandlers = type?.GetMethod("InstallSignalHandlers", BindingFlags.Public | BindingFlags.Static);
if (installSignalHandlers != null)
{
installSignalHandlers.Invoke(null, null);
AppCenterLog.Info(Crashes.LogTag, "Restore signal handlers for Mono 4.8+.");
return;
}
}
// Mono 4.8+ APIs must be unavailable
// Restore Mono SIGSEGV, SIGBUS, and SIGFPE handlers
sigaction(Signal.SIGBUS, sigbus, IntPtr.Zero);
sigaction(Signal.SIGSEGV, sigsegv, IntPtr.Zero);
sigaction(Signal.SIGFPE, sigfpe, IntPtr.Zero);
// Release previously allocated space
Marshal.FreeHGlobal(sigbus);
Marshal.FreeHGlobal(sigsegv);
Marshal.FreeHGlobal(sigfpe);
AppCenterLog.Info(Crashes.LogTag, "Restore signal handlers for Mono < 4.8.");
}
public override bool ShouldEnableUncaughtExceptionHandler()
{
return false;
}
}
}

Просмотреть файл

@ -1,28 +0,0 @@
using Foundation;
using Microsoft.AppCenter.Crashes.MacOS.Bindings;
namespace Microsoft.AppCenter.Crashes
{
public partial class ErrorAttachmentLog
{
internal MSACErrorAttachmentLog internalAttachment { get; }
ErrorAttachmentLog(MSACErrorAttachmentLog macAttachment)
{
internalAttachment = macAttachment;
}
static ErrorAttachmentLog PlatformAttachmentWithText(string text, string fileName)
{
MSACErrorAttachmentLog macAttachment = MSACErrorAttachmentLog.AttachmentWithText(text, fileName);
return new ErrorAttachmentLog(macAttachment);
}
static ErrorAttachmentLog PlatformAttachmentWithBinary(byte[] data, string filename, string contentType)
{
NSData nsdata = NSData.FromArray(data);
MSACErrorAttachmentLog macAttachment = MSACErrorAttachmentLog.AttachmentWithBinaryData(nsdata, filename, contentType);
return new ErrorAttachmentLog(macAttachment);
}
}
}

Просмотреть файл

@ -1,41 +0,0 @@
using System;
using Foundation;
using Microsoft.AppCenter.Crashes.MacOS.Bindings;
namespace Microsoft.AppCenter.Crashes
{
public partial class ErrorReport
{
internal ErrorReport(MSACErrorReport msReport)
{
// If Id is not null we have loaded the report from the cache
if (Id != null)
{
return;
}
Id = msReport.IncidentIdentifier;
AppStartTime = NSDateToDateTimeOffset(msReport.AppStartTime);
AppErrorTime = NSDateToDateTimeOffset(msReport.AppErrorTime);
Device = msReport.Device == null ? null : new Device(msReport.Device);
AndroidDetails = null;
iOSDetails = null;
MacOSDetails = new MacOSErrorDetails(msReport.ReporterKey,
msReport.Signal,
msReport.ExceptionName,
msReport.ExceptionReason,
(uint)msReport.AppProcessIdentifier);
MSACWrapperException wrapperException = MSACWrapperExceptionManager.LoadWrapperExceptionWithUUID(msReport.IncidentIdentifier);
if (wrapperException != null && wrapperException.ExceptionData != null && wrapperException.ExceptionData.Length > 0)
{
StackTrace = CrashesUtils.DeserializeException(wrapperException.ExceptionData.ToArray());
}
}
private DateTimeOffset NSDateToDateTimeOffset(NSDate date)
{
DateTime dateTime = (DateTime)date;
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
return dateTime;
}
}
}

Просмотреть файл

@ -14,6 +14,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -30,9 +31,10 @@
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler />
<LinkMode />
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -47,9 +49,10 @@
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler />
<LinkMode />
<LinkMode>None</LinkMode>
<XamMacArch>x86_64</XamMacArch>
<AOTMode>None</AOTMode>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@ -58,27 +61,27 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ErrorReport.cs" />
<Compile Include="ErrorAttachmentLog.cs" />
<Compile Include="Crashes.cs" />
<Compile Include="CrashesUtils.cs" />
<Compile Include="CrashesInitializationDelegate.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\Crashes.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ErrorAttachmentLog.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ErrorReport.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\CrashesUtils.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\CrashesInitializationDelegate.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.Crashes.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.AppCenter.Crashes.MacOS.Bindings\Microsoft.AppCenter.Crashes.MacOS.Bindings.csproj">
<Project>{85C929EF-7FF4-4C43-967E-DFA816EFF5E4}</Project>
<Name>Microsoft.AppCenter.Crashes.MacOS.Bindings</Name>
</ProjectReference>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.MacOS\Microsoft.AppCenter.MacOS.csproj">
<Project>{727A9E5A-566A-4DC5-B62B-8F7CA17661B8}</Project>
<Name>Microsoft.AppCenter.MacOS</Name>
</ProjectReference>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.MacOS.Bindings\Microsoft.AppCenter.MacOS.Bindings.csproj">
<Project>{E97116CF-0A1F-41B0-A5A2-A5C4A3464BD4}</Project>
<Name>Microsoft.AppCenter.MacOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems')" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.ObjcBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -6,6 +6,6 @@
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<Import Project="Microsoft.AppCenter.Crashes.Shared.Targets.projitems" Label="Shared" />
<Import Project="Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,292 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using Foundation;
using ObjCRuntime;
using CoreFoundation;
namespace Microsoft.AppCenter.Crashes.iOS.Bindings
{
// @interface MSACErrorReport : NSObject
[BaseType(typeof(NSObject))]
interface MSACErrorReport
{
// @property (readonly, nonatomic) NSString * incidentIdentifier;
[Export("incidentIdentifier")]
string IncidentIdentifier { get; }
// @property (readonly, nonatomic) NSString * reporterKey;
[Export("reporterKey")]
string ReporterKey { get; }
// @property (readonly, nonatomic) NSString * signal;
[Export("signal")]
string Signal { get; }
// @property (readonly, nonatomic) NSString * exceptionName;
[Export("exceptionName")]
string ExceptionName { get; }
// @property (readonly, nonatomic) NSString * exceptionReason;
[Export("exceptionReason")]
string ExceptionReason { get; }
// @property (readonly, nonatomic, strong) NSDate * appStartTime;
[Export("appStartTime", ArgumentSemantic.Strong)]
NSDate AppStartTime { get; }
// @property (readonly, nonatomic, strong) NSDate * appErrorTime;
[Export("appErrorTime", ArgumentSemantic.Strong)]
NSDate AppErrorTime { get; }
// @property (readonly, nonatomic) MSACDevice * device;
[Export("device")]
Microsoft.AppCenter.iOS.Bindings.MSACDevice Device { get; }
// @property (readonly, assign, nonatomic) NSUInteger appProcessIdentifier;
[Export("appProcessIdentifier")]
nuint AppProcessIdentifier { get; }
// -(BOOL)isAppKill;
[Export("isAppKill")]
//[Verify(MethodToProperty)]
bool IsAppKill { get; }
}
// typedef bool (^MSACUserConfirmationHandler)(NSArray<MSACErrorReport *> * _Nonnull);
delegate bool MSACUserConfirmationHandler(MSACErrorReport[] reports);
// @interface MSACCrashes
[BaseType(typeof(NSObject))]
interface MSACCrashes
{
// +(void)setEnabled:(BOOL)isEnabled;
[Static]
[Export("setEnabled:")]
void SetEnabled(bool isEnabled);
// +(BOOL)isEnabled;
[Static]
[Export("isEnabled")]
bool IsEnabled();
// +(void)generateTestCrash;
[Static]
[Export("generateTestCrash")]
void GenerateTestCrash();
//+(void)trackException:(MSACExceptionModel *)exception withProperties:(NSDictionary *)properties attachments:(nullable NSArray<MSACErrorAttachmentLog *> *)attachments;
[Static]
[Export("trackException:withProperties:attachments:")]
void TrackException(MSACExceptionModel exception, NSDictionary properties, NSArray attachments);
//(BOOL)hasCrashedInLastSession;
[Static]
[Export("hasCrashedInLastSession")]
bool HasCrashedInLastSession { get; }
//(BOOL)hasReceivedMemoryWarningInLastSession;
[Static]
[Export("hasReceivedMemoryWarningInLastSession")]
bool HasReceivedMemoryWarningInLastSession { get; }
//(MSACErrorReport * _Nullable)lastSessionCrashReport;
[Static]
[NullAllowed, Export("lastSessionCrashReport")]
MSACErrorReport LastSessionCrashReport { get; }
//(void)setDelegate:(id<MSACCrashesDelegate> _Nullable)delegate;
[Static]
[Export("setDelegate:")]
void SetDelegate([NullAllowed] MSACCrashesDelegate crashesDelegate);
//(void)setUserConfirmationHandler:(MSACUserConfirmationHandler _Nullable)userConfirmationHandler;
[Static]
[Export("setUserConfirmationHandler:")]
void SetUserConfirmationHandler([NullAllowed] MSACUserConfirmationHandler userConfirmationHandler);
//(void)notifyWithUserConfirmation:(MSACUserConfirmation)userConfirmation;
[Static]
[Export("notifyWithUserConfirmation:")]
void NotifyWithUserConfirmation(MSACUserConfirmation userConfirmation);
//+(void)disableMachExceptionHandler;
[Static]
[Export("disableMachExceptionHandler")]
void DisableMachExceptionHandler();
[Static]
[Export("resetSharedInstance")]
void ResetSharedInstance();
}
// @protocol MSACCrashesDelegate <NSObject>
[Protocol, Model]
[BaseType(typeof(NSObject))]
interface MSACCrashesDelegate
{
// @optional -(BOOL)crashes:(MSACCrashes *)crashes shouldProcessErrorReport:(MSACErrorReport *)errorReport;
[Export("crashes:shouldProcessErrorReport:")]
bool CrashesShouldProcessErrorReport(MSACCrashes crashes, MSACErrorReport errorReport);
// @optional - (NSArray<MSACErrorAttachmentLog *> *)attachmentsWithCrashes:(MSACCrashes *)crashes forErrorReport:(MSACErrorReport *)errorReport;
[Export("attachmentsWithCrashes:forErrorReport:")]
NSArray AttachmentsWithCrashes(MSACCrashes crashes, MSACErrorReport errorReport);
// @optional -(void)crashes:(MSACCrashes *)crashes willSendErrorReport:(MSACErrorReport *)errorReport;
[Export("crashes:willSendErrorReport:")]
void CrashesWillSendErrorReport(MSACCrashes crashes, MSACErrorReport errorReport);
// @optional -(void)crashes:(MSACCrashes *)crashes didSucceedSendingErrorReport:(MSACErrorReport *)errorReport;
[Export("crashes:didSucceedSendingErrorReport:")]
void CrashesDidSucceedSendingErrorReport(MSACCrashes crashes, MSACErrorReport errorReport);
// @optional -(void)crashes:(MSACCrashes *)crashes didFailSendingErrorReport:(MSACErrorReport *)errorReport withError:(NSError *)error;
[Export("crashes:didFailSendingErrorReport:withError:")]
void CrashesDidFailSendingErrorReport(MSACCrashes crashes, MSACErrorReport errorReport, NSError error);
}
// @interface MSACErrorAttachmentLog : NSObject
[BaseType(typeof(NSObject))]
interface MSACErrorAttachmentLog
{
// + (MSACErrorAttachmentLog *)attachmentWithText:(NSString *)text filename:(NSString *)filename;
[Static]
[Export("attachmentWithText:filename:")]
MSACErrorAttachmentLog AttachmentWithText([NullAllowed] string text, [NullAllowed] string fileName);
// + (MSACErrorAttachmentLog *)attachmentWithBinary:(NSData *)data filename:(NSString*)filename contentType:(NSString*)contentType;
[Static]
[Export("attachmentWithBinary:filename:contentType:")]
MSACErrorAttachmentLog AttachmentWithBinaryData(NSData data, [NullAllowed] string filename, string contentType);
}
// @interface MSACExceptionModel : NSObject
[BaseType(typeof(NSObject))]
interface MSACExceptionModel
{
// @property (nonatomic) NSString * _Nonnull type;
[Export("type")]
string Type { get; set; }
// @property (nonatomic) NSString * _Nonnull message;
[Export("message")]
string Message { get; set; }
// @property (nonatomic) NSString * _Nullable stackTrace;
[NullAllowed, Export("stackTrace")]
string StackTrace { get; set; }
// @property (nonatomic) NSArray<MSACStackFrame *> * _Nullable frames;
[NullAllowed, Export("frames", ArgumentSemantic.Assign)]
MSACStackFrame[] Frames { get; set; }
}
// @interface MSACWrapperExceptionModel : MSACExceptionModel
[BaseType(typeof(MSACExceptionModel))]
interface MSACWrapperExceptionModel
{
// @property (nonatomic) NSArray<MSACException *> * _Nullable innerExceptions;
[NullAllowed, Export("innerExceptions", ArgumentSemantic.Assign)]
MSACWrapperExceptionModel[] InnerExceptions { get; set; }
// @property (nonatomic) NSString * _Nullable wrapperSdkName;
[NullAllowed, Export("wrapperSdkName")]
string WrapperSdkName { get; set; }
// -(BOOL)isEqual:(MSACWrapperExceptionModel * _Nullable)exception;
[Export("isEqual:")]
bool IsEqual([NullAllowed] MSACWrapperExceptionModel exception);
}
// @interface MSACStackFrame : NSObject
[BaseType(typeof(NSObject))]
interface MSACStackFrame
{
// @property (nonatomic) NSString * _Nullable address;
[NullAllowed, Export("address")]
string Address { get; set; }
// @property (nonatomic) NSString * _Nullable code;
[NullAllowed, Export("code")]
string Code { get; set; }
// @property (nonatomic) NSString * _Nullable className;
[NullAllowed, Export("className")]
string ClassName { get; set; }
// @property (nonatomic) NSString * _Nullable methodName;
[NullAllowed, Export("methodName")]
string MethodName { get; set; }
// @property (nonatomic) NSNumber * _Nullable lineNumber;
[NullAllowed, Export("lineNumber", ArgumentSemantic.Assign)]
NSNumber LineNumber { get; set; }
// @property (nonatomic) NSString * _Nullable fileName;
[NullAllowed, Export("fileName")]
string FileName { get; set; }
// -(BOOL)isEqual:(MSACStackFrame * _Nullable)frame;
[Export("isEqual:")]
bool IsEqual([NullAllowed] MSACStackFrame frame);
}
[Protocol, Model]
[BaseType(typeof(NSObject))]
interface MSACCrashHandlerSetupDelegate
{
//- (void) willSetUpCrashHandlers;
[Export("willSetUpCrashHandlers")]
void WillSetUpCrashHandlers();
//- (void) didSetUpCrashHandlers;
[Export("didSetUpCrashHandlers")]
void DidSetUpCrashHandlers();
//- (BOOL) shouldEnableUncaughtExceptionHandler;
[Export("shouldEnableUncaughtExceptionHandler")]
bool ShouldEnableUncaughtExceptionHandler();
}
// @interface MSACWrapperExceptionManager : NSObject
[BaseType(typeof(NSObject))]
interface MSACWrapperExceptionManager
{
//+ (void) saveWrapperException:(MSACWrapperException*) wrapperException;
[Static]
[Export("saveWrapperException:")]
void SaveWrapperException(MSACWrapperException wrapperException);
//+ (MSACWrapperException*) loadWrapperExceptionWithUUID:(NSString*) uuid;
[Static]
[Export("loadWrapperExceptionWithUUIDString:")]
MSACWrapperException LoadWrapperExceptionWithUUID(string uuidString);
}
[BaseType(typeof(NSObject))]
interface MSACWrapperException
{
//@property(nonatomic, strong) MSACException* exception;
[Export("modelException")]
MSACWrapperExceptionModel Exception { get; set; }
//@property(nonatomic, strong) NSData* exceptionData;
[Export("exceptionData")]
NSData ExceptionData { get; set; }
[Export("processId")]
NSNumber ProcessId { get; set; }
}
[BaseType(typeof(NSObject))]
interface MSACWrapperCrashesHelper
{
//+ (void) setCrashHandlerSetupDelegate:(id<MSACCrashHandlerSetupDelegate>) delegate;
[Static]
[Export("setCrashHandlerSetupDelegate:")]
void SetCrashHandlerSetupDelegate(MSACCrashHandlerSetupDelegate del);
}
}

Просмотреть файл

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FCEB9729-627A-4964-B853-1649CA1FA76D}</ProjectGuid>
<ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.Crashes.iOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Crashes.iOS.Bindings</AssemblyName>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj">
<Project>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</Project>
<Name>Microsoft.AppCenter.iOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterCrashes.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
<Frameworks>
</Frameworks>
<LinkerFlags>-lc++</LinkerFlags>
<IsCxx>True</IsCxx>
<SmartLink>False</SmartLink>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,37 +0,0 @@
using Foundation;
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Reflection;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.Crashes.iOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Microsoft Corp. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.0.0")]
[assembly: AssemblyFileVersion("4.5.4.0")]
[assembly: AssemblyInformationalVersion("4.5.4-SNAPSHOT")]

Просмотреть файл

@ -1,29 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Text;
namespace Microsoft.AppCenter.Crashes
{
internal static class CrashesUtils
{
internal static byte[] SerializeException(Exception exception)
{
return Encoding.UTF8.GetBytes(exception.ToString());
}
internal static string DeserializeException(byte[] exceptionBytes)
{
try
{
return Encoding.UTF8.GetString(exceptionBytes);
}
catch (Exception e)
{
AppCenterLog.Warn(Crashes.LogTag, "Failed to deserialize exception for client side inspection.", e);
}
return null;
}
}
}

Просмотреть файл

@ -12,6 +12,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -21,13 +22,12 @@
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchLink>
</MtouchLink>
<MtouchHttpClientHandler>
</MtouchHttpClientHandler>
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>
</MtouchTlsProvider>
<DocumentationFile>bin\Debug\Microsoft.AppCenter.Crashes.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
@ -36,17 +36,15 @@
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchLink>
</MtouchLink>
<MtouchHttpClientHandler>
</MtouchHttpClientHandler>
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>
</MtouchTlsProvider>
<DocumentationFile>bin\Release\Microsoft.AppCenter.Crashes.xml</DocumentationFile>
<DocumentationFile>bin\Release\Microsoft.AppCenter.Crashes.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
@ -54,31 +52,31 @@
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<Compile Include="Crashes.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ErrorAttachmentLog.cs" />
<Compile Include="ErrorReport.cs" />
<Compile Include="CrashesUtils.cs" />
<Compile Include="CrashesInitializationDelegate.cs" />
<None Include="Info.plist" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\Crashes.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ErrorAttachmentLog.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ErrorReport.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\CrashesUtils.cs" />
<Compile Include="..\Microsoft.AppCenter.Crashes.AppleUnified\CrashesInitializationDelegate.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.Crashes.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.Crashes.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.AppCenter.Crashes.iOS.Bindings\Microsoft.AppCenter.Crashes.iOS.Bindings.csproj">
<Project>{FCEB9729-627A-4964-B853-1649CA1FA76D}</Project>
<Name>Microsoft.AppCenter.Crashes.iOS.Bindings</Name>
</ProjectReference>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS\Microsoft.AppCenter.iOS.csproj">
<Project>{B87370CD-AF51-45E0-AA15-3E0ABC0C30A0}</Project>
<Name>Microsoft.AppCenter.iOS</Name>
</ProjectReference>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj">
<Project>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</Project>
<Name>Microsoft.AppCenter.iOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Info.plist" />
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Crashes.Shared.Targets\Microsoft.AppCenter.Crashes.Shared.Targets.projitems')" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared.Xamarin\Microsoft.AppCenter.Crashes.Shared.Xamarin.projitems" Label="Shared" />
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\Microsoft.AppCenter.Crashes.Shared\Microsoft.AppCenter.Crashes.Shared.projitems" Label="Shared" />
<PropertyGroup>
<TargetFramework>netstandard1.0</TargetFramework>
@ -23,4 +23,4 @@
<Folder Include="Properties\" />
</ItemGroup>
<Target Name="GetPackagingOutputs" />
</Project>
</Project>

Просмотреть файл

@ -3,7 +3,7 @@
using Foundation;
namespace Microsoft.AppCenter.Distribute.iOS.Bindings
namespace Microsoft.AppCenter.Distribute.Apple.Bindings
{
// @interface MSACDistribute : MSACService
[BaseType(typeof(NSObject))]

Просмотреть файл

@ -4,15 +4,13 @@
using System;
using System.Threading.Tasks;
using Foundation;
using Microsoft.AppCenter.Distribute.iOS.Bindings;
using Microsoft.AppCenter.Distribute.Apple.Bindings;
namespace Microsoft.AppCenter.Distribute
{
using iOSDistribute = iOS.Bindings.MSACDistribute;
public static partial class Distribute
{
static Type _internalBindingType = typeof(iOSDistribute);
static Type _internalBindingType = typeof(MSACDistribute);
[Preserve]
public static Type BindingType
@ -25,23 +23,23 @@ namespace Microsoft.AppCenter.Distribute
static Task<bool> PlatformIsEnabledAsync()
{
return Task.FromResult(iOSDistribute.IsEnabled());
return Task.FromResult(MSACDistribute.IsEnabled());
}
static Task PlatformSetEnabledAsync(bool enabled)
{
iOSDistribute.SetEnabled(enabled);
MSACDistribute.SetEnabled(enabled);
return Task.FromResult(default(object));
}
static void PlatformSetInstallUrl(string installUrl)
{
iOSDistribute.SetInstallUrl(installUrl);
MSACDistribute.SetInstallUrl(installUrl);
}
static void PlatformSetApiUrl(string apiUrl)
{
iOSDistribute.SetApiUrl(apiUrl);
MSACDistribute.SetApiUrl(apiUrl);
}
/// <summary>
@ -51,7 +49,7 @@ namespace Microsoft.AppCenter.Distribute
/// <param name="url">The url with parameters.</param>
public static void OpenUrl(NSUrl url)
{
iOSDistribute.OpenUrl(url);
MSACDistribute.OpenUrl(url);
}
/// <summary>
@ -87,7 +85,7 @@ namespace Microsoft.AppCenter.Distribute
if (_delegate == null && _releaseAvailableCallback != null)
{
_delegate = new Delegate();
iOSDistribute.SetDelegate(_delegate);
MSACDistribute.SetDelegate(_delegate);
}
}
}
@ -100,7 +98,7 @@ namespace Microsoft.AppCenter.Distribute
if (_delegate == null && _willExitAppCallback != null)
{
_delegate = new Delegate();
iOSDistribute.SetDelegate(_delegate);
MSACDistribute.SetDelegate(_delegate);
}
}
}
@ -113,7 +111,7 @@ namespace Microsoft.AppCenter.Distribute
if (_delegate == null && _noReleaseAvailableCallback != null)
{
_delegate = new Delegate();
iOSDistribute.SetDelegate(_delegate);
MSACDistribute.SetDelegate(_delegate);
}
}
}
@ -123,11 +121,11 @@ namespace Microsoft.AppCenter.Distribute
switch (updateAction)
{
case UpdateAction.Update:
iOSDistribute.NotifyUpdateAction(MSACUpdateAction.Update);
MSACDistribute.NotifyUpdateAction(MSACUpdateAction.Update);
break;
case UpdateAction.Postpone:
iOSDistribute.NotifyUpdateAction(MSACUpdateAction.Postpone);
MSACDistribute.NotifyUpdateAction(MSACUpdateAction.Postpone);
break;
}
}
@ -135,33 +133,33 @@ namespace Microsoft.AppCenter.Distribute
static void SetUpdateTrack(UpdateTrack updateTrack)
{
var updateTrackValue = (int)updateTrack;
iOSDistribute.SetUpdateTrack((MSACUpdateTrack)updateTrackValue);
MSACDistribute.SetUpdateTrack((MSACUpdateTrack)updateTrackValue);
}
static UpdateTrack GetUpdateTrack()
{
var updateTrackValue = (int)iOSDistribute.GetUpdateTrack();
var updateTrackValue = (int)MSACDistribute.GetUpdateTrack();
return (UpdateTrack)updateTrackValue;
}
static void PlatformCheckForUpdate()
{
iOSDistribute.CheckForUpdate();
MSACDistribute.CheckForUpdate();
}
static void PlatformDisableAutomaticCheckForUpdate()
{
iOSDistribute.DisableAutomaticCheckForUpdate();
MSACDistribute.DisableAutomaticCheckForUpdate();
}
private static void PlatformUnsetInstance()
{
iOSDistribute.ResetSharedInstance();
MSACDistribute.ResetSharedInstance();
}
public class Delegate : MSACDistributeDelegate
{
public override bool OnReleaseAvailable(iOSDistribute distribute, MSACReleaseDetails details)
public override bool OnReleaseAvailable(MSACDistribute distribute, MSACReleaseDetails details)
{
if (_releaseAvailableCallback != null)
{
@ -184,7 +182,7 @@ namespace Microsoft.AppCenter.Distribute
return false;
}
public override void WillExitApp(iOSDistribute distribute)
public override void WillExitApp(MSACDistribute distribute)
{
_willExitAppCallback?.Invoke();
}

Просмотреть файл

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-ios;net6.0-macos</TargetFrameworks>
<IsBindingProject>true</IsBindingProject>
<Optimize>true</Optimize>
<Copyright>Microsoft Corp. All rights reserved.</Copyright>
<Product>Microsoft.AppCenter.Distribute</Product>
<Company>Microsoft Corporation</Company>
<Version>4.5.4-SNAPSHOT</Version>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<FileVersion>4.5.4.0</FileVersion>
<RootNamespace>Microsoft.AppCenter.Distribute</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Distribute</AssemblyName>
<AssemblyTitle>Microsoft.AppCenter.Distribute</AssemblyTitle>
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\Microsoft.AppCenter.Distribute.xml</DocumentationFile>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<NoBindingEmbedding>false</NoBindingEmbedding>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<SupportedOSPlatformVersion>10.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MtouchLink>SdkOnly</MtouchLink>
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
</PropertyGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-ios'))">
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterDistribute.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.EndsWith('-macos'))">
<NativeReference Include="..\..\..\externals\apple\macOS\AppCenterDistribute.framework">
<Kind>Framework</Kind>
<ForceLoad>True</ForceLoad>
</NativeReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.AppleUnified\Microsoft.AppCenter.AppleUnified.csproj" />
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -4,7 +4,7 @@
using System;
using ObjCRuntime;
namespace Microsoft.AppCenter.Distribute.iOS.Bindings
namespace Microsoft.AppCenter.Distribute.Apple.Bindings
{
[Native]
public enum MSACUpdateAction : ulong

Просмотреть файл

@ -1,112 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}</ProjectGuid>
<ProjectTypeGuids>{8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.AppCenter.Distribute.iOS.Bindings</RootNamespace>
<AssemblyName>Microsoft.AppCenter.Distribute.iOS.Bindings</AssemblyName>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants></DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinition.cs" />
</ItemGroup>
<ItemGroup>
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj">
<Project>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</Project>
<Name>Microsoft.AppCenter.iOS.Bindings</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="..\..\..\externals\apple\ios\AppCenterDistribute.a">
<Kind>Static</Kind>
<SmartLink>False</SmartLink>
<ForceLoad>True</ForceLoad>
<WeakFrameworks>SafariServices AuthenticationServices</WeakFrameworks>
</NativeReference>
</ItemGroup>
<ItemGroup>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\Info.plist">
<Link>Resources\AppCenterDistributeResources.bundle\Info.plist</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\cs.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\cs.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\de.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\de.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\en.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\en.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\es.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\es.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\fr.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\fr.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\it.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\it.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\ja.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\ja.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\ko.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\ko.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\pl.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\pl.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\ru.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\ru.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\tr.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\tr.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\zh-Hans.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\zh-Hans.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
<BundleResource Include="..\..\..\externals\apple\ios\AppCenterDistributeResources.bundle\zh-Hant.lproj\AppCenterDistribute.strings">
<Link>Resources\AppCenterDistributeResources.bundle\zh-Hant.lproj\AppCenterDistribute.strings</Link>
</BundleResource>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,39 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Reflection;
using System.Runtime.CompilerServices;
using Foundation;
// This attribute allows you to mark your assemblies as “safe to link”.
// When the attribute is present, the linker—if enabled—will process the assembly
// even if youre using the “Link SDK assemblies only” option, which is the default for device builds.
[assembly: LinkerSafe]
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("Microsoft.AppCenter.Distribute.iOS.Bindings")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft Corporation")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Microsoft Corp. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.0.0")]
[assembly: AssemblyFileVersion("4.5.4.0")]
[assembly: AssemblyInformationalVersion("4.5.4-SNAPSHOT")]

Просмотреть файл

@ -12,6 +12,7 @@
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\appcenter-public-key.snk</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -30,6 +31,7 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Debug\Microsoft.AppCenter.Distribute.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@ -43,10 +45,10 @@
<MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
<MtouchTlsProvider>Default</MtouchTlsProvider>
<DocumentationFile>bin\Release\Microsoft.AppCenter.Distribute.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
@ -55,18 +57,19 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Distribute.cs" />
<Compile Include="..\Microsoft.AppCenter.Distribute.AppleUnified\Distribute.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\AppCenter\Microsoft.AppCenter.iOS.Bindings\Microsoft.AppCenter.iOS.Bindings.csproj">
<Project>{5490FECC-63B2-4543-B4FE-EDD8D1BD8351}</Project>
<Name>Microsoft.AppCenter.iOS.Bindings</Name>
</ProjectReference>
<ProjectReference Include="..\Microsoft.AppCenter.Distribute.iOS.Bindings\Microsoft.AppCenter.Distribute.iOS.Bindings.csproj">
<Project>{278DFD3C-A0DD-4DD2-97C5-44EC4BEE8462}</Project>
<Name>Microsoft.AppCenter.Distribute.iOS.Bindings</Name>
</ProjectReference>
<ObjcBindingApiDefinition Include="..\Microsoft.AppCenter.Distribute.AppleUnified\ApiDefinition.cs">
<Link>ApiDefinition.cs</Link>
</ObjcBindingApiDefinition>
<ObjcBindingCoreSource Include="..\Microsoft.AppCenter.Distribute.AppleUnified\StructsAndEnums.cs">
<Link>StructsAndEnums.cs</Link>
</ObjcBindingCoreSource>
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems" Label="Shared" Condition="Exists('..\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ItemGroup>
<None Include="Info.plist" />
</ItemGroup>
<Import Project="..\Microsoft.AppCenter.Distribute.Shared\Microsoft.AppCenter.Distribute.Shared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,11 +1,8 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#tool nuget:?package=XamarinComponent
#addin nuget:?package=Cake.FileHelpers&version=3.0.0
#addin nuget:?package=Cake.Git&version=0.18.0
#addin nuget:?package=Cake.Incubator&version=2.0.2
#addin nuget:?package=Cake.Xamarin
#addin nuget:?package=Cake.FileHelpers&version=5.0.0
#addin nuget:?package=Cake.Incubator&version=7.0.0
#load "scripts/utility.cake"
#load "scripts/configuration/config-parser.cake"
@ -58,8 +55,11 @@ Task("Build")
.Does(() =>
{
var platformId = IsRunningOnUnix() ? "mac" : "windows";
var buildGroup = new BuildGroup(platformId);
buildGroup.ExecuteBuilds();
var buildGroups = BuildGroup.ReadBuildGroups(platformId);
foreach (var buildGroup in buildGroups)
{
buildGroup.ExecuteBuilds();
}
}).OnError(HandleError);
Task("PrepareAssemblies")
@ -84,10 +84,15 @@ Task("Externals-Android")
.Does(() =>
{
var zipFile = System.IO.Path.Combine(AndroidExternals, "android.zip");
if (FileExists(zipFile))
{
return;
}
CleanDirectory(AndroidExternals);
// Download zip file.
DownloadFile(AndroidUrl, zipFile);
using (VerboseVerbosity())
DownloadFile(AndroidUrl, zipFile);
Unzip(zipFile, AndroidExternals);
// Move binaries to externals/android so that linked files don't have versions
@ -101,25 +106,31 @@ Task("Externals-Apple")
.WithCriteria(() => IsRunningOnUnix())
.Does(() =>
{
CleanDirectory(AppleExternals);
var zipFile = System.IO.Path.Combine(AppleExternals, "apple.zip");
if (FileExists(zipFile))
{
return;
}
CleanDirectory(AppleExternals);
// Download zip file containing AppCenter frameworks.
DownloadFile(AppleUrl, zipFile);
// Unzip.
// StartProcess("unzipr", new ProcessSettings{ Arguments = $"{zipFile} -d {AppleExternals}" });
// Download zip file.
using (VerboseVerbosity())
DownloadFile(AppleUrl, zipFile);
using(var process = StartAndReturnProcess("unzip",
new ProcessSettings { Arguments =new ProcessArgumentBuilder()
.Append(zipFile)
.Append("-d")
.Append(AppleExternals)
new ProcessSettings
{
Arguments = new ProcessArgumentBuilder()
.Append(zipFile)
.Append("-d")
.Append(AppleExternals),
RedirectStandardOutput = true,
}))
{
process.WaitForExit();
// This should output 0 as valid arguments supplied
Information($"Exit code: {process.GetExitCode()}");
Information($"error: {process.GetStandardError()}, output: {process.GetStandardError()}");
process.WaitForExit(10000);
if (process.GetExitCode() != 0)
{
throw new Exception($"Failed to unzip {zipFile}");
}
}
var iosFrameworksLocation = System.IO.Path.Combine(AppleExternals, "AppCenter-SDK-Apple/iOS");

237
build.ps1
Просмотреть файл

@ -1,235 +1,16 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
##########################################################################
# This is the Cake bootstrapper script for PowerShell.
# This file was downloaded from https://github.com/cake-build/resources
# Feel free to change this file to fit your needs.
##########################################################################
$ErrorActionPreference = 'Stop'
<#
Set-Location -LiteralPath $PSScriptRoot
.SYNOPSIS
This is a Powershell script to bootstrap a Cake build.
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
$env:DOTNET_CLI_TELEMETRY_OPTOUT = '1'
$env:DOTNET_NOLOGO = '1'
.DESCRIPTION
This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
and execute your Cake build script with the parameters you provide.
dotnet tool restore
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
.PARAMETER Script
The build script to execute.
.PARAMETER Target
The build script target to run.
.PARAMETER Configuration
The build configuration to use.
.PARAMETER Verbosity
Specifies the amount of information to be displayed.
.PARAMETER ShowDescription
Shows description about tasks.
.PARAMETER DryRun
Performs a dry run.
.PARAMETER Experimental
Uses the nightly builds of the Roslyn script engine.
.PARAMETER Mono
Uses the Mono Compiler rather than the Roslyn script engine.
.PARAMETER SkipToolPackageRestore
Skips restoring of packages.
.PARAMETER ScriptArgs
Remaining arguments are added here.
.LINK
https://cakebuild.net
#>
[CmdletBinding()]
Param(
[string]$Script = "build.cake",
[string]$Target,
[string]$Configuration,
[ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
[string]$Verbosity = "diagnostic",
[switch]$ShowDescription,
[Alias("WhatIf", "Noop")]
[switch]$DryRun,
[switch]$Experimental,
[switch]$Mono,
[switch]$SkipToolPackageRestore,
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
[string[]]$ScriptArgs
)
[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
function MD5HashFile([string] $filePath)
{
if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
{
return $null
}
[System.IO.Stream] $file = $null;
[System.Security.Cryptography.MD5] $md5 = $null;
try
{
$md5 = [System.Security.Cryptography.MD5]::Create()
$file = [System.IO.File]::OpenRead($filePath)
return [System.BitConverter]::ToString($md5.ComputeHash($file))
}
finally
{
if ($file -ne $null)
{
$file.Dispose()
}
}
}
function GetProxyEnabledWebClient
{
$wc = New-Object System.Net.WebClient
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
$wc.Proxy = $proxy
return $wc
}
Write-Host "Preparing to run build script..."
if(!$PSScriptRoot){
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
}
$TOOLS_DIR = Join-Path $PSScriptRoot "tools"
$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins"
$MODULES_DIR = Join-Path $TOOLS_DIR "Modules"
$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config"
$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config"
# Make sure tools folder exists
if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
Write-Verbose -Message "Creating tools directory..."
New-Item -Path $TOOLS_DIR -Type directory | out-null
}
# Make sure that packages.config exist.
if (!(Test-Path $PACKAGES_CONFIG)) {
Write-Verbose -Message "Downloading packages.config..."
try {
$wc = GetProxyEnabledWebClient
$wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
Throw "Could not download packages.config."
}
}
# Try find NuGet.exe in path if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Trying to find nuget.exe in PATH..."
$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) }
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
$NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
}
}
# Try download NuGet.exe if not exists
if (!(Test-Path $NUGET_EXE)) {
Write-Verbose -Message "Downloading NuGet.exe..."
try {
$wc = GetProxyEnabledWebClient
$wc.DownloadFile($NUGET_URL, $NUGET_EXE)
} catch {
Throw "Could not download NuGet.exe."
}
}
# Save nuget.exe path to environment to be available to child processed
$ENV:NUGET_EXE = $NUGET_EXE
# Restore tools from NuGet?
if(-Not $SkipToolPackageRestore.IsPresent) {
Push-Location
Set-Location $TOOLS_DIR
# Check for changes in packages.config and remove installed tools if true.
[string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
Write-Verbose -Message "Missing or changed package.config hash..."
Remove-Item * -Recurse -Exclude packages.config,nuget.exe
}
Write-Verbose -Message "Restoring tools from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet tools."
}
else
{
$md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Restore addins from NuGet
if (Test-Path $ADDINS_PACKAGES_CONFIG) {
Push-Location
Set-Location $ADDINS_DIR
Write-Verbose -Message "Restoring addins from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet addins."
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Restore modules from NuGet
if (Test-Path $MODULES_PACKAGES_CONFIG) {
Push-Location
Set-Location $MODULES_DIR
Write-Verbose -Message "Restoring modules from NuGet..."
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`""
if ($LASTEXITCODE -ne 0) {
Throw "An error occured while restoring NuGet modules."
}
Write-Verbose -Message ($NuGetOutput | out-string)
Pop-Location
}
# Make sure that Cake has been installed.
if (!(Test-Path $CAKE_EXE)) {
Throw "Could not find Cake.exe at $CAKE_EXE"
}
# Build Cake arguments
$cakeArguments = @("$Script");
if ($Target) { $cakeArguments += "-target=$Target" }
if ($Configuration) { $cakeArguments += "-configuration=$Configuration" }
if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" }
if ($ShowDescription) { $cakeArguments += "-showdescription" }
if ($DryRun) { $cakeArguments += "-dryrun" }
if ($Experimental) { $cakeArguments += "-experimental" }
if ($Mono) { $cakeArguments += "-mono" }
$cakeArguments += $ScriptArgs
# Start Cake
Write-Host "Running build script..."
&$CAKE_EXE $cakeArguments --settings_skipverification=true
exit $LASTEXITCODE
dotnet cake @args
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }

118
build.sh
Просмотреть файл

@ -3,118 +3,14 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
##########################################################################
# This is the Cake bootstrapper script for Linux and OS X.
# This file was downloaded from https://github.com/cake-build/resources
# Feel free to change this file to fit your needs.
##########################################################################
set -euox pipefail
# Define directories.
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
TOOLS_DIR=$SCRIPT_DIR/tools
ADDINS_DIR=$TOOLS_DIR/Addins
MODULES_DIR=$TOOLS_DIR/Modules
NUGET_EXE=$TOOLS_DIR/nuget.exe
CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
PACKAGES_CONFIG=$TOOLS_DIR/packages.config
PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config
MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config
cd "$(dirname "${BASH_SOURCE[0]}")"
# Define md5sum or md5 depending on Linux/OSX
MD5_EXE=
if [[ "$(uname -s)" == "Darwin" ]]; then
MD5_EXE="md5 -r"
else
MD5_EXE="md5sum"
fi
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
# Define default arguments.
SCRIPT="build.cake"
CAKE_ARGUMENTS=()
dotnet tool restore
# Parse arguments.
for i in "$@"; do
case $1 in
-s|--script) SCRIPT="$2"; shift ;;
--) shift; CAKE_ARGUMENTS+=("$@"); break ;;
*) CAKE_ARGUMENTS+=("$1") ;;
esac
shift
done
# Make sure the tools folder exist.
if [ ! -d "$TOOLS_DIR" ]; then
mkdir "$TOOLS_DIR"
fi
# Make sure that packages.config exist.
if [ ! -f "$TOOLS_DIR/packages.config" ]; then
echo "Downloading packages.config..."
curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages
if [ $? -ne 0 ]; then
echo "An error occured while downloading packages.config."
exit 1
fi
fi
# Download NuGet if it does not exist.
if [ ! -f "$NUGET_EXE" ]; then
echo "Downloading NuGet..."
curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
if [ $? -ne 0 ]; then
echo "An error occured while downloading nuget.exe."
exit 1
fi
fi
# Restore tools from NuGet.
pushd "$TOOLS_DIR" >/dev/null
if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then
find . -type d ! -name . | xargs rm -rf
fi
mono "$NUGET_EXE" install -ExcludeVersion
if [ $? -ne 0 ]; then
echo "Could not restore NuGet tools."
exit 1
fi
$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5"
popd >/dev/null
# Restore addins from NuGet.
if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then
pushd "$ADDINS_DIR" >/dev/null
mono "$NUGET_EXE" install -ExcludeVersion
if [ $? -ne 0 ]; then
echo "Could not restore NuGet addins."
exit 1
fi
popd >/dev/null
fi
# Restore modules from NuGet.
if [ -f "$MODULES_PACKAGES_CONFIG" ]; then
pushd "$MODULES_DIR" >/dev/null
mono "$NUGET_EXE" install -ExcludeVersion
if [ $? -ne 0 ]; then
echo "Could not restore NuGet modules."
exit 1
fi
popd >/dev/null
fi
# Make sure that Cake has been installed.
if [ ! -f "$CAKE_EXE" ]; then
echo "Could not find Cake.exe at '$CAKE_EXE'."
exit 1
fi
# Start Cake
exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}" --settings_skipverification=true --verbosity=diagnostic
dotnet cake "$@"

Просмотреть файл

@ -1,2 +0,0 @@
[NuGet]
Source=https://api.nuget.org/v3/index.json

Просмотреть файл

@ -83,12 +83,14 @@
<!-- iOS -->
<file src="$ios_dir$/Microsoft.AppCenter.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.xml" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.iOS.Bindings.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.dll" target="lib/net6.0-ios9.0" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.xml" target="lib/net6.0-ios9.0" />
<!-- macOS -->
<file src="$macos_dir$/Microsoft.AppCenter.dll" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.xml" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.MacOS.Bindings.dll" target="lib/Xamarin.Mac" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.dll" target="lib/net6.0-macos10.10" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.xml" target="lib/net6.0-macos10.10" />
<!-- UWP -->
<file src="$uwp_dir$/Microsoft.AppCenter.dll" target="lib/uap10.0" />
@ -105,11 +107,11 @@
<!-- WindowsDesktop (WPF and WinForms) for .NET Core -->
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.dll" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.xml" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.xml" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.xml" target="lib/net5.0-windows7.0" />
<!-- WinUI-->
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.xml" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.xml" target="lib/net5.0-windows10.0.17763.0" />
</files>
</package>

Просмотреть файл

@ -33,12 +33,14 @@
<!-- iOS -->
<file src="$ios_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.Analytics.iOS.Bindings.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net6.0-ios9.0" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net6.0-ios9.0" />
<!-- macOS -->
<file src="$macos_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.Analytics.MacOS.Bindings.dll" target="lib/Xamarin.Mac" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net6.0-macos10.10" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net6.0-macos10.10" />
<!-- UWP -->
<file src="$uwp_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/uap10.0" />
@ -55,11 +57,11 @@
<!-- WindowsDesktop (WPF and WinForms) for .NET Core -->
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net5.0-windows7.0" />
<!-- WinUI -->
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.Analytics.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.Analytics.xml" target="lib/net5.0-windows10.0.17763.0" />
</files>
</package>

Просмотреть файл

@ -39,12 +39,14 @@
<!-- iOS -->
<file src="$ios_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/Xamarin.iOS10" />
<file src="$ios_dir$/Microsoft.AppCenter.Crashes.iOS.Bindings.dll" target="lib/Xamarin.iOS10" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net6.0-ios9.0" />
<file src="$ios_net6_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net6.0-ios9.0" />
<!-- macOS -->
<file src="$macos_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/Xamarin.Mac" />
<file src="$macos_dir$/Microsoft.AppCenter.Crashes.MacOS.Bindings.dll" target="lib/Xamarin.Mac" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net6.0-macos10.10" />
<file src="$macos_net6_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net6.0-macos10.10" />
<!-- UWP -->
<file src="$uwp_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/uap10.0" />
@ -61,11 +63,11 @@
<!-- WindowsDesktop (WPF and WinForms) for .NET Core -->
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_netcore_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/netcoreapp3.1" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net_5_windows_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net5.0-windows7.0" />
<file src="$windows_desktop_net5_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net5.0-windows7.0" />
<!-- WinUI -->
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net_5_windows_winui_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.Crashes.dll" target="lib/net5.0-windows10.0.17763.0" />
<file src="$windows_desktop_net5_winui_dir$/Microsoft.AppCenter.Crashes.xml" target="lib/net5.0-windows10.0.17763.0" />
</files>
</package>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше