Xcode 7 ve ENABLE_BITCODE = YES ayarı çalışmıyor


96

Xcode'daki yeni ENABLE_BITCODE ayarı etrafında birkaç iş parçacığı izledim, elimden geldiğince denedim (xcode pro olmadığımı itiraf ettim) ama yine de projeyi test telefonumda kullanılmak üzere derleyemiyorum?

Uygulamam simülatörde iyi çalışıyor ancak test için iPhone'uma dağıtamıyorum. İkincisi, iOS 9 beta'yı yeni yükledim.

İşte aldığım hata mesajı. Görünüşe göre ayar, projemin parçası olan PARSE.com kütüphanesini etkilemiyor mu? Projemin telefonuma dağıtılmasını nasıl sağlayabilirim? Herhangi bir tavsiye için teşekkürler.

    Ld /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-  bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse normal armv7
cd /Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -L/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse -F/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -filelist /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse.LinkFileList -install_name @rpath/Parse.framework/Parse -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseLib -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -ObjC -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse_dependency_info.dat -o /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse

---
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: '/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse/libParseLib.a(PFSQLiteDatabase.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1
Seçtiğiniz emin misin Enable Bitcodeiçin NOkullandığınız konfigürasyon dosyasında yapı karşı (örneğin DEBUG)? Bunu proje-> hedef-> derleme ayarları-> arama enable bitcode-> NODEBUG'da kontrol edebilirsiniz (test sürümünden önce kitaplıkları güncellemeyi denemeniz iyi olur, belki zaten bitcode içerir). Sonra Edit Scheme-> Run-> DEBUGconfig atm'niz olup olmadığını kontrol edin .
Vive

1
İYİ! Evet ve hayır. Bunu POD hedeflerine koymadım, bu benim göz ardı ettim. İpucun beni oraya götürdü. Teşekkürler
DirkLX

Bunu duymak harika :) diğer insanlar için faydalı olabileceğinden bir cevap olarak gönderecek.
Vive

Neden Bitcode'u değiştirmemiz gerekiyor? Önceden değerini güncellememiz gerekmiyordu. Mantıklı bir neden var mı? Teşekkürler
msmq

Her şeyi yaptım ama yine de aynı hatayla cihazda uygulama çöküyor. İOS 9.1 kullanıyorum. Lütfen yardım et!
Md Rais

Yanıtlar:


133

Seçtiğiniz emin misin Enable Bitcodeiçin NOkullandığınız konfigürasyon dosyasında yapı karşı (örneğin DEBUG)? Bunu project-> target-> build settings-> search enable bitcode-> set NOiçinde kontrol edebilirsiniz DEBUG(test sürümünden önce kütüphaneleri güncellemeyi denemeyi unutmamak gerekir, belki zaten bitcode içerir). Ardından Şemayı Düzenle -> Çalıştır -> DEBUGyapılandırma atm'niz olup olmadığını kontrol edin .

görüntü açıklamasını buraya girin


1
@Zorayr Gönderime resim eklediğiniz için: öncelikle uygulama oluşturma ayarlarınızı kontrol etmeli ve bu bayrağı uygulama oluşturma ayarlarından değiştirmelisiniz. Sadece yardımcı olmazsa, aynısını Pod'lar için de yapın.
Vive

3
Olarak Enable Bitcodeayarlanmışsa , uygulama App Store'da kabul edilecek NOmi?
Ne AS

@NeAS Evet. Şu anda bit kodunu etkinleştirmeye gerek yoktur.
Vive

Tüm bölmeleriniz için bit kodunu devre dışı bırakmalısınız
Vadim Kurochkin

54

CocoaPods kullanan projeler ENABLE_BITCODE = NOiçin hem proje hem de Kapsüller kapsayıcı proje hedeflerini ayarlamanız gerektiğini unutmayın .

Bu hata

Ld /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils normal arm64
    cd /Users/maximveksler/Developer/ParseUI-iOS/Pods
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -L/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils -F/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -filelist /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils.LinkFileList -install_name @rpath/ParseTwitterUtils.framework/ParseTwitterUtils -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseTwitterUtilsLib -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.1 -Xlinker -dependency_info -Xlinker /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils_dependency_info.dat -o /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils

ld: '/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils/libParseTwitterUtilsLib.a(PFTwitterAuthenticationProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

tarafından çözüldü:

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


Bitcode'u Etkinleştir = HAYIR seçeneğiyle gönderirsek Apple uygulamayı reddeder mi?
Ganesh Guturi

@ G.Ganesh lütfen ayrı bir soru olarak gönderin. Politika, cevabın EVET olduğu tvOS ve watchOS arasında değişir. iOS cevabı şu anda hayır, gelecek EVET.
Maxim Veksler

@GaneshGuturi Şu anda evet, ancak muhtemelen Apple gelecekte bir noktada kesecek. Daha fazla açıklama, örneğin burada: stackoverflow.com/a/31207170/849616 .
Vive

17

Xcode7'de de aynı problemle karşılaşmıştım. Bunun çözümü:

  • git PROJECT
  • inşa etmek Settings
  • seç All Tab
  • arama yazın Enable Bitcode
  • Update Flagiçin No(altta Projenizin olacağı (ikinci sütun))

15

GoogleAnalytics kakao bölmesi kitaplığında da benzer bir sorun yaşadım ve kitaplık iOS 8 ile iPhone 6 için derlenmiyordu.

Benim çözümüm, Pods projesinde değil, uygulama projesinin hedefinde "Bit kodunu Etkinleştir" bayrağına dönmekti.


Cevabıma yapılan yorumda bunu söyledim. Proje ayarlarında yapmayı denemek için, ancak ve ancak bu çalışmıyorsa, pod projesine geçin.
Vive

HAYIR bit kodu ayarları oluşturmak için hedefin ve projenin değiştirilmesi ARCHIVING için çalışmaz. Sim yapıları için iş bulur. XCODE 7.0.1
ort11

11

Bit kodunuz görünmüyorsa, lütfen Tümünü seçin. Xcode Basic'i seçtiğinizde, Bitcode seçeneğiniz gösterilmiyor.

görüntü açıklamasını buraya girin

Tümü'nü seçtiğinizde Bitcode'u görebilirsiniz. Daha sonra ads yapılandırması için Hayır'ı ayarlayın görüntü açıklamasını buraya girin


10

Ben sadece projem için ayarladım.

MyProjectTarget -> Yapı Ayarları -> Bitcode'u Etkinleştir = HAYIR


1
Uygulama App Store'da reddedilecek mi?
Ne AS

5

Herkesin söylediği gibi, cevap olduğu belirlenen Enable Bitcodeiçin Noinşa ayarlarında , ama senden bazı Bunu yaparken ilgini çekebileceğini düşünüyorum komut satırı .

Xcode projem Unity tarafından oluşturuluyor ve Xcode proje ayarlarında herhangi bir manuel müdahale istemiyorum. Belki de PlistBuddy'ninplist dosyalardaki değerleri güncellemenize izin vermesi gibi, Yapı Ayarlarını düzenleyebilecek daha iyi bir yol veya araç vardır . Bunu inşa ayarları için yapan herhangi bir araç bilmiyorum, bu yüzden sed kullanıyorum .

sed: Düzenli ifadelere dayalı olarak değiştirmeleri çalıştırın.

Nasıl ayarlamak için Enable Bitcodeiçin Nokomut satırından:

Burada, proje ismim, Unity-iPhoneXcode projemin kökünden aşağıdaki komutu çalıştırıyorum:

sed -i -e 's/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g' \ 
Unity-iPhone.xcodeproj/project.pbxproj

-e - çalıştırmak için sed komutlarını belirtin
-i - dosyaları yerinde düzenleyin, komut dosyalarını her dosya için ayrı ayrı çalıştırın

-iYalnızca ne yaptığının bir önizlemesini istiyorsanız kaldırın ;)

O Not tüm Yapınız yapılandırmaları bu komutu kullanarak değişecek, çizgi ENABLE_BITCODE = YES;benim, 6 kez ortaya çıktı project.pbxproj.

Artık, fastlane gerisini halledeceği için oluşturma adımlarım tamamen otomatikleştirilebilir !


3

Enable_bitcode bayrağını bulamazsanız. Arama çubuğunun yanındaki üst araç çubuğunda "Tümü" sekmesine tıklayın. görüntü açıklamasını buraya girin


Cevabınızı daha iyi açıklamak için lütfen biraz kod ekleyin.
Usman Maqbool

1

BITCODE ayarlarını projeyle değiştiremiyorsanız terminalde bu komutu deneyin,

xcodebuild -target "hedef" -konfigürasyon "konfigürasyonu" ENABLE_BITCODE = HAYIR

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.