Eroare de utilitate binară de validare încorporată

De ieri, Xcode face lucruri prostești în timp ce încearcă să ruleze aplicația WatchKit pe iPhone-ul meu. Îmi dă eroarea:

Eroare utilitar validare binară încorporată

     

Eroare: avertisment: este un director

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.

Acesta este modul în care mi-am creat profilurile. Trei coduri de aplicație și șase profiluri (trei pentru dezvoltare și trei pentru distribuție).

Main app: enter image description here

WatchKit Extension: enter image description here

WatchKit Watch App: enter image description here

15
@JackDewhurst Am avut și acest avertisment la prima lansare. Am reparat-o dar acum aplicația nu arhiva (reușesc uneori să o execut și pe iPhone-ul meu), dar este foarte frustrant.
adăugat autor BalestraPatrick, sursa
De asemenea, primesc această eroare, dar numai la arhivare. S-ar putea să aibă ceva de a face cu cele trei avertismente de dinainte ( "avertisment: sări peste faza de copiere fază, cod binar este semnat cod" x 3).
adăugat autor Jack Dewhurst, sursa
Ok avertismentele mele anterioare nu sunt problema, le-am rezolvat și încă nu reușește Avertisment: Este un director .
adăugat autor Jack Dewhurst, sursa

9 răspunsuri

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
adăugat
Bifați Generale> Binare încorporate din extensia WatchKit. Cadrul dvs. nu ar trebui să fie acolo.
adăugat autor respectTheCode, sursa
Îmi puteți elabora? Am doar cadrul meu legat în fazele de construcție a extensiilor mele.
adăugat autor BalestraPatrick, sursa
Ești omul meu. A mers! Mulțumiri.
adăugat autor BalestraPatrick, sursa

Am reușit să rezolv problema cu setarea corectă a profilurilor de asigurare.

Cu Xcode 6.2 am reușit să fac o construcție de dezvoltare/depanare cu set automat și fără PP suplimentare pentru dezvoltare în portal, dar folosind provizionarea echipei. Acum, cu Xcode 6.3 a trebuit să adaug 3 PP-uri explicite pentru dezvoltarea în portal și alocarea acestora în setările proiectului.

4
adăugat
Trei, câte unul pentru fiecare Aplicație. Sau, de fapt, șase, una pentru dezvoltare pentru arhivare. Vedeți răspunsul meu în întrebarea legată de SO (sau aici: stackoverflow.com/questions/28816339/… )
adăugat autor dogsgod, sursa
Ați reînnoit și PP-urile așa cum ați menționat? Dacă asta nu ajută, îmi pare rău, dar probabil că ai o altă problemă așa cum am făcut-o.
adăugat autor dogsgod, sursa
Am creat cele trei coduri de identificare diferite ale aplicațiilor. Trebuie să creez două sau trei profiluri de provizionare?
adăugat autor BalestraPatrick, sursa
Vedeți întrebarea mea actualizată. V-am urmărit deja răspunsul la această întrebare, dar totuși aceeași problemă.
adăugat autor BalestraPatrick, sursa
Da, șterse și recreate de mai multe ori.
adăugat autor BalestraPatrick, sursa

M-am luptat si cu aceasta eroare. Pentru mine, uneori se construiește, câteodată nu. Acesta este modul în care îmi pot arhiva actuala aplicație WatchKit. Nu pretinz nici o cunostinta de ce functioneaza acest lucru, doar ca lucreaza pentru mine.

  1. Curățați Shift-Command-K
  2. Ieșiți din Xcode
  3. Ștergeți fișierele din "Library/Developer/Xcode/Data Derived"
  4. Redeschideți Xcode și arhiva
4
adăugat
În cazul meu, doar reporniți Xcode rezolvă problema. Ciudat.
adăugat autor Thomas Kekeisen, sursa
E un voodoo nebun dar a lucrat pentru mine. Apple Watch a făcut lucrurile greu. laugh out Loud
adăugat autor Mr Rogers, sursa
Ok, așa mi sa întâmplat din nou și cred că mi-am dat seama de ce. Folosind git am trecut la o altă ramură care nu avea suport 6.3, așa că a trebuit să folosesc 6.2. Când m-am întors la 6.3 mi sa întâmplat din nou.
adăugat autor Mr Rogers, sursa

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.

Știu că profilurile mele de furnizare sunt corecte, deoarece un proiect gol (incluzând o țintă WatchKit) arhivează cu succes cu ei. Nu există biblioteci statice în extensia mea WatchKit, astfel încât să nu fie problema fie ..

În cele din urmă, singurul lucru care funcționează în mod fiabil este utilizarea xcodebuild + xcrun în terminal pentru a construi și a arhiva proiectul meu. Acest articol explică xcode în puțul terminalului.

2
adăugat

Pentru mine, singura modalitate de a rezolva acest lucru a fost eliminarea tuturor spațiilor din numele schemei și numele app app.

Pentru a schimba numele schemei: (de exemplu, schema este "amazingapp RC")

1) Faceți clic pe schema din xCode (Aici alegeți dispozitiv/simulator)
2) Din listă alegeți: "editați schema"
3) Când noul modal deschis apăsați "schema duplicată" în colțul din stânga jos 4) Alegeți numele corect fără spații albe și salvați 5) Apăsați acum programele de administrare și selectați vechiul 6) Îndepărtați-l apăsând butonul "-"

Acum este timpul pentru extensie nume:

1) Faceți clic pe schema din xCode (Aici alegeți dispozitiv/simulator)
2) Alegeți schema extensiei
3) Faceți clic pe "Editați schema"
4) Alegeți Arhiva (eliberare) în partea de jos a secțiunii din stânga
5) Introduceți un nume propriu fără spații din "Nume de arhivă"
6) Închideți.

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

2
adăugat

Am urmat sugestiile @ doggod-ului, mi-am revocat toate certurile, etc. am început peste 6 profile, fără noroc. După ce a făcut acest lucru timp de aproape 6 ore, un alt membru al echipei a verificat-o și a funcționat (lăsând xcode rezolva problemele pentru ei). Asigurați-vă că grupurile au fost activate pentru toate id-urile aplicațiilor (folosesc grupuri pentru a partaja date între setul de vizionare și aplicația principală)

Deci, am crezut că era doar codul meu xcode.

Apoi m-am dus la git, l-am clonat și apoi l-am compilat bine.

Poate totul din gitignore mi-a scăpat de orice fișiere care mă blocau. Sau poate pentru că l-am tras după ce l-au comis. Este aproape doar voodoo în acest moment, dar a funcționat

1
adăugat

În cazul meu, sa dovedit a fi preferințele mele Xcode.

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

Am schimbat-o la Unic și asta a făcut să funcționeze.

Sperăm că îi ajută pe cineva.

0
adăugat

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 ... 

Ceea ce este deranjant, dar este singurul mod în care pot să-mi arhivă proiectul și să îl încarc în 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:

Am urmărit toate răspunsurile și văd că fac uneori:

1) proiect curat

2) (opțional - nu este necesar) reporniți Xcode

3) șterge conținutul dosarului de date derivat

permite să compilați și să executați aplicația. Dar eu încă nu pot arhiva. Uneori se pare că trebuie să o fac de două ori.

În afară de cele de mai sus, am încercat (și nu am arhivat) următoarele sugestii:

  • redenumiți numele țintă (și care conțin dosare) pentru a NU include spații albe, obiectivele Extension și WatchApp nu au spații albe în numele lor, dar proiectul nu va fi arhivat (fără schimbare)
  • Am verificat că nu există binare încorporate în Extensia țintă (watchApp nu are această opțiune)
  • Am încercat modificarea destinației de implementare (implicit a fost iOS 8.3 pentru Xcode 6.4) la ambele 8,2 și 8,4, fără a avea noroc în arhivare.
  • Am recreat AppID-urile și toate profilurile de provizionare atât pentru "adHoc" cât și pentru "schemele de lansare", nici un noroc.
  • și am verificat că schema curentă pe care încerc să o arhivă nu are spații libere, dar tot nu schimbă nimic.
  • Am încercat chiar și ultima sugestie, și anume schimbarea locației de dosar cu date derivate implicite, dar, așa cum am bănuit, nu a schimbat nimic.

Interesant este că ceea ce a lucrat de fapt este sugestia lui Mike Manh: verificarea repo-ului în alt dosar .

După clonarea repo-ului într-un nou dosar gol, totul a început brusc. Acest lucru mă duce la concluzia că ar putea exista unele fișiere rămase/link-uri rupte/indiferent de dosarul meu actual de proiect. Cred că acest lucru s-ar putea întâmpla când încercam să-mi rebacă sucursala de dezvoltare watchkit în actuala ramură principală. Ceea ce mi-a început să-mi spună niște conflicte nebunești și am renunțat în cele din urmă la rebată. Probabil a fost punctul în care opțiunea de arhivă a încetat să funcționeze în mod normal.

0
adăugat

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
adăugat
iOS dezvoltatori, România — Moldova
iOS dezvoltatori, România — Moldova
18 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro, @seo_ro Android: @ro_android