Benim 2 sent buraya (daha az korkutucu bir şekilde :-) ekleyeceğim. FrameworksApple tarafından belgelendiği gibi dizine onları ekleyerek (bazı nedenlerden dolayı) normal şekilde çalışmaz satıcıları yağ şişeleri oldukça sayıda karşılaştım . Onlara işi yapmak mümkün olmuştur tek yolu çekerek olan .framekworkproje dizine sağ ve bağlama Embedded Frameworksve Link Binary with LibrariesYapı Ayarlar elle. Bu herhangi bir sorun olmadan işe yaramış gibi görünüyor, ancak herhangi bir yağ kütüphanesinde olduğu gibi yabancı Simülatör Mimarileri i386 ile x86_64birlikte geliyorlar vearm mimarileri .
Yağ kütüphanesindeki mimarileri kontrol etmenin hızlı bir yolu
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
Hangi çıktıyı böyle bir şey tükürmeli
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
Bu, "yağı azaltmanız" gerektiğini (yani i386&x86_64 , iTunesConnect Archival yüklemesinden önce bu mimarilere izin vermeyen (iOS için desteklenmediği için) ) çerçevenizden .
Şimdi, tüm cevaplar (veya cevapların en azından bir kısmı), bu harika Run Scriptlerini gerçekten iyi çalıştığından eminim, ancak sadece Çerçeveniz Frameworksdizinde bulunuyorsa. Eğer bir kabuk senaryosu bağımlısı değilseniz, modifikasyonları olmayan bu senaryolar, yukarıda açıkladığım senaryo için çalışmaz. Ancak, i386& x86_64mimarilerden çerçeveden kurtulmanın çok basit bir yolu var .
Projenizin dizinindeki terminali açın.
Doğrudan içine Değişim dizin .framekworkgibi
cd YourProjectDir/YourProject/YourLibrary.framework
Komut serilerini aşağıda gösterildiği gibi çalıştırın.
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
Burada dikkat edilmesi gereken birkaç şey - lipo -removeher mimarinin kaldırılması için bir kez yapılması gerekir. lipogirdi dosyasını değiştirmez, yalnızca bir dosya oluşturur, bu nedenle ve lipo -removeiçin bir kez çalıştırmanız gerekir . Yukarıdaki komutlar bunu önce çalıştırılabilir dosyayı yeniden adlandırarak ve ardından istenen kemerleri kaldırarak ve ardından soldaki dosyaları temizleyerek yapıyor. İşte bu kadar, şimdi iTunesConnect'e Uygulama Yükleyici Arşivi yüklemesinde yeşil bir onay işareti görmelisiniz.x86_64i386
Akılda tutulması gerekenler: Yukarıdaki adımlar sadece üretim inşa edilirken yapılmalıdır, çünkü .frameworksimülatör mimarilerinden arındırılacak, simülatörler üzerine inşalar çalışmayı durduracaktır (beklenen). Geliştirme ortamında, .frameworkhem Simülatörde hem de fiziksel bir cihazda test yapabilmek istediğiniz için mimarileri dosyadan ayırmaya gerek yoktur. Yağ kütüphaneniz Frameworksprojedeki klasörde bulunuyorsa, lütfen kabul edilen cevaba bakın.