Gömülü İkili Doğrulama Yardımcı Programı Hatası

Dünden beri Xcode WatchKit uygulamamı iPhone'umda çalıştırmaya çalışırken aptalca şeyler yapıyor. Bana hata veriyor:

Katıştırılmış İkili Doğrulama yardımcı programı Hatası

     

Hata: uyarı: Bir dizin mi

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.

Profillerimi böyle ayarladım. Üç Uygulama Kimliği ve altı profil (geliştirme için üç ve dağıtım için üç).

Main app: enter image description here

WatchKit Extension: enter image description here

WatchKit Watch App: enter image description here

15
@JackDewhurst Ben de ilk sürümde bu uyarıyı aldım. Düzeltdim, ancak şimdi uygulama arşivlenmiyor (bazen iPhone'umda da çalıştırabiliyorum) ancak çok sinir bozucu.
katma yazar BalestraPatrick, kaynak
Ayrıca bu hatayı alıyorum ama sadece arşivlerken. Hemen önce üç uyarı ile ilgisi olabilir ( "uyarı: kopya faz şeridinin atlanması, ikili kod imzalandı" x 3).
katma yazar Jack Dewhurst, kaynak
Tamam, önceki uyarılarım sorun değil, düzeltildi ve hala Uyarı: Bir dizin mi 'da başarısız oluyor.
katma yazar Jack Dewhurst, kaynak

9 cevap

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
katma
WatchKit Uzantısının Genel> Gömülü İkilileri'ne bakın. Çerçeven orada olmamalı.
katma yazar respectTheCode, kaynak
Lütfen detaylandırır mısın? Benim çerçevemde sadece uzantılarımın yapım aşamalarına bağlıyım.
katma yazar BalestraPatrick, kaynak
Sen benim adamımsın. İşe yaradı! Teşekkürler.
katma yazar BalestraPatrick, kaynak

Sorunu, Doğru Hazırlama Profilleri kurulumuyla çözebildim.

Xcode 6.2 ile, otomatik küme içeren ve portalda geliştirme için fazladan PP olmayan bir geliştirme/hata ayıklama oluşturma işlemi yaptım, ancak ekip provizyonu kullandım.
Şimdi Xcode 6.3 ile 3 portalda geliştirme için açık PP'ler ve bunları proje ayarlarına atayın.

4
katma
Üç, her Uygulama için bir tane. Ya da aslında altı, biri geliştirme için arşivleme için. Bağlantılı SO sorusunda cevabımı gör (veya burada: stackoverflow.com/questions/28816339/… )
katma yazar dogsgod, kaynak
PP'lerinizi de belirtildiği gibi yenilediniz mi? Bu işe yaramazsa, özür dilerim, ama muhtemelen benim yaptığım gibi başka bir sorunun var.
katma yazar dogsgod, kaynak
Üç farklı Uygulama Kimliği oluşturdum. İki veya üç ön hazırlık profili oluşturmam gerekir mi?
katma yazar BalestraPatrick, kaynak
Güncellenmiş soruma bakın. O soruyu yanıtladım ama hala aynı konuda.
katma yazar BalestraPatrick, kaynak
Evet, birkaç kez silindi ve yeniden oluşturuldu.
katma yazar BalestraPatrick, kaynak

Bu hatayla da savaşıyorum. Benim için bazen inşa ediyor, bazen değil. WatchKit uygulamamı şu anda bu şekilde arşivleyebiliyorum. Bunun neden işe yaradığı, sadece benim için çalıştığı hakkında hiçbir bilgi istemiyorum.

  1. ÜstKrkt-Command-K'yi Temizle
  2. Xcode'dan çıkın
  3. ~ Library/Developer/Xcode/Derived Data içindeki dosyaları silin
  4. Xcode ve Arşivi Yeniden Açın
4
katma
Benim durumumda, sadece Xcode'un yeniden başlatılması sorunu düzeltir. Tuhaf.
katma yazar Thomas Kekeisen, kaynak
Bu biraz çılgın bir vudu ama benim için işe yaradı. Apple Watch kesinlikle işleri zorlaştırdı. lol
katma yazar Mr Rogers, kaynak
Tamam, tekrar başıma geldi ve sanırım nedenini anladım. Git kullanarak 6.3 desteği olmayan başka bir şubeye geçtim, bu yüzden 6.2 kullanmalıydım. 6.3'e geri döndüğümde yine başıma geldi.
katma yazar Mr Rogers, kaynak

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.

Ön hazırlık profillerimin boş bir proje (WatchKit hedefi dahil) ile onlarla başarıyla arşivlendiğini doğru biliyorum. WatchKit uzantımda statik kütüphaneler yok, bu yüzden de sorun değil.

Sonunda, güvenilir bir şekilde çalışan tek şey projemi oluşturmak ve arşivlemek için terminalde xcodebuild + xcrun kullanmaktır. Bu makale açıklıyor Terminalde iyi xcode.

2
katma

Benim için bu düzeltmenin tek yolu şema adından tüm boşlukları kaldırmak ve uygulama adını izlemek oldu.

Şema adını değiştirmek için: (örneğin şema "amazingapp RC")

1) xCode'da şemaya tıklayın (Cihazı/simülatörü seçtiğiniz yer)
2) Listeden seçim yapın: "şema düzenle"
3) Yeni mod açıldığında, sol alt köşedeki "yinelenen şema" düğmesine basın.
4) Beyaz boşluklar olmadan uygun adı seçin ve kaydedin.
5) Şimdi şemaları yönet seçeneğine basın ve eskisini seçin.
6) "-" tuşuna basarak çıkarın

Şimdi uzatma adı için zamanı:

1) xCode'da şemaya tıklayın (Cihazı/simülatörü seçtiğiniz yer)
2) Eklenti şemasını seç
3) "şemayı düzenle" yi tıklayın

4) Sol bölümün altındaki Arşiv (bırak) seçeneğini seçin
5) "Arşiv Adı" na boşluksuz uygun bir ad girin
6) Kapatın.

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

2
katma

@ Dogsgod'un önerilerini takip ettim, tüm sertifikalarımı iptal ettim vs. başlamıştı, 6 profil, şanssız. Neredeyse 6 saat boyunca bunu yaptıktan sonra, başka bir ekip üyesi kontrol etti ve çalıştı (xcode'a sorunları düzelterek). Tüm uygulama kimlikleri için grupların açık olduğundan emin olma (Watchkit ve ana uygulama arasında veri paylaşmak için grupları kullanıyorum)

Yani, sadece benim xcode olduğunu düşündüm.

Sonra gitmeye gittim, klonladım ve daha sonra derledim.

Belki gitignore'daki her şey beni engelleyen dosyalardan kurtuldu. Ya da belki onlar işledikten sonra çektiğim için. Neredeyse bu noktada sadece voodoo, ama çalıştı

1
katma

Benim durumumda Xcode Tercihlerim olduğu ortaya çıktı.

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

Onu Unique olarak değiştirdim ve bu işe yaradı.

Umarım bu birine yardımcı olur.

0
katma

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

Can sıkıcı ama projemi arşivlememin ve aslında App Store'a yüklememin tek yolu ...

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:

Tüm cevapları takip ettim ve bazen şöyle olduğunu görebiliyorum:

1) temiz proje

2) (isteğe bağlı - her zaman gerekli değildir) Xcode'u yeniden başlatın

3) türetilmiş veri klasörü içeriğini silmek

Uygulamayı derlememe ve çalıştırmama izin veriyor. Ama hala arşivleyemiyorum. Bazen iki kez yapmam gerekiyor gibi görünüyor.

Yukarıdakilerin dışında, aşağıdaki önerileri denedim (ve arşivlemedim):

  • hedef adları (ve klasörleri içeren) boşlukları dahil etmemek için yeniden adlandırın, Extension ve WatchApp hedeflerinde kendi adlarında boşluk bulunmuyor ancak proje arşivlenmiyor (değişiklik yok)
  • Uzantı Hedefinde gömülü ikili dosyalar olmadığını kontrol ettim (watchApp bu seçeneğe sahip değil)
  • Dağıtım hedefini değiştirmeyi denedim (varsayılan XOS 6.4 için iOS 8.3'dü) ve arşivlemede hiç şansa gerek kalmadan hem 8.2 hem de 8.4 olarak değiştirdim.
  • AppID'leri ve hem "adHoc" hem de "sürüm şemaları" için tüm ön hazırlık profillerini yeniden oluşturdum;
  • ve arşivlemeye çalıştığım şemanın boşlukları olmadığını, ancak hiçbir şeyin değişmediğini doğruladım.
  • Son öneriyi bile denedim, yani varsayılan Derived Data klasörünün konumunu değiştirdim, ancak şüphelendiğim gibi hiçbir şey değişmedi.

İlginç bir şekilde, GERÇEK ÇALIŞTIĞINIZ, Mike Manh'ın önerisi: başka bir klasöre repoyu kontrol etme .

Repoyu yeni bir boş klasöre klonladıktan sonra, her şey aniden çalışmaya başladı. Bu beni şu anki proje klasörümde kalan dosyalar/kopuk bağlantılar/olabileceği sonucuna varıyor. WatchKit geliştirme şubemi mevcut ana şubeye yeniden yüklemeye çalışırken bu olabilirdi. Bana bazı çılgın çatışmalar atmaya başladım ve nihayet yeniden yapılanmayı iptal ettim. Muhtemelen, arşiv seçeneğinin normal bir şekilde çalışması için durduğu noktaydı.

0
katma

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
katma