Xcode 4: .xcarchive yerine IPA dosyası oluşturun


182

Xcode 3.2.5 bir IPA dosyası oluşturmak için "Oluştur ve Arşivle" kullanın. Xcode 4'te bir uygulamayı bir .xcarchive paketinde arşivlemek için "Ürün -> Arşivle" seçeneğini kullanabilirsiniz.

Xcode 4 ile nasıl bir .ipa dosyası oluşturabilirim?




3
Her yeni adhoc sürümü oluşturduğumda, google aramam beni buraya getiriyor. Bu sayfayı son birkaç aydır birçok kez gördüm. İyi soru, iyi çözüm
coneybeare


İşte IPA'yı dışa aktarmak için bir Xcode Eklentisi github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Raj

Yanıtlar:


391

IPA oluşturmak, .xcarchive: Ürün -> Arşiv oluşturmakla aynı şekilde yapılır. Arşivleme işlemi tamamlandıktan sonra Düzenleyici'ye gidin, arşivinizi seçin, Paylaş'ı seçin ve "Paylaşmak için içerik ve seçenekleri seçin:" bölmesi İçeriği "iOS App Store Paketi (.ipa) ve iPhone Dağıtımına Kimlik ( proje için özel / uygulama mağazası temel hazırlık profilinizle eşleşmelidir).

"İOS App Store Paketi (.ipa)" seçeneği devre dışı bırakılmış olabilir. Bu, derlemeniz tek bir hedefden fazlasını oluşturduğunda gerçekleşir: örneğin bir uygulama ve kütüphane. Hepsi yapı ürünleri klasöründe sonuçlanır ve Xcode, her ikisini de bir .ipa dosyasına nasıl paketleyeceği konusunda karışık olur , bu nedenle yalnızca seçeneği devre dışı bırakır.

Bunu çözmenin bir yolu şudur: uygulama hedefi hariç her bir hedef için derleme ayarlarını gözden geçirin ve Kurulumu Atla bayrağını EVET olarak ayarlayın. Ardından Ürün -> Arşiv tango'yu bir kez daha yapın ve yeni arşivinizi seçmek için Düzenleyici'ye gidin. Şimdi, Paylaş düğmesine tıkladığınızda, .ipa seçeneği etkinleştirilmelidir.

Umarım bu yardımcı olur.


2
Bu sorunumu çözdü, teşekkürler! Benim durumumda sorun aslında kurulumun atlanması gereken çeşitli hedefleri olan çocuk projelerinden biriydi (benim için ProtocolBuffers).
JosephH

Ürün -> Arşiv seçeneği görünmeden önce Ürün -> Çalışma alanınızı temizleyip açmanız / kapatmanız gerekebilir.
Mark Chackerian

Birden fazla hedefle ilgili sorunum vardı. Paylaşılan lib'i Atla Yükleme olarak ayarlama YES ve uygulamayı Atla Yükleme olarak ayarlama HAYIR düzeltildi. Bu, Xcode 3.2'de benim için bir sorun değildi, sadece 4.1.
logancautrell

44
"Paylaş" şimdi "Dağıt ..." Sonra "Geçici Dağıtım İşletmesi İçin Kaydet" i seçin
Rembrandt Q. Einstein

"Skip install" yeterli değil - Xcode 4.5 ile bu hatayı aldım ve bir pakete sahip bir kütüphane eklediğimden beri doğru şekilde dağıtmayı reddediyor.
Adam

44

Sadece Skip Install seçeneğini EVET olarak ayarlamak benim için çalışmadı. Umarım bu birisine yardım eder.

Proje hedeflerimin bağımlılığına gittim: Coreplot-CocoaTouch. Sonra Coreplot-CocoaTouch Hedeflerine gitti. Hedeflerinde Yapı Aşamaları açıldı. Daha sonra Kopya Başlıkları açıldı. Orada bazı kamuya açık, bazı özel ve bazı proje başlık vardı. TÜMÜNÜ Projeye taşıdı.

Elbette, Coreplot-CocoaTouch Hedeflerinin Derleme Ayarları'nda Dağıtım seçeneklerinde Atla Yüklemenin EVET olarak ayarlandığını kontrol ettim.

Ve bu sefer Arşiv imzalanabilen ve .ipa üretilen bir arşiv yaptı.


1
Üstbilgileri Project'e taşıdıktan sonra yukarıdaki adımlarla birlikte mükemmel çalışır. Teşekkürler
iOSAppDev

Serin bir esinti gibi! OAuth için github.com/sprhawk/ytoolkit.git'i projesine bırakan herkes buna ihtiyaç duyacaktır. Teşekkürler.
vmanjz

2
Neden oh Xcode hala bu kadar ciddi hatalarla dolu? Bu yorumdan 18 ay sonra ve böcek hala orada! Yardım için teşekkürler.
Ben Clayton

Seni şu an ne kadar sevdiğime dair hiçbir fikrin yok ... problemlerimden en az biri çözüldü! Teşekkür ederim!
Dmytro

15

Xcode 4.6 (ve Xcode 5) arşivleri için

  • Düzenleyici'de bir arşivi sağ tıklayın, Finder'da Göster'i seçin
  • Finder'da bir arşivi sağ tıklayın, Paket İçeriğini Göster'i seçin
  • Ürünler> Uygulamalar klasörünü açın
  • Uygulama orada
  • Uygulamayı iTunes Apps klasörüne sürükleyin

    resim açıklamasını buraya girin

  • İTunes Apps'ta uygulamaya sağ tıklayın, Finder'da Göster'i seçin

  • .ipaOrada!

Bu benim xcode 4.6.3 için gerçekten ihtiyacım olan şey, Yukarıdakilerin hepsi benim için anlamsız, sadece bu bir iş. Harika !
Forrest

Dikkat, bir ipa oluşturur, ancak düzgün yüklenmeyebilir, senkronizasyondan sonra telefonda simgesi gösterir, ancak altına yükleme diyor ve hiç bitmiyor. her neyse, bunu denedikten sonra deneyimlerim bu, Xcode 5.1.1.
colin lamarre

4

Düzenleyicide Paylaş'ı tıklayıp iOS App Store Paketi (.ipa) olarak kaydedebilirsiniz. Ayrıca, Düzenleyici'de arşiv oluşturmak için 'Ürün' menüsünden 'Arşiv'i seçmeniz gerekebilir. Son olarak, bunu yapmak için uygun şekilde imzalanmış bir arşivlenmiş yapıya sahip olmanız gerektiğini düşünüyorum.


3
Arşivi projeden nasıl oluşturacağınızı anlamak kolaydı. Sorun, 'Paket' seçeneği paylaşılırken grileşmesidir. Bu seçeneğin etkinleştirilmesi için arşivin doğru şekilde imzalanmış olması doğru olabilir. Anahtarı dağıtım için geçici olarak kullanıyorum ve ayrıca dağıtım için geçici olarak yetkilendirme ayarladım. IPA dosyasının oluşturulmasını nasıl mümkün kılacağını paylaşabilir misiniz?
krasnyk

4

Route-me kütüphanesinin eski bir sürümünü kullanarak da aynı sorunu yaşadım. Tüm kütüphaneleri ve kütüphanelerin içindeki kütüphaneleri (proj4) "atladım" ama yine de aynı problemi yaşadım. Route-me ve proj4'ün, kütüphaneler atlanırken bile genel başlık dosyalarını yükledikleri anlaşılıyor, bu da onu aynı şekilde karıştırıyordu! Bu yüzden ben sadece route-me'ye gittim ve proj4 "Aşamaları Oluştur" sekmesini hedefledim, "Kopya Üstbilgileri" ni açtım, "Genel" i açtım ve bu başlıkları "Genel" den "Proje" ye sürükledim. Şimdi $ (BUILD) / usr / local / include dizinine yüklenmiyorlar ve arşivden bir ipa dosyası oluşturabiliyorum!

Umarım Apple XCode ile olan bu korkunç kullanılabilirlik sorununu çözer. Neyin yanlış olduğuna dair hiçbir belirti vermez, işe yaramaz. Size neden karartıldıkları hakkında hiçbir şey söylemeyen karartılmış kontrollerden nefret ediyorum. Tıklamaları görmezden gelmek yerine, devre dışı bırakılan denetimler, hayal kırıklığıyla tıkladığınızda neden cehennem engellendiklerini söyleyen bir mesaj açabilir mi?


Evet! Genel olarak işaretlenmiş tüm başlık dosyaları sorunu çözer. Onları proje olarak ayarlamak sorunu çözdü!
JakubKnejzlik

3

Başarılı bir Ürün> Arşiv yaptığınızı varsayarsak, Düzenleyici'den (Shift Apple 2) Arşivler'i tıklayın.

Arşivinizi seçin. Paylaş'ı seçin. "Paylaşmak için içeriği ve seçenekleri seçin:" bölmesinde, İçerikleri "iOS App Store Paketi (.ipa) ve iPhone Dağıtımına Kimlik olarak ayarlayın.

İleri'yi tıklayın, bir Uygulama adı girin ve Kaydet'i tıklayın.

Ekran görüntüleri ile tam kanlı detaylar burada: Xcode4UserGuide


2

Tüm diğer cevapları deneyen ve hiç şansı olmayan biri bu onay kutusunu işaretleyin, yardımcı olacağını umuyoruz (benim için hile yaptı xcode 6.0.1)

resim açıklamasını buraya girin


0

Aynı problemim vardı ... Projeyi sıfırdan yeniden yaratmak zorunda kaldım.

Not: Projem XCode 3.1'de oluşturuldu ve bir alt proje (ortak bir hedefe) olarak inşa edilen statik bir kütüphaneye bağlanıyor. Bunu XCode 4'te XCode projesini yeniden oluşturduğumda kaynak oluşturmak için değiştirdim.

Şimdi bir Ürün / Arşiv / Paylaşım ... yapmak, "Uygulama" nın (şimdi gri renkte) doğrudan "iOS App Store Paketi (.ipa)" ve ".xcarchive'ı dışa aktaran" Arşiv "seçeneğine sahip.


0

Aynı sorun. Her harici proje için "yükleme atla" bayrağını EVET olarak belirleyerek ana projenin diğer hedeflerini değiştirmeden çözdüm.

Ayrıca, "Düzeni düzenle…" seçeneğine gitmem, "Arşivleme" panelini seçmem ve geçici amacım için doğru oluşturma ayarını yapmam gerekiyordu.

Sonra basit bir Ürün -> Arşiv -> Paylaş beklenen iş yaptı.


0

Projenizi Oluşturmanız ve Arşivlemeniz gerekecek. Projede ve yürütülebilir dosyada hangi kod imzalama ayarlarına sahip olduğunuzu kontrol etmeniz gerekebilir.

Arşiv sürümünüzü seçmek için Düzenleyici'yi kullanın ve ardından projenizin bu sürümünü paylaşın. Doğru kod imzasını tekrar seçmeniz gerekecektir. Bu, .ipa dosyasını istediğiniz yere kaydetmenize izin verecektir.

.İpa dosyasını iTunes'a sürükleyip bırakın ve ardından iPhone'unuzla senkronize edin.


0

Bir oyunsa (uygulama da olabilir) ve cocos2d veya diğer üçüncü taraf kütüphaneleri gibi bazı statik kütüphaneleriniz varsa ... o zaman * SADECE * SADECE * statik kütüphanesini (APP DEĞİL) ve oluşturma ayarlarında Dağıtım, Skip Install bayrağını ayarlayın YESve arşivleyin.


0

Ben de aynı sorunu attım. Yukarıdaki cevapların hiçbiri benim için işe yaramadı, ancak çözümü kendi başıma buldum. İpa dosyası oluşturulmadı çünkü Hedef-> Derleme Aşamaları -> Paketle kaynakları kopyala kütüphane dosyaları (libXXX.a)

Umarım birine yardımcı olur :)

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.