Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Urza
Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am Heute, im Forum: Cross Platform Entwicklung - Mobile und IoT

OK...
Du kannst das Zertifikat und das Provisoning Profile ja manuelle von der Website developer.apple... runterladen.
Dann könntest du versuchen die IPA mit dem Tool iOS App Signer (GitHub) neu zu signieren.
Außerdem hattest du hier schonmal die gleiche Fehlermeldung.
Ansonsten war es das erstmal mit meinen Ideen.

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am Heute, im Forum: Cross Platform Entwicklung - Mobile und IoT

Hi Bernd,

da kann ich jetzt auch nurnoch raten/vermuten.

Zitat
Update : Die erzeugte Datei lässt sich nicht auf einem iPhone installieren. Es kommt die Fehlermeldung "App kann nicht installiert werden".
Du hast mittlerweile so viele Provisioning Profile erstellt, kann es sein, dass das aktuelle Provisioning Profil nicht für Ad-Hoc-Distribution gedacht ist. (Deswegen nicht auswählbar)
Kann es sein, dass dein Smartphone nicht im Profil eingetragen ist?
Diese Art der Ad-Hoc Distribution ist ja "nur" für Testzwecke gedacht und jedes Endgerät (maximal 100 glaube ich) muss im Provisioning Profile eingetragen sein. Kann die App Vielleicht deswegen nicht installiert werden?
Oder hast du einen Enterprise Account, dann ist das mit den Ad-Hoc-Profilen wieder anders.


Viele Grüße

Urza

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hi Bernd,

mit dem Codesign-Fehler bist du doch wieder da, wo du am Anfang des Themas schonmal warst oder?
Ich habe immer noch nicht ganz verstanden wie du deine Builds für iOS erstellst.
Ich mache das so:
1: Rechtsklick auf das iOS Projekt -> Archive... (Dabei wird das Codesign ja noch nicht ausgeführt)
2: Dann wechsle ich auf den Mac um mit dem oben genannten Workaround das Archiv zu signieren und zu verteilen.

Viele Grüße

Urza

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Für Android: Linking on Android
Da gibt es dann auch einen Absatz mit dem Namen linkskip.

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Oh sorry, ich sehe gerade, dass es sich jetzt um Android und nichtmehr um iOS geht.
Aber auch da gab es Linker Einstellungen glaube ich. Muss ich mal suchen.

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hi Bernd,

wenn ich den Fehler richtig interpretiere hat das was mit dem Linker zu tun.
Hast du dich mal mit dem Linker Behavior und dem linkskip Argumenten (Additional mtouch arguments), in den iOS-Projekteinstellungen, auseinandergesetzt?
Bei mir steht das Linker Behavior auf Link All, dafür sind aber sehr viele Assemblies mit linkskip übersprungen.
Also bei dir vielleicht sowas in der Art:


--linkskip=System.Void Mapsui.Layers.LayerCollection --linkskip=Mapsui.Layers.TileLayer

Viele Grüße

Urza

Thema: Das ausgewählte Gerät unterstützt keine Archivierung
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hi Bernd,

ich stand vor dem gleichen Problem und habe endlich eine Lösung gefunden die für mich funktioniert hat.
Da die Lösung nicht bei deinen versuchten Workarounds steht, hoffe ich, dass es dir auch hilft.
Link

Zitat
So, I cannot solve the main problem, but found a workaround. I can distribute at Xcode. After app rebuilds and archives successfully at VS, go to mac, at Xcode, select Window > Organizer. Projects which are archived at VS will show up here. Select the project and click Distribute App. Follow dialog prompts and app will be uploaded to app store connect.

Viele Grüße

Urza

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo Bernd,

Zitat
Benutzt hier noch jemand VS unter Windows um iOS Apps zu entwickeln ?

Lohnt es sich wenn ich hier Fragen dazu stellen oder auch Lösungen vorstelle ?

Ja, ich betreue zwei Xamarin.Forms Apps, die auch in den Apple-Store hochgeladen werden müssen.
Daher bin ich durchaus daran interessiert zu hören, welche Probleme so auftreten können.
Allerdings läuft bei mir die Anbindung an den Apple-Store (Upload nach App Store Connect durch VS) seit einigen VS Versionen problemlos :-)

Viele Grüße

Matthias

Thema: Fehlermeldungen zentral abfangen ohne Programm danach zu beenden
Am im Forum: Rund um die Programmierung

Zitat
Ja aber wenn ich es ja über einen normales TryCatch mache, läuft die Applikation auch normal weiter.
Nein, bei den von gfoidl genannten Exceptions funktioniert auch ein Try Catch nicht.

Thema: Fehlermeldungen zentral abfangen ohne Programm danach zu beenden
Am im Forum: Rund um die Programmierung

Ich denke du musst noch folgendes setzen:


e.Handled = true;

Edit: das wird wohl noch nicht klappen, das gilt für DispatcherUnhandledExceptionEventArgs

Thema: Converter für CommandParameter in InvokeCommandAction
Am im Forum: GUI: WPF und XAML

Ich würde das Binding Testweise mal direkt auf das historyGrid setzen und dann im Converter die Columns mit historyGrid.Columns abfragen.
Da Columns keine DependencyProperty ist, wird der Wert für den CommandParameter nie aktualisiert.

Thema: DataGidView DataBinding WPF wahrscheinlich Verständnisproblem
Am im Forum: GUI: WPF und XAML

_myMatchview kann nicht gefunden werden weil es private ist.
Du musst an myMatchview binden.
Das solltest du auch noch nach MyMatchview umbenennen.

[EDIT]
Und so wie es aussieht suchst du im MatchHistoryViewModel nach dem _myMatchview . _myMatchview ist aber selbst das MatchHistoryViewModel. Da müsstest du das Binding für das Window auch noch anpassen.

Thema: Wie in einer Xamarin.Shell Anwendung eine neue Seite aufrufen und einen Parameter übergeben?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo Kriz,

ich würde mal vermuten, dass zuerst der Konstruktor aufgerufen wird und anschließend die Property mit dem "Query-Parameter" gefüllt wird.
Daher ist im Konstruktor die id noch nicht vorhanden => Du musst das ViewModel im BookID-setter erstellen. So wird es auch hier gemacht: Pass Data

Viele Grüße

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Danke für diese einfache Lösung :-D
Ist vielleicht besser als eine Prüfung auf den 29.02...
Ich habe ja jetzt 4 Jahre Zeit für den Fix.

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Ich habe am 29.02.2020 lernen müssen, dass dieser Codeschnipsel wahrscheinlich nicht der geschickteste ist.
Zum Glück war das ein Samstag...
Autor war ich leider selbst.

Due = DateTime.Now;
From = new DateTime(Due.Year - 1, Due.Month, Due.Day);

Urza

Thema: Variable aus Konsolenanwendung an Form übergeben
Am im Forum: GUI: Windows-Forms

Hi,

wenn beide lokal laufen und das auch in Zukunft immer so sein wird, dann kannst du bspw. XDMessaging.Lite benutzen.
Die Nachrichten werden dann als Broadcast an das gesamte System geschickt. Deine zweite Anwendung (und theoretisch auch jede andere Anwendung auf dem PC) kann dann die Nachricht empfangen.

Thema: Xamarin Android: ClientCertificate.SetCertificate wirft NotImplementedException
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo,

Ich habe ein Xamarin Forms (4.2.0.848062) Projekt.

Ich möchte mich per Client Certificate Authentication mit einem IIS bzw. einem ASMX WebService verbinden. Im UWP-Projekt funktioniert das mit den Folgenden Einstellungen:

var httpsBinding = new BasicHttpsBinding(BasicHttpsSecurityMode.Transport);
und

            if (_httpCredentialType == HttpClientCredentialType.Certificate)
                client.ClientCredentials.ClientCertificate.SetCertificate(_storeLocation, _storeName, X509FindType.FindBySubjectName, _certificateIdentifier);

Bei Android (iOS noch ungetestet) bekomme ich an der Stelle SetCertificate eine NotImplementedException.

Schaue ich mir die Doku zu SetCertificate an. steht ganz unten:
Gültig für: Xamarin.Android

Was mache ich falsch?
Gibt es andere Wege ein Client Zertifikat zu übergeben?

Vielen Dank für Eure Zeit

Urza

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo zusammen,

hier ein kleines Update.
Die Kamera wird tatsächlich von der Windows-Kamera App blockiert.
Schließe ich die Kamera in meiner App, ohne ein Foto zu machen, taucht im Task-Manager ein "Kamera" Prozess auf.
Solange dieser Prozess nicht beendet wird kann keine andere App mehr auf die Kamera zugreifen.
Es liegt wohl auch nicht an meiner App. Ich habe testweise die App "Ultimate Photo Editor" installiert. Dort kann ich das Verhalten auch reproduzieren.

Leider kann ich den Prozess in UWP nicht einfach beenden...

Viele Grüße

Urza

Thema: SQLite und C# ohne Entwicklungsumgebung nutzen möglich?
Am im Forum: Grundlagen von C#

Command-line build with csc.exe

Mit *.cs kannst du alle Dateien in einem Verzeichnis kompilieren.

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo Abt,

danke für die Hilfe.
Ich habe alle relevanten Typen überprüft. Ich kann nirgendwo ein Dispose, Close o.ä. aufrufen.
Den Tip mit dem IsScanning = false habe ich gerade mal getestet.


cancelButton.Clicked += async (sender, args) =>
{
    scanPage.IsScanning = false;
    await scanPage.Navigation.PopModalAsync();
};

Leider ohne Erfolg.

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo trib,

danke, dass du dir die Mühe gemacht hast das Problem nachzuvollziehen.
Ich habe beim Nachvollziehen deiner Schritte noch folgendes festgestellt.

Öffne ich die Kamera und mache tatsächlich ein Foto läuft alles super.
Öffne ich die Kamera und schließe sie ohne ein Foto zu machen oder verwerfe ich das gemachte Foto dann habe ich das besagte Problem, dass ich keine Barcodes mehr scannen kann.


Viele Grüße

Urza

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo p!lle,

IsCameraAvailable liefert true zurück.
Sonst würde sich der Scanner/die Foto-App gar nicht erst öffnen. In der ursprünglichen Anwendung bekommt der Nutzer dann einen entsprechenden Hinweis.
Die Methode prüft aber nicht ob die Kamera blockiert ist o.ä. sondern fragt nur ab, ob das Gerät eine Kamera verbaut hat.
Das Initialize() wird auch im Beispiel des Plugin-Erstellers vor jedem Aufruf der Kamera aufgerufen...

Zitat
Was passiert, wenn du deine Kamera-App, die augenscheinlich für die Blockade zuständig ist, schließt - kannst du dann wieder Barcodes scannen?
Das mache ich immer. Ohne meine Kamera-App zu schließen kann ich die App nicht weiter bedienen. Die Kamera-App ist quasi ein modales Fenster.
Zitat
...liest es sich so, als wenn die Camera im Gerät einfach "blockiert" ist
Ja das sehe ich auch so, wie ich ich auch im Titel des Beitrags angedeutet habe. Aber ich habe bisher noch keine Möglichkeit gefunden die "Blockade" aufzuheben. Für die Windows eigene Kamera-App ist die Kamera ja auch wiederum nicht blockiert.

Btw.: Der Code wie er im Dependency-Service steht ist ein 1:1 Kopie aus den Microsoft docs...

Viele Grüße

Urza

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo emuuu,

danke für die Antwort.
Ich habe gerade mal einfach alle Capabilities aktiviert. Keine Änderung.
Grundsätzlich klappt ja sowohl das wechseln der Kamera als auch das Scannen von Barcodes.
Es ist nur die Kombination von beidem...

Viele Grüße

Urza

Thema: Kamera blockiert Scanner in Xamarin Forms - UWP App
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo,

Ich habe ein Xamarin Forms (4.2.0.709249) Projekt.
Ich nutzte das Plugin Xam.Plugin.Media (4.0.1.5) um Fotos zu machen.
Ich nutze das Plugin ZXing.Net.Mobile.Forms (2.4.1) um Barcodes zu scannen.

Für ZXing habe ich im MainPage Konstruktor nach Anleitung folgendes hinzugefügt:

ZXing.Net.Mobile.Forms.WindowsUniversal.ZXingScannerViewRenderer.Init();
Und für das Xam.Plugin.Media habe ich nach Anleitung die Webcam Capability aktiviert.
Das folgende Problem tritt nur bei UWP auf. Bei Android und iOS Geräten habe ich kein Problem.

Testgerät: Microsoft Surface, Windows 10 Pro, mit zwei Kameras.
Nennen wir die Kameras mal Frontkamera und Webcam.
Zum Scannen von Barcodes wird die Frontkamera verwendet und es gibt keine Möglichkeit die Kamera zu wechseln.
Nach der Installation kann ich problemlos beliebig Barcodes scannen.
Öffne ich dann einmal die Kamera über meine App um ein Foto zu machen und stelle auch hier die Frontkamera ein kann ich danach keine Barcodes mehr scannen.
Der Bildschirm bleibt einfach weiß.
Um wieder Barcodes scannen zu können muss ich entweder
- wieder die Kamera über meine App öffnen und die Webcam einstellen.
- oder die Windows App "Kamera" starten. Dabei ist es widerrum egal ob ich die Frontkamera oder die Webcam einstelle. Nachdem ich die App geschlossen habe kann ich in meiner App wieder Barcodes scannen.

Sowohl die Windows App "Kamera" als auch die von mir aufgerufenen Kamera scheinen beide die Windows App "Kamera" aufzurufen.
Das Problem wird durch einen Neustart meiner App auch nicht behoben.

Ich habe mir zu dem Problem ein Testprojekt gebaut. Dazu habe ich ein Xamarin.Forms Projekt mit der Vorlage Master-Detail in Visual Studio angelegt.
In der About.xaml habe ich zwei Buttons unter dem "Learn more" Button hinzugefügt:
                <Button
                    Margin="0,10,0,0"
                    BackgroundColor="{StaticResource Primary}"
                    Command="{Binding ScanCommand}"
                    Text="Scan"
                    TextColor="White" />
                <Button
                    Margin="0,10,0,0"
                    BackgroundColor="{StaticResource Primary}"
                    Command="{Binding TakePhotoCommand}"
                    Text="TakePhoto"
                    TextColor="White" />

Mein AboutViewModel sieht so aus:

    public class AboutViewModel : BaseViewModel
    {
        public ICommand OpenWebCommand { get; }
        public ICommand ScanCommand { get; }
        public ICommand TakePhotoCommand { get; }

        public AboutViewModel()
        {
            Title = "About";
            OpenWebCommand = new Command(() => Device.OpenUri(new Uri("https://xamarin.com/platform")));
            ScanCommand = new Command(async () => await ScanAsync());
            TakePhotoCommand = new Command(async () => await TakePhotoAsync());
        }

        private async Task ScanAsync()
        {
            var camera = new Camera();
            await camera.ScanBarcode(p => Application.Current?.MainPage?.DisplayAlert("Barcode", p, "ok"));
        }

        private async Task TakePhotoAsync()
        {
            var camera = new Camera();
            await camera.TakePhoto(p => { });
        }
    }

Und meine Klasse Camera sieht so aus:


    public class Camera
    {
        public Task TakePhoto(Action<MediaFile> onPhotoTakenAction, Action noCameraAction = null)
        {
            return TakePhoto(null, onPhotoTakenAction, noCameraAction);
        }

        public async Task TakePhoto(string directory, Action<MediaFile> onPhotoTakenAction, Action noCameraAction = null)
        {
            if (!await IsCameraAvailable())
            {
                noCameraAction?.Invoke();
                return;
            }

            var mediaOptions = new StoreCameraMediaOptions();
            mediaOptions.MaxWidthHeight = 1024;
            mediaOptions.PhotoSize = PhotoSize.MaxWidthHeight;
            mediaOptions.Name = Guid.NewGuid().ToString("N") + ".jpg";
            mediaOptions.CompressionQuality = 50;

            if (!string.IsNullOrEmpty(directory))
                mediaOptions.Directory = directory;

            var photo = await CrossMedia.Current.TakePhotoAsync(mediaOptions);

            if (photo != null)
                onPhotoTakenAction(photo);
        }

        public async Task ScanBarcode(Action<string> onScannedAction)
        {
            if (!await IsCameraAvailable())
                return;

            ZXingScannerPage scanPage;

            var stackLayout = new StackLayout();
            stackLayout.HorizontalOptions = LayoutOptions.FillAndExpand;
            stackLayout.VerticalOptions = LayoutOptions.FillAndExpand;
            var cancelButton = new Button();
            cancelButton.VerticalOptions = LayoutOptions.EndAndExpand;
            cancelButton.HorizontalOptions = LayoutOptions.EndAndExpand;
            cancelButton.Text = "Cancel";
            stackLayout.Children.Add(cancelButton);

            scanPage = new ZXingScannerPage(MobileBarcodeScanningOptions.Default, stackLayout);

            cancelButton.Clicked += async (sender, args) =>
            {
                await scanPage.Navigation.PopModalAsync();
            };

            scanPage.OnScanResult += result =>
            {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(async () =>
                {
                    await scanPage.Navigation.PopModalAsync();

                    if (!string.IsNullOrEmpty(result.Text))
                        onScannedAction(result.Text);
                });
            };

            await Application.Current.MainPage.Navigation.PushModalAsync(scanPage);
        }

        private async Task<bool> IsCameraAvailable()
        {
            var isInitialized = await CrossMedia.Current.Initialize();
            var isCameraAvailable = false;

            if (isInitialized)
                isCameraAvailable = CrossMedia.Current.IsCameraAvailable;

            return isCameraAvailable;
        }
    }

Alternativ habe ich den Zugriff auf die Kamera ohne das Plugin.Media mit Hilfe des DependencyServices realisiert. Gleiches Ergebnis...

[assembly: Dependency(typeof(Camera_UWP))]
namespace CameraScanTest.UWP
{
    public class Camera_UWP : ICamera
    {
        public async Task TakePhoto()
        {
            CameraCaptureUI captureUI = new CameraCaptureUI();
            captureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
            captureUI.PhotoSettings.CroppedSizeInPixels = new Windows.Foundation.Size(200, 200);

            StorageFile photo = await captureUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

            if (photo == null)
            {
                // User cancelled photo capture
                return;
            }
        }
    }
}


Habt ihr nützliche Tips für mich?

Viele Grüße

Urza

Thema: Wie kann ich den Fehler in meiner Rechnung beheben?
Am im Forum: Grundlagen von C#

Ich habe es mir jetzt nicht im Detail angeschaut.
Aber in deinem Code finde ich auf Anhieb nur eine 1200 und keine 1300.
Für 1200 würde das beschriebene Verhalten Sinn machen.

Thema: Warum verlangt Rekursion Übergabe der Parameter mit ref?
Am im Forum: Grundlagen von C#

Hi,

du musst das x mit dem ref Keyword übergeben:

return x * Fac(ref x-1);
Dann bekommst du die Meldung: A ref or out value must be an assignable variable
Also könnte es so gehen:

var newX = x - 1;
return x * Fac(ref newX);

Ich glaube aber die Berechnung ist falsch. Ich würde für die Rekursion kein ref verwenden.

                if (choose == 3)
                {
                    var fac = Fac(x);
                    Console.WriteLine("Output: " + fac);
                    Console.WriteLine(" ");
                }
und

        static int Fac(int x)
        {
            if (x == 1)
                return 1;

            var newX = x - 1;
            return x * Fac(newX); //hier ist der Fehler
        }


Btw.: Code-Tags in deiner Frage würden das ganze lesbarer machen...

Thema: Speichern in eine bestehende txt-Datei
Am im Forum: Grundlagen von C#

File.AppendAllText

Thema: [gelöst] Button in StackPanel "festhalten" wenn content darüber wächst
Am im Forum: GUI: WPF und XAML

Ich würde mal darauf tippen, dass der Button ein VerticalAlignment braucht.

Thema: Mit Parse nach dem größten/niedrigsten Wert in einer spezifischen Periode suchen
Am im Forum: Grundlagen von C#

Reverse gibt void zurück. Darauf kannst du das Take also nicht aufrufen.

Mache das Reverse einfach vorher.
Ich habs jetzt nicht getestet, müsste aber so oder so ähnlich ausshen.

                   
var myCotDataListReversed = new List<COTData_Obj>(MyCotDataList);
myCotDataListReversed.Reverse();
 MyCotDataList.Add(new COTData_Obj
                {
                    Time =  DateTime.Parse(split[0]),
                    CL  = double.Parse(split[5]),
                    CS = double.Parse(split[6]) *-1,
                    CN = double.Parse(split[5]) - double.Parse(split[6]),
                    OBEN = 90,
                    UNTEN = 10,
                    last130CnValues = myCotDataListReversed
                        .Take(130)
                       .Select(x => x.CN)
                       .ToArray(),
                });

Thema: Mit Parse nach dem größten/niedrigsten Wert in einer spezifischen Periode suchen
Am im Forum: Grundlagen von C#

Wie Palladin007 schrieb müsste es wahrscheinlich so heissen:

last130CnValues = MyCotDataList
    .Reverse()
    .Take(130)
    .Select(x => x.CN)
    .ToArray();

Mit

last130CnValues = MyCotDataList[3].CN

                    .Reverse()
                    .Take(130)
                       .Select(x => MyCotDataList.CN)
rufst du das Reverse auf MyCotDataList[3].CN auf. CN ist ein double der kein Reverse kennt.