Xcode 7 dan ENABLE_BITCODE = Pengaturan YES tidak berfungsi


96

Saya telah mengikuti beberapa utas seputar pengaturan ENABLE_BITCODE baru di Xcode, juga telah mencoba sebanyak yang saya bisa (akui, saya bukan xcode pro) tetapi masih tidak bisa mendapatkan proyek untuk dikompilasi untuk digunakan pada ponsel uji saya?

Aplikasi saya berjalan dengan baik di simulator tetapi saya tidak dapat menerapkannya ke iPhone saya untuk pengujian. Yang terakhir saya baru saja menginstal iOS 9 beta.

Sekarang, inilah pesan kesalahan yang saya terima. Tampaknya pengaturan tidak memengaruhi lib PARSE.com, itu adalah bagian dari proyek saya? Bagaimana saya bisa mendapatkan proyek saya untuk diterapkan ke telepon saya? Terima kasih atas sarannya.

    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
Apakah Anda yakin telah memilih Enable Bitcodeuntuk NOmelawan konfigurasi build yang Anda gunakan (mis. DEBUG)? Anda dapat memeriksanya di project-> target-> build settings-> search enable bitcode-> set NOdi DEBUG (perlu diingat untuk mencoba memperbarui libs sebelum rilis pengujian, mungkin itu sudah berisi bitcode). Kemudian Edit Scheme-> Run-> periksa apakah Anda memiliki DEBUGkonfigurasi atm.
Hidupkan

1
BAIK! iya dan tidak. Saya tidak menetapkannya pada target POD, itu yang saya abaikan. Petunjuk Anda membawa saya ke sana. Terima kasih
DirkLX

Senang mendengarnya :) akan mempostingnya sebagai jawaban karena mungkin bermanfaat bagi orang lain.
Vive

Mengapa kita perlu mengubah Bitcode? Sebelumnya kita tidak perlu mengupdate nilainya. Ada alasan logis? Terima kasih
msmq

Melakukan semuanya tetapi tetap saja aplikasi macet pada perangkat dengan kesalahan yang sama. Saya menggunakan iOS 9.1. Tolong bantu!
Md Rais

Jawaban:


133

Apakah Anda yakin telah memilih Enable Bitcodeuntuk NOmelawan konfigurasi build yang Anda gunakan (mis. DEBUG)? Anda dapat memeriksanya di project-> target-> build settings-> search enable bitcode-> set NOin DEBUG(perlu diingat untuk mencoba memperbarui libs sebelum rilis pengujian, mungkin itu sudah berisi bitcode). Kemudian Edit Scheme -> Run -> periksa apakah Anda memiliki DEBUGkonfigurasi atm.

masukkan deskripsi gambar di sini


1
@Zorayr Karena Anda telah menambahkan gambar ke posting saya: Anda harus terlebih dahulu memeriksa pengaturan aplikasi Anda dan mengubah bendera ini di pengaturan pembuatan aplikasi. Hanya jika tidak membantu, lakukan hal yang sama dengan Pod.
Vive

3
Akankah aplikasi diterima di App store jika Enable Bitcodedisetel ke NO?
Ne AS

@Eap Saat ini, tidak ada persyaratan untuk mengaktifkan bitcode.
Vive

Anda harus menonaktifkan bitcode untuk semua pod Anda
Vadim Kurochkin

54

Perhatikan bahwa untuk project yang menggunakan CocoaPods, Anda harus menetapkan ENABLE_BITCODE = NOproject dan target project container Pods.

Kesalahan ini

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)

diselesaikan oleh:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


Apakah Apple menolak aplikasi jika kami mengirimkannya dengan opsi Aktifkan Bitcode = TIDAK?
Ganesh Guturi

@ G.Ganesh mohon posting sebagai pertanyaan terpisah. Kebijakannya bervariasi antara tvOS dan watchOS yang jawabannya YA. iOS jawabannya saat ini tidak, masa depan YA.
Maxim Veksler

@GaneshGuturi Saat ini ya, tapi mungkin Apple akan menghentikannya di masa mendatang. Penjelasan lebih lanjut misalnya di sini: stackoverflow.com/a/31207170/849616 .
Hidup

17

Saya juga menghadapi masalah yang sama di Xcode7. Solusi untuk ini:

  • pergi ke PROJECT
  • membangun Settings
  • Pilih All Tab
  • ketik pencarian Enable Bitcode
  • Update Flagto No(yang akan berada di bawah proyek Anda (kolom kedua))

15

Saya memiliki masalah yang sama dengan pustaka buah kakao GoogleAnalytics, dan pustaka tersebut tidak dikompilasi untuk iPhone 6 dengan iOS 8.

Solusi saya adalah beralih ke NO tanda "Aktifkan Bitcode" di target proyek aplikasi - bukan di proyek Pod.


Itulah yang saya katakan di komentar jawaban saya. Untuk mencoba melakukannya pada pengaturan proyek, jika dan hanya jika itu tidak berhasil maka beralihlah ke proyek pod.
Hidup

Mengalihkan target dan proyek untuk membangun pengaturan bitcode NO tidak berfungsi untuk ARCHIVING. Apakah pekerjaan menemukan untuk membangun Sim. XCODE 7.0.1
ort11

11

Jika Bitcode Anda tidak muncul, pilih Semua. Ketika xcode memilih Basic, opsi Bitcode Anda tidak muncul.

masukkan deskripsi gambar di sini

Saat Anda memilih Semua, Anda dapat melihat Bitcode. Setelah itu atur No for ads config masukkan deskripsi gambar di sini


10

Saya hanya mengaturnya untuk proyek saya.

MyProjectTarget -> Build Settings -> Aktifkan Bitcode = NO


1
Akankah aplikasi ditolak di App store?
Ne AS

5

Seperti yang dikatakan semua orang, jawabannya diatur Enable Bitcodeke Nodalam pengaturan build , tetapi saya pikir beberapa dari Anda mungkin tertarik melakukan ini dari baris perintah .

Proyek Xcode saya sedang dibuat oleh Unity dan saya tidak ingin ada intervensi manual pada pengaturan proyek Xcode. Mungkin ada cara yang lebih baik atau alat yang dapat mengedit Pengaturan Build seperti bagaimana PlistBuddy memungkinkan Anda memperbarui nilai dalam plistfile. Saya tidak tahu alat apa pun yang melakukan ini untuk membangun pengaturan jadi saya menggunakan sed .

sed: Jalankan penggantian berdasarkan ekspresi reguler.

Cara mengatur Enable Bitcodeuntuk Nodari baris perintah:

Di sini, nama proyek saya Unity-iPhonejadi saya menjalankan perintah berikut dari root proyek Xcode saya:

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

-e - tentukan perintah sed untuk menjalankan
-i - edit file di tempat, jalankan skrip secara terpisah untuk setiap file

Hapus -ijika Anda hanya menginginkan pratinjau tentang fungsinya;)

Perhatikan bahwa semua konfigurasi build Anda akan diubah menggunakan perintah ini, baris ENABLE_BITCODE = YES;muncul 6 kali di my project.pbxproj.

Sekarang langkah build saya dapat sepenuhnya otomatis karena fastlane akan menangani sisanya!


3

Jika Anda tidak menemukan flag enable_bitcode. Klik tab "Semua" pada bilah alat atas di samping bilah pencarian. masukkan deskripsi gambar di sini


Harap tambahkan beberapa kode untuk menjelaskan jawaban Anda dengan lebih baik.
Usman Maqbool

1

coba perintah ini di terminal jika Anda tidak dapat mengubah pengaturan BITCODE dalam proyek,

xcodebuild -target "target" -configuration "configuration" ENABLE_BITCODE = NO

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.