Kod tasarımı hatası: Süresi dolmuş profil silindikten sonra hazırlık profili bulunamıyor


500

Dün çalışan bir uygulamayı yeniden oluşturmaya çalıştım. Bir profilin süresinin dolduğunu belirten bir mesaj aldım, bu yüzden onu iPod'dan ve iTunes'dan kaldırdım. Yeni bir profil seçtiğimde (tanımlayıcıda * olan biri), şimdi bir hata alıyorum:

Kod İşareti Hatası: Temel Hazırlık Profili (uzun dize) bulunamadı.

Neyi kaçırıyorum? İlgili soruları inceledim ve bu senaryoyu henüz görmedim.

Yanıtlar:


856

Bazen xcode proje dosyanız, özellikle eski bir projeniz varsa ve ilk önce xcode / iphone sdk'nin eski bir sürümüyle oluşturduysanız, dağınık hale gelir. Yapmanız gereken proje dosyasını bir metin düzenleyicide açmak, hatanızdaki 'uzun dizeyi' aramak ve bu satırı manuel olarak silmek. Aslında, devam etmeli ve ön hazırlık profillerini gösteren herhangi bir satırı silmelisiniz. Ardından projeyi xcode ile yeniden açın, ayarlara gidin ve yeni profilinizi yeniden seçin. Bu, çoğu zaman bunun gibi sorunları temizler. Hazırlama profillerine işaret eden çizgiler aşağıdaki gibi görünecektir:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

210
.Xcodeproj dosyası aslında bir uygulama paketi gibi bir dizindir, Bulucuda sağ tıklarsanız, paket içeriğini göster'i seçebilir ve daha sonra içinde birkaç dosya göreceksiniz (veya terminalde sadece cd'ye). Gerçek proje dosyası, içinde .pbxproj uzantılı bir dosyadır. Bir metin düzenleyicisiyle açtığınızda, aradığınız satırlar 'PROVISIONING_PROFILE = veya' '"PROVISIONING_PROFILE [sdk = iphoneos *]" =' ile başlamalıdır. Hepsini sil ve sonra iyi olmalısın.
Brad The App Guy

2
Yukarıdakilere ek olarak, tüm profillerimi silmem, ön hazırlık portalından yeniden indirmem ve XCode'a yeniden aktarmam gerektiğine karar verdim. Ardından, Yapılandırma Ayarları / Kod İmzalama'da, tüm oluşturma yapılandırmaları için uygun profili seçin.
Jay Imerman

11
2012'de hala XCode4 ile değerli bir tavsiye. Teşekkürler!
Alexey Rusakov

6
... aaaave 2014'te Xcode6 ile hala değerli tavsiyeler! Çok çok teşekkür ederim!
Tom van Zummeren

4
Benim için çalışan tek şey: Tercihler -> Hesaplar -> Ayrıntıları görüntüle -> Yenile. Bu, tüm hazırlık profillerini dev portalından yeniden yükledi. Umarım bu birine yardımcı olur
blackhawk4152

129

İşte benim için çalışan ve proje dosyasının el ile düzenlenmesini gerektirmeyen daha basit bir çözüm:

XCode'da, "Gruplar ve Dosyalar" bölmesinde "Hedefler" i genişletin ve uygulamanızın hedefini çift tıklayın. Bu, hedef için Bilgi bölmesini açar. "Derleme" bölümünde, eski profiller için "kod imzalama" bölümünü kontrol edin ve doğru profille değiştirin.

Bunun proje simgenizi çift tıklayıp profili oradan değiştirmekten farklı olduğunu unutmayın. Oldukça harika :)

Ori


1
Teşekkürler! Ben :) olur bu sefere deneyeceğim
quantumpotato

6
ve önce doğru yapı yapılandırmasını seçtiğinizden emin olun :)
Johnus

1
Bu her zaman işe yaramaz. Bazen yine de ilk cevapta göründüğü gibi girip manuel olarak değiştirmeniz gerekir.
SpaceTrucker

SpaceTrucker'ı yankılamak için başka bir not: bu yöntem her zaman işe yaramaz. Kabul edilen cevap, Xcode'un bu hayali profili aramayı durduracağını garanti eder.
Simone Manganelli

Yukarıdakilere ek olarak, tüm profillerimi silmem, ön hazırlık portalından yeniden indirmem ve XCode'a yeniden aktarmam gerektiğine karar verdim. Ardından, Yapılandırma Ayarları / Kod İmzalama'da, tüm oluşturma yapılandırmaları için uygun profili seçin.
Jay Imerman

76
  1. Proje ve Hedefler Özellikleri -> "Kod Yazma" -> Tamam -> cmd + S (veya cmd + B);
  2. Proje ve Hedefler Özellikleri -> "Karşılık Profiliniz" -> Tamam

  3. Her şey tekrar çalışıyor!


4
Bu benim için işe yarayan tek çözüm (XCode4 kullanarak). "Kod Yazma" seçili olarak uygulamayı oluşturmak benim için zorunlu bir adımdı.
Chazbot

Bu, 200'den fazla oy içeren çözümden daha iyi bir çözüm gibi görünüyor, çünkü Xcode gelecekte proje dosyasını yazma şeklini değiştirebilir.
Danyal Aytekin

1
Bu, Xcode 4.2
Selvin

10

Brad'in cevabına katılıyorum, hedefinizi / projenizi elle düzenleyerek ve bunun gibi satırları silerek bu sorunu çözebilirsiniz:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

Ancak, Xcode 4.2 ve sonraki sürümlerde, bu metne erişmenin ve onu seçip silmenin çok daha kolay bir yolu vardır. Soldaki Proje Gezgini'nde projenizi seçin (Proje Gezgini'nin en üst satırı). Şimdi Görünüm> Sürüm Düzenleyici> Sürüm Düzenleyiciyi Göster'i seçin. Bu, projenizi metin olarak görüntüler ve SAĞLANMA için arama yapabilir ve sorunlu satırı doğrudan Xcode'un düzenleyici bölmesinde silebilirsiniz.


Bunu takiben projeyi kapatıp açmanız gerekmez. Daha iyi bir yaklaşım :)
viral

6

Bu sorunla ilgili bir değişiklik gördüm: Brad Smith'in yukarıdaki notlarına göre project.pbxproj dosyasına girdim, ancak bu durumda XCode'un gerçekleştiremediği "kötü" profil dizesinin hiçbir oluşumu olmadan tüm PROVISIONING_PROFILE satırları doğru görünüyordu. bulamıyorum.

Ancak, düzeltme aynıydı: teoride "iyi" görünseler bile project.pbxproj içindeki TÜM PROVISIONING_PROFILE satırlarının silinmesi ve ardından projenin XCode'da yeniden açılması.


4

Brad'in çözümünü tamamen Terminal'de elde etmek için bu komutları kullanın

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - tüm satırı sil
  5. Başka bulunana kadar n tuşuna basın
  6. Kaydetmek ve kapatmak için Ctrl + x

3

Benim durumumda, Window -> Organizer'ı açıp cihazımı seçip sağdaki "Temel Hazırlık" panelinin altındaki eski Temel Hazırlık Profilini kaldırarak sorun çözüldü. Eskisi zaten kırmızı bir "x" sembolü ile işaretlenmişti, ancak iPhone hala kullanıyor.

Bu profilin yanı sıra, yeni olan da (aynı adla) görünüyordu ve uygulamayı yeniden başlattıktan sonra sorunsuz çalışıyordum.


+1, bazen süresi bitmiş bir profil nedeniyle yükleme yapamadım - aynı tanımlayıcıyla bile değil! - cihazımdaydı.
kuantumpotato

Bu benim için çalıştı, ama ben de çalışmak için XCode yeniden başlatmak zorunda kaldı.
Matt

3

Sadece bir saat geçirdim ve Brad'in tavsiyesi ve birkaç ek değişiklikle işe yaradı.

Bunu aşağıdakileri kullanarak yaptım: 10.7.3, Xcode 4.3.2, iOS 5.1 btw.

1) üzerine sağ tıklayın myapp.xcodeprojve paket içeriğini seçin

2) project.pbxprojbir metin editörü ile açın (biçimlendirmeyi bozabileceği için textedit önermeyin)

3) Bulana kadar aşağıya doğru kaydırın /* Begin XCBuildConfiguration section */

4) Hata ayıklama ve serbest bırakma bölümlerinizin olduğuna dikkat edin

5) Serbest bırakma bölümünde bir göz atın CODE_SIGN_IDENTITYve "CODE_SIGN_IDENTITY[sdk=iphoneos*]"şöyle görünmelidir:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) Bir göz atın PROVISIONING_PROFILEve "PROVISIONING_PROFILE[sdk=iphoneos*]"şöyle görünmelidirler:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

Bu, Xcode'daki ön hazırlık profilinizle eşleşmelidir. Eşleşip eşleşmediklerini görmek için Xcode> Pencere> Ajanda> Cihazlar> Temel Hazırlık Profilleri> Profile sağ tıklayın> Finder'da Göster> .mobileprovision dosya adı profil kimliğinizdir.

7) Aşağı doğru kaydırın project.pbxprojve serbest bırakma bölümünün ikinci bir örneğini bulun. Serbest bırakma bölümünün ikinci örneği bir açıklama ile sona ermelidir./* End XCBuildConfiguration section */

8) ikinci bölümün ilk bölümle eşleştiğinden CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]ve PROVISIONING_PROFILEhepsinin doldurulduğundan emin olun .


2

Henüz kimse söylemediğinden beri yapacağım bir öneri: LÜTFEN LÜTFEN içeriğini değiştirmeye başlamadan ÖNCE LÜTFEN .xcodeproj dosyanızın bir yedeğini alın. Proje dosyasını bozmak ve yedek almamak çok hoş olmayan bir deneyime yol açacaktır.

Bir düzenlemeden vazgeçmek bir nimet olabilir.


Evet, bu yüzden SCM tanrıları kaynak kontrolü yaptı.
Br.

1

XCode4'ümde bu sorunla yeni karşılaştım. Düzeltmek için, tüm doğru hükümleri Debug ve Release konfigürasyonlarına koymanız gerekir.

Uygulamamı (arşivleyerek) göndermeye çalışıyordum. Bu nedenle, Hata Ayıklama hükümlerini "Kod İmzalama" olarak değiştiririm ve Uygulamamın uygulama mağazası hükmüne ilişkin Yayın provizyonunu değiştiririm.

Bu düzeltti ve normal arşivlememe izin veriyor. Umarım yardımcı olur.


1

Herhangi bir iOS SDK'sının altında boş olan kod imzalama satırlarını seçin ve doğru sertifikayı seçin.


1

Brad Smith'in çözümü benim için çalıştı, ancak çalışması için CODE_SIGN_IDENTITY alanını da kaldırmak zorunda kaldım.


Bu, bir metin düzenleyicide xcode proje dosyasını değiştirerek manuel olarak yapılır ve genellikle bozuk bir duruma geldiğimde tekrar başlamak için bunu yapmak zorunda kaldım. Kaldırılabilecek her iki şeyi de bilmek genellikle çok yararlıdır. İyi bir nokta.
Warren P

0

Ne yazık ki bu yaklaşım benim için işe yaramadı. Ama işte benim için çalışan bir düzeltme (bunun işe yaramasını sağlamak için Subversion'da çalışan bir proje dosyasına ihtiyacınız var):

Proje dosyamın çalışan bir sürümüne geri döndüm. Xcode ile geri dönmek mümkün olmadığından ( Xcode 4'ün Kaynak Kontrolündeki 'Geri Dön' seçeneği nerede? ) - Tortoise, Windows makinem ve bu Öğreticiyi kullandım ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html ) eski bir proje dosyasına geri döner.

Öğretici benim için işe yaramadığından, Tortoise'i proje dosyamın çalışma revizyonunu mac'uma taşımak için bir usb çubuğuna kaydetmek için kullandım. Bundan sonra yeni kırık proje dosyasını eski çalışan bir dosyayla değiştirdim, temizledim ve bir cazibe gibi çalıştı!


0

Sorun yaşıyordum çünkü AdHoc sağlama profilimi TestFlight'ta kullanmak için bazı yeni cihazlarla güncelledim. Bu, xcode'un proje için kod imzalama oluşturma ayarlarında veya hedeflerde ön hazırlık profilinize eski bir referansı olduğu için bunun gerçekleştiği varsayılmaktadır. Benimkini sabitlememin yolu:

  1. Hem hedef oluşturma ayarlarına hem de proje oluşturma ayarlarına gidin, Kod imzalama altında tüm sağlama profillerini başka bir şeye değiştirin.
  2. Ajandadaki cihazlara / ön hazırlık profillerine giderek rahatsız edici profilleri silin, ardından sağ alt taraftaki yenile düğmesini tıklayın.
  3. Hedef ve proje oluşturma ayarlarına geri dönün ve ön hazırlık profillerinizi uygun (umarım) yeni yenilenen ön hazırlık profillerine ayarlayın.

0

En azından Xcode 5'te, bu benim için sorunu çözen şey:

Yetkilendirme profili altında, rahatsız edici yetkilendirme profilini seçin ve ardından açılır menüden geçerli bir yetkilendirme profili seçin.

resim açıklamasını buraya girin


0

Yetkilendirme dosyasının eski referansını kaldırabilirsiniz. Sonra yeni provizyon profilini içeri aktardıktan ve Xcode builder'ı seçtikten sonra.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.