Embedded Binary Validation Utility Error

Sinds gisteren doet Xcode domme dingen terwijl ik probeer mijn WatchKit-app op mijn iPhone uit te voeren. Het geeft me de foutmelding:

Embedded Binary Validation-hulpprogramma Fout

     

Fout: waarschuwing: is een map

It's not very helpful and it seems like it's complaining about provisioning profiles for my Watchkit Extension target. I think I set it up correctly by following this answer.

Dit is hoe ik mijn profielen heb opgezet. Drie app-ID's en zes profielen (drie voor ontwikkeling en drie voor distributie).

Main app: enter image description here

WatchKit Extension: enter image description here

WatchKit Watch App: enter image description here

15
@JackDewhurst Ik had die waarschuwing ook bij de eerste release. Ik heb het gerepareerd maar nu archiveert de app niet (ik kan het ook soms op mijn iPhone uitvoeren) maar het is erg frustrerend.
toegevoegd de auteur BalestraPatrick, de bron
Ik krijg ook deze foutmelding, maar alleen tijdens het archiveren. Het kan iets te maken hebben met de drie waarschuwingen vlak daarvoor ( "waarschuwing: kopieerfaseringsstrook overslaan, binair is code ondertekend" x 3).
toegevoegd de auteur Jack Dewhurst, de bron
Ok mijn vorige waarschuwingen zijn niet het probleem, verholpen en het mislukt nog steeds op Waarschuwing: is een map .
toegevoegd de auteur Jack Dewhurst, de bron

9 antwoord

I had my custom framework linked and embedded in both the WatchKit Extension and the App. Removing the framework from General > Embedded Binaries of the WatchKit Extension fixed it for me. I did have to delete my Build folder and restart Xcode.

6
toegevoegd
Controleer General> Embedded Binaries of the WatchKit Extension. Je raamwerk zou daar niet moeten zijn.
toegevoegd de auteur respectTheCode, de bron
Kun je alsjeblieft uitleggen? Ik heb alleen mijn framework gekoppeld in de bouwfasen van mijn extensies.
toegevoegd de auteur BalestraPatrick, de bron
Jij bent mijn man. Het werkte! Bedankt.
toegevoegd de auteur BalestraPatrick, de bron

Ik heb het probleem kunnen oplossen met de juiste configuratie van Provisioning Profiles.

Met Xcode 6.2 heb ik een ontwikkeling/debug-build met automatische set en geen extra PP's voor ontwikkeling in de portal kunnen doen, maar met behulp van teamregistratie.
Nu met Xcode 6.3 moest ik 3 expliciete PP's voor ontwikkeling in de portal en toewijzen in de projectinstellingen.

4
toegevoegd
Drie, één voor elke AppId. Of eigenlijk zes, één voor ontwikkeling één voor archivering. Zie mijn antwoord in de gekoppelde SO-vraag (of hier: stackoverflow.com/questions/28816339/… )
toegevoegd de auteur dogsgod, de bron
Heb je ook je PP's vernieuwd zoals vermeld? Als dat niet helpt, het spijt me, maar dan heb je waarschijnlijk een ander probleem zoals ik deed.
toegevoegd de auteur dogsgod, de bron
Ik heb de drie verschillende app-ID's gemaakt. Moet ik twee of drie provisioningprofielen maken?
toegevoegd de auteur BalestraPatrick, de bron
Zie mijn bijgewerkte vraag. Ik heb je al een antwoord op die vraag gevolgd, maar nog steeds dezelfde kwestie.
toegevoegd de auteur BalestraPatrick, de bron
Ja, verwijderd en meerdere keren opnieuw gemaakt.
toegevoegd de auteur BalestraPatrick, de bron

Ik heb ook deze fout bestreden. Voor mij bouwt het soms, soms niet. Op deze manier kan ik mijn WatchKit-app momenteel archiveren. Ik beweer geen enkele kennis over waarom dit werkt, alleen dat het voor mij werkt.

  1. Reinig Shift-Command-K
  2. Stop Xcode
  3. Verwijder bestanden in ~ Bibliotheek/Ontwikkelaar/Xcode/Afgeleide gegevens
  4. Open Xcode en archiveer opnieuw
4
toegevoegd
In mijn geval lost gewoon opnieuw opstarten van Xcode het probleem op. Weird.
toegevoegd de auteur Thomas Kekeisen, de bron
Dat is een gekke voodoo, maar het werkte voor mij. Apple Watch heeft het zeker moeilijk gemaakt. lol
toegevoegd de auteur Mr Rogers, de bron
Ok, dus het gebeurde opnieuw voor mij en ik denk dat ik erachter ben gekomen waarom. Met behulp van git schakelde ik over op een andere tak die geen 6.3-ondersteuning had, dus ik moest 6.2 gebruiken. Toen ik terugging naar 6.3 gebeurde het weer met mij.
toegevoegd de auteur Mr Rogers, de bron

UPDATE: I've been having this issue on another project and managed to solve it by removing spaces in my WatchKit App and Extension target names. So before my target names were APPNAME WatchKit App and APPNAME WatchKit Extension changing them to APPNAMEWatchKitApp and APPNAMEWatchKitExtension Fixed everything!

ORIGINAL: Just to add my two cents I've been struggling with this issue for a few weeks now. I've narrowed it down to including CocoaPods in the project but without a more descriptive error I've got no idea why.

Ik weet dat mijn provisioningprofielen correct zijn als een blanco project (inclusief een WatchKit-doel) succesvol archieven met ze zijn. Er zijn geen statische bibliotheken in mijn WatchKit-extensie dus dat is ook niet het probleem ..

Uiteindelijk is het enige dat betrouwbaar werkt, het gebruik van xcodebuild + xcrun in terminal om mijn project te bouwen en te archiveren. Dit artikel verklaart xcode in de terminal well.

2
toegevoegd

Voor mij was de enige manier om dit op te lossen het verwijderen van alle spaties van de schemanaam en het bekijken van de app-naam.

Om de schemanaam te veranderen: (bijv. Schema is "amazingapp RC")

1) Klik op schema in xCode (hier kiest u apparaat/simulator)
2) Kies uit de lijst: "bewerk schema"
3) Wanneer de nieuwe modale openklik op "duplicaat schema" linksonder in de hoek.
4) Kies de juiste naam zonder spaties en op te slaan.
5) Druk nu op schema's beheren en selecteer een oude 6) Verwijder het door op de knop "-" te drukken

Nu is het tijd voor de extensienaam:

1) Klik op schema in xCode (hier kiest u apparaat/simulator)
2) Kies uitbreidingsschema
3) Klik op "schema bewerken"
4) Kies Archief (vrijgave) onderaan het linkerdeel
5) Voer een eigen naam in zonder spaties in "Archiefnaam"
6) Sluiten.

Now build->clean, build->archive and you should be good to go.

2
toegevoegd

Ik volgde @ dogsgod's suggesties, herroepte al mijn certs enz. Begon opnieuw, 6 profielen, geen geluk. Na bijna 6 uur te hebben gedaan, controleerde een ander teamlid het en het werkte (xcode verholpen de problemen voor hen). Ervoor zorgen dat groepen zijn ingeschakeld voor alle app-id's (ik gebruik groepen om gegevens te delen tussen de watchkit en de hoofd-app)

Dus ik dacht dat het gewoon mijn xcode was.

Toen ging ik naar GIT, kloneerde het en compileerde het toen prima.

Misschien heeft alles in mijn gitignore alle bestanden verwijderd die me blokkeerden. Of misschien omdat ik het heb getrokken nadat ze het hadden begaan. Het is bijna gewoon voodoo op dit punt, maar het werkte

1
toegevoegd

In mijn geval bleken het mijn Xcode-voorkeuren te zijn.

I had my DerivedData -> Advanced Settings (Build Location) set to "Custom" = "Relative to Workspace".

Ik heb het in Unique veranderd en daardoor is het gelukt.

Hopelijk helpt dat iemand.

0
toegevoegd

EDIT: A day later I can share one more thought. While the git cloning works, the problem resurfaces after I make some changes. Which makes me wonder if the problem comes from a bad file formatting (like non unix-like EOF or similar) or just a bug in Xcode. Anyways, my workflow currently is as follows:

1) git clone to another directory
2) archive
3) if there is an error, I need to fix it, 
4) git commit & git push
5) repeat steps 1 & 2 ... 

Dat is vervelend, maar het is de enige manier om mijn project te archiveren en het daadwerkelijk te uploaden naar de App Store ...

ORIGNAL POST: I have encountered this error as well. My project uses CocoaPods, multiple targets and build schemes as well as group entitlements. At times I can't build, although this is fixable (see below) but the problem with archiving persited for a longer time. After two days of fighting with it, my summary is as follows:

Ik heb alle reacties gevolgd en zie dat soms wel:

1) schoon project

2) (optioneel - niet altijd nodig) herstart Xcode

3) verwijder de inhoud van de afgeleide gegevensmap

staat me toe om de app te compileren en uit te voeren. Maar ik kan nog steeds niet archiveren. Soms lijkt het erop dat ik het twee keer moet doen.

Afgezien van het bovenstaande heb ik geprobeerd (en niet te archiveren) de volgende suggesties:

  • de naam van de doelnamen wijzigen (en mappen bevatten) om GEEN witte ruimten op te nemen, de doelen Extension en WatchApp hebben geen spaties in hun respectievelijke namen, maar het project archiveert niet (geen wijziging)
  • Ik heb gecontroleerd of er geen ingesloten binaire bestanden zijn in het extensiedoel (watchApp heeft deze optie niet)
  • Ik heb geprobeerd om het implementatiedoel (standaard was iOS 8.3 voor Xcode 6.4) te wijzigen naar zowel 8.2 als 8.4 zonder veel geluk met archiveren.
  • Ik heb de AppID's en alle provisioningprofielen voor zowel "adHoc" en "releaseschema's" opnieuw aangemaakt, ook geen geluk.
  • en ik heb geverifieerd dat het huidige schema dat ik probeer te archiveren, geen spaties heeft, maar er niets aan verandert.
  • Ik heb zelfs de laatste suggestie geprobeerd, d.w.z. de map met standaard Derived Data-mappen wijzigen, maar zoals ik vermoedde, heeft deze niets veranderd.

Interessant is dat wat feitelijk HEEFT GEWERKT de suggestie is van Mike Manh: de repo in een andere map bekijken .

Na het klonen van de repo in een nieuwe lege map, begon alles plotseling te werken. Dit leidt mij tot de conclusie dat er misschien nog wat overgebleven bestanden/verbroken links zijn/wat dan ook in mijn huidige projectmap. Ik denk dat dit kon gebeuren toen ik mijn watchKit-ontwikkelingstak probeerde te rebasen in de huidige mastertak. Die me een paar gekke conflicten opleverde en ik heb eindelijk de rebase afgebroken. Mogelijk was dit het punt waarop de archiefoptie niet meer normaal functioneerde.

0
toegevoegd

I had the same problem. In Xcode 6.* I fixed it by cleaning my DerivedData folder. But in new Xcode 7 it didn't help. So I removed spaces in WatchKit Extension and WatchKit App ("planckMailiOS WatchKit App" -> "planckMailiOSWatchKitApp" and "planckMailiOS WatchKit Extension" -> "planckMailiOSWatchKitExtension").

0
toegevoegd