Nachdem ich einige Hürden bei Signierung und Provisionierung lösen konnte scheitere ich jetzt am Erstellen eines Archives.
iPhone 6s mit iOS 14.71 ist am Windows PC angeschlossen. App auf dem iPhone ist gelöscht.
Der Windows Rechner ist mit dem mac verbunden.
Dort starten ich im iOS Projekt auf dem Windows Rechner "Bereinigen" "Neu Erstellen" "Starten ohne Debuggen"
Ausgabegerät ist "iPhone 6s" in Release-Konfiguration.
Wenn ich dann wähle "Achivieren..." kommt folgende Fehlermeldung :
Fehler
Das ausgewählte Gerät unterstützt keine Archivierung.
Das ausgewählte iOS-Gerät wird zum Erstellen eines Archivs nicht unterstützt.
Es hat aber schon mal funktioniert.
Woran kann das liegen ?
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Jetzt hat es so geklappt : iPhone an den mac anschließen, dort VS starten, dann auf dem Windows Rechner in VS das iPhone als Remote Gerät starten.
Vorher hatte ich das aber immer anders gemacht.
Die Meldung heißt auf englisch übrigens : Can't create iOS Archive because Selected device doesn't support archiving.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ich wollte heute eine neue Version der App veröffentlichen.
Android war nach 5 Minuten fertig. iOS versuche ich nun 4 Stunden und gebe nun auf.
Die letzte Fehlermeldung : Die IPA-Datei für die Verteilung des Archivs ... konnte nicht erstellt werden.
/usr/bin/codedesign mit Code 1 beendet
Fehler beim Codesigniieren von ...
Ich werde mir überlegen ob ich in Zukunft noch für Apple entwickle.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ich suche nun 3 Tage nach einer Lösung für den Fehler
"Die IPA-Datei für die Verteilung des Archivs ... konnte nicht erstellt werden.
/usr/bin/codesign wurde mit Code 1 beendet.
Fehler beim Codesignieren von ..."
Es gibt viele Leute die den Fehler auch haben, aber keine Lösung. Es gibt einige Workarounds, die funktioniere bei mir leider nicht.
Probiert habe ich : Mac neu starten. Neues Zertifikat von Apple installieren. Clean Solution. Lock/Unlock Keychain.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
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
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
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Danke für den Tipp. Werde ich testen.
Bei dem Link geht es zwar um die Veröffentlichung im Store, die Signatur wird aber die gleiche sein.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Der Hinweis hat mir weitergeholfen : Ich habe das gesamte Projekt auf den mac mini kopiert und dort das Archiv erstellt und signiert. Im Visual Studio for mac.
Das lief auf Anhieb !
Der Windows Rechner bekommt seit Version 16.5 keinen private key mehr aus dem developer portal, ich bezweifele dass man da überhaupt eine App signieren kann. Hat wohl noch keiner hinbekommen.
Leider werden alle Bereitstellungsprofile angezeigt die ich je erstellt hatte, das sind mehr als 10. Obwohl ich die alten alle gelöscht habe. Es ist ein Geduldsspiel das richtige Profil auszusuchen. Sie heißen alle gleich und das Erstellungsdatum wird nicht angezeigt.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Zu früh gefreut.
Beim nächsten Update gab es wieder Fehlermeldungen auf dem mac, diesmal andere als vorher.
Android Version war in 5 Minuten erstellt.
Wieder 2 Tage an der iOS Version gebaut, jetzt kommt ein Versionsfehler in einem nuget Paket. Habe dann alle 4 nuget Pakete aktualisiert und nun geht gar nichts mehr :
Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler Mono.Linker.MarkException: Error processing method: 'System.Void XamarinForms.LocationService.Views.MapPage/<Button_Clicked_Menu_Layer>d__161MoveNext()' in assembly: 'XamarinForms.LocationService.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Void Mapsui.Layers.LayerCollectionAdd(Mapsui.Layers.ILayer[])
bei Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
bei Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
bei Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
bei Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
bei Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
bei Mono.Linker.Steps.MarkStep.ProcessQueue()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Mono.Linker.Steps.MarkStep.ProcessQueue()
bei Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
bei Mono.Linker.Steps.MarkStep.Process()
bei Mono.Linker.Steps.MarkStep.Process(LinkContext context)
bei MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
bei Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
bei Mono.Linker.Pipeline.Process(LinkContext context)
bei MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
bei Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
bei Xamarin.Android.Tasks.LinkAssemblies.RunTask()
bei Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:Zeile 17. XamarinForms.LocationService.AndroidSchweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler Mono.Linker.MarkException: Error processing method: 'System.Void XamarinForms.LocationService.Views.MapPage::.ctor()' in assembly: 'XamarinForms.LocationService.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Mapsui.Layers.TileLayer Mapsui.Utilities.OpenStreetMap::CreateTileLayer(System.String)
bei Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference)
bei Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference)
bei Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
bei Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
bei Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
bei Mono.Linker.Steps.MarkStep.ProcessQueue()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Mono.Linker.Steps.MarkStep.ProcessQueue()
bei Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
bei Mono.Linker.Steps.MarkStep.Process()
bei Mono.Linker.Steps.MarkStep.Process(LinkContext context)
bei MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
bei Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
bei Mono.Linker.Pipeline.Process(LinkContext context)
bei MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
bei Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
bei Xamarin.Android.Tasks.LinkAssemblies.RunTask()
bei Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:Zeile 17. XamarinForms.LocationService.Android
Liegt wohl am Update der Mapsui Komponente. Nach Deinstallation und Installation der alten Version bleibt der Fehler leider.
Die Frage ist nun ob Xamarin Forms überhaupt geeignet ist um Apps für den Produktiv Betrieb zu erstellen.
Vielleicht wird es mit Visual Studio 2022 besser wenn NET.Maui kommt.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
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
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
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.
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Für Android: Linking on Android
Da gibt es dann auch einen Absatz mit dem Namen linkskip.
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Danke für den Hinweis.
Da im Visual Studio aufm mac ein Fehler kam habe ich die nuget Pakete aktualisiert, MapSUI z.B. von 3.0.0 rc1 nach 3.0.0 rc2. Der Fehler kam immer noch.
Dann habe ich auf dem Windows Rechner auch alle nuget Pakete akualisiert, jetzt kam unter Android auch ein Fehler, der den ich oben geschrieben habe.
Zum Glück mache ich jede Stunde ein Voll-Backup des Projektes.
Mit deinen Tipps werde ich versuchen die Fehler zu beheben. Wenn das nicht geht geh ich zurück auf ein Projekt vom Vortag. Es ist immer einfach die paar Änderungen einzubauen.
Vielleicht ändere ich die Vorgehensweise dass ich nicht den gleichen Sourcecode für Windows und Mac benutze, sondern auf beiden Systemen getrennt entwickle.
Da muss ich dann Änderungen auf beiden Systemen vornehmen, wäre aber kein Problem.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Danke für den Hinweis !
Unter Android / Verknüpfen (Linking) :
SDK-Assemblies : Erstellen gibt den obigen Fehler.
SDK-Assemblies und Benutzer Assemblies : App lässt sich erstellen, Absturz bei Aufruf der Karte (MapSUI, HttpGet),
Keine : App lässt sich erstellen, Alles läuft
Wie große die App wird ist mir egal. Die Handys haben ja genug Speicher.
Unter iOS bekomme ich leider den Fehler "codesign mit Code 1 beendet". Scheint ein Fehler bei der Signierung zu sein.
Ich sehe dass gerade dass beim Zertifikat "Nicht in keychain" angezeigt wird. Mal sehen wie ich das weg kriege.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Die iOS App lässt sich leider immer noch nicht signieren.
Habe Zertifikat und Profil gelöscht und neu von developer.apple.com runtergeladen.
Nützt leider nichts.
Es kommt : Im Schlüsselbund wurde keine gültigen iOS Codesignaturschlüssel gefunden.
In der Schlüsselbundverwaltung erscheint das Zertifikat, es steht aber dabei "nicht vertrauenswürdig".
Die Anleitungen bei Microsoft funktionieren leider nicht, da sie die Zertifikate immer neu erstellen. Das kann ich aber nur 5 Mal machen, dann ist die maximale Anzahl erreicht.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
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
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Teilerfolg !
Ja, es dreht sich im Kreis.
Zuerst hatte ich die iOS App auf dem Windows Rechner ein Archiv erstellt und per Ad-hoc verteilt. Das geht aber immer nur einmal per Zertifikat. Das ist wohl seit Visual Studio 16.5 so weil der private Schlüssel nicht auf dem Windows Rechner gespeichert wird. Jedes Mal ein neues Zertifikat erstellt geht nicht weil man nur eine begrenzte Anzahl Zertifikate hat.
Dann habe ich das komplette Projekt auf den Mac kopiert und dort im Visual Studio ein Archiv erstellt und per Ad-hoc verteilt. Das ging leider auch nur einmal.
Der aktuelle Stand :
Die iOS App ließ sich weder auf dem Windows Rechner noch auf dem Mac kompilieren.
Es kam die Fehlermeldung 'Der iOS-Codesignaturschlüssel "Apple Distribution: Bernd Quambusch (818G3XCPH7)" wurde nicht im Schlüsselbund gefunden'
Und : "Private Key not found".
Bestehendes Zertifikat von der Apple Developer Website runterladen und installieren ging leider nicht.
Ich habe jetzt nach dieser Anleitung ein neues Zertifikat erstellt, diesmal aus Xcode auf dem Mac : distribution-certificate-private-key-not-installed
Jetzt kann ich sowohl auf dem Windows Rechner als auch auf dem Mac die App erstellen und auch ein Archiv erstellen. Ich kann sogar den privaten Schlüssel auf dem Mac exportieren und auf dem Windows Rechner importieren. Jetzt wird das Zertifikat unter Apple Accounts als gültig angezeigt.
Leider kann ich es beim ad-hoc Verteilen nicht auswählen, es wird immer das alte Profil geladen.
Auf dem Mac ging es nun im Visual Studio ein Archiv zu erstellen, per ad-hoc zu verteilen und eine IPA-Datei zu erstellen.
Ich teste die Datei jetzt mal und hoffe dass das nun immer so geht.
Update : Die erzeugte Datei lässt sich nicht auf einem iPhone installieren. Es kommt die Fehlermeldung "App kann nicht installiert werden".
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ich habe gemerkt dass ich ja bei Erstellung eines neuen Zertifikates auch ein neues Bereitstellungsprofil erstellen muss.
Leider bekomme ich jetzt beim Archivieren auf dem Mac den Fehler : "Es wurden Konflikte zwischen verschiedenen Versionen von "Svg.Skia" gefunden, die nicht aufgelöst werden konnte.
Obwohl auf dem Mac keine Änderung gemacht wurde außer neues Bereitstellungsprofil laden.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hi Bernd,
da kann ich jetzt auch nurnoch raten/vermuten.
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
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Ich habe nur ein einziges Bereitstellungsprofil. Da sind alle Geräte eingetragen. Ich kann bis zu 100 iPhones und bis zu 100 iPads eintragen für den Beta Test.
Hab gerade bei Apple Developer angerufen. Die saßen bestimmt weit weg, Verständigung war schlecht.
Die sagen mir dass das Adhoc Deployment für ein Beta Test eigentlich keine offizielle Apple Methode wäre, man solle Testflight verwenden.
Ich bekomme Unterlagen wie das genau funktioniert.
Ich habe festgestellt dass in der plist Datei des adhoc Deployment einige Keys eingetragen sind. Vielleicht muss ich da einen Wert aktualisieren.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
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.
“Knowledge cannot replace friendship. I'd rather be an idiot than lose you.”
Jetzt gehts, ich sag aber nicht woran es lag.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Kleiner Spaß ! Im ausführlichen Log des iPhones in Xcode habe ich gesehen dass der Dateiname nicht gestimmt hat, da hatte ich mich in Xcode vertippt.
Paket in Xcode signiert und Dateiname richtig geschrieben, jetzt geht es. Mit neuem Zertifikat und neuem Bereitstellungsprofil.
Jetzt gehts ins Training die App testen !
Danke für die Hilfe !
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3