Cài đặt Xcode 7 và ENABLE_BITCODE = YES không hoạt động


96

Tôi đã theo dõi một số chủ đề xung quanh cài đặt ENABLE_BITCODE mới trong Xcode, cũng đã cố gắng hết sức có thể (thừa nhận tôi không phải là chuyên gia xcode) nhưng vẫn không thể biên dịch dự án để sử dụng trên điện thoại thử nghiệm của mình?

Ứng dụng của tôi chạy tốt trên trình mô phỏng nhưng tôi không thể triển khai nó trên iPhone của mình để thử nghiệm. Ở phiên bản thứ hai, tôi vừa cài đặt iOS 9 beta.

Bây giờ, đây là thông báo lỗi tôi nhận được. Có vẻ như cài đặt không ảnh hưởng đến PARSE.com lib, đó là một phần trong dự án của tôi? Làm cách nào để triển khai dự án trên điện thoại của tôi? Cảm ơn vì bất kỳ lời khuyên.

    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
Bạn có chắc chắn bạn đã chọn Enable Bitcodeđể NOchống lại build cấu hình bạn đang sử dụng (ví dụ DEBUG)? Bạn có thể kiểm tra nó trong project-> target-> build settings-> search enable bitcode-> set NOtrong DEBUG (bạn nên nhớ cố gắng cập nhật libs trước khi phát hành thử nghiệm, có thể nó đã chứa bitcode rồi). Sau đó Edit Scheme-> Run-> kiểm tra xem bạn đã DEBUGcấu hình atm chưa.
Vive

1
TỐT! có và không. Tôi đã không đặt nó trên các mục tiêu POD, đó là quan điểm của tôi. Gợi ý của bạn đã giúp tôi ở đó. Cảm ơn
DirkLX

Thật tuyệt khi nghe nó :) sẽ đăng nó như một câu trả lời vì nó có thể hữu ích cho những người khác.
Vive

Tại sao chúng ta cần thay đổi Bitcode? Trước đây chúng ta không cần cập nhật giá trị của nó. Bất kỳ lý do hợp lý? Cảm ơn
msmq

Đã làm tất cả nhưng vẫn bị treo ứng dụng trên thiết bị với cùng một lỗi. Tôi đang sử dụng iOS 9.1. Xin vui lòng giúp đỡ!
Md Rais

Câu trả lời:


133

Bạn có chắc chắn bạn đã chọn Enable Bitcodeđể NOchống lại build cấu hình bạn đang sử dụng (ví dụ DEBUG)? Bạn có thể kiểm tra nó trong project-> target-> build settings-> search enable bitcode-> set NOin DEBUG(bạn nên nhớ cố gắng cập nhật libs trước khi phát hành thử nghiệm, có thể nó đã chứa bitcode rồi). Sau đó Edit Scheme -> Run -> kiểm tra xem bạn đã DEBUGconfig atm chưa.

nhập mô tả hình ảnh ở đây


1
@Zorayr Khi bạn đã thêm hình ảnh vào bài đăng của tôi: trước tiên bạn nên kiểm tra cài đặt xây dựng ứng dụng của mình và thay đổi cờ này trong cài đặt xây dựng ứng dụng. Chỉ khi nó không hữu ích, thì hãy làm tương tự với Pods.
Vive

3
Ứng dụng có được chấp nhận trong App store nếu Enable Bitcodeđược đặt thành NOkhông?
Ne AS

@NeAS Có. Hiện tại, không có yêu cầu để kích hoạt mã bit.
Vive

Bạn nên tắt bitcode cho tất cả các nhóm của mình
Vadim Kurochkin

53

Lưu ý rằng đối với các dự án sử dụng CocoaPods, bạn nên đặt ENABLE_BITCODE = NOtrên cả mục tiêu dự án và dự án vùng chứa Pods.

Lỗi này

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)

đã được giải quyết bởi:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Apple có từ chối ứng dụng nếu chúng tôi gửi nó với tùy chọn Bật Bitcode = KHÔNG?
Ganesh Guturi

@ G.Ganesh vui lòng đăng dưới dạng một câu hỏi riêng. Chính sách khác nhau giữa tvOS và watchOS, trong đó câu trả lời là CÓ. Câu trả lời cho iOS hiện tại là không, tương lai CÓ.
Maxim Veksler

@GaneshGuturi Hiện tại là có, nhưng có lẽ Apple sẽ cắt giảm nó vào một thời điểm nào đó trong tương lai. Giải thích thêm, ví dụ tại đây: stackoverflow.com/a/31207170/849616 .
Vive

17

Tôi cũng đã gặp phải vấn đề tương tự trong Xcode7. Giải pháp cho điều này:

  • đi đến PROJECT
  • xây dựng Settings
  • lựa chọn All Tab
  • gõ tìm kiếm Enable Bitcode
  • Update Flagđến No(sẽ nằm bên dưới dự án của bạn (cột thứ hai))

15

Tôi đã gặp vấn đề tương tự với thư viện vỏ ca cao của GoogleAnalytics và thư viện không biên dịch cho iPhone 6 với iOS 8.

Giải pháp của tôi là KHÔNG chuyển sang cờ "Bật Bitcode" trong mục tiêu của dự án ứng dụng - không phải trong dự án Pods.


Đó là những gì tôi đã nói trong bình luận cho câu trả lời của tôi. Để thử làm điều đó trên cài đặt dự án, nếu và chỉ khi điều đó không hoạt động thì hãy chuyển sang dự án nhóm.
Vive

Chuyển đổi mục tiêu và dự án để xây dựng cài đặt bitcode NO không hoạt động đối với KIẾN TRÚC. Không tìm thấy công việc cho các bản dựng Sim. XCODE 7.0.1
ort11

11

Nếu Bitcode của bạn không hiển thị, vui lòng chọn Tất cả. Khi xcode chọn Basic, tùy chọn Bitcode của bạn không hiển thị.

nhập mô tả hình ảnh ở đây

Khi bạn chọn Tất cả, bạn có thể thấy Bitcode. Sau đó, đặt Không cho cấu hình quảng cáo nhập mô tả hình ảnh ở đây


10

Tôi chỉ đặt nó cho dự án của tôi.

MyProjectTarget -> Cài đặt bản dựng -> Bật Bitcode = KHÔNG


1
Ứng dụng có bị từ chối trong App store không?
Ne AS

5

Như mọi người đều biết, câu trả lời là thiết lập Enable Bitcodeđể Notrong xây dựng các thiết lập , nhưng tôi nghĩ một số bạn có thể quan tâm trong việc này từ dòng lệnh .

Dự án Xcode của tôi đang được tạo bởi Unity và tôi không muốn bất kỳ sự can thiệp thủ công nào vào cài đặt dự án Xcode. Có thể có một cách tốt hơn hoặc một công cụ có thể chỉnh sửa Cài đặt bản dựng giống như cách PlistBuddy cho phép bạn cập nhật các giá trị trong plisttệp. Tôi không biết bất kỳ công cụ nào thực hiện điều này cho cài đặt xây dựng nên tôi đang sử dụng sed .

sed: Chạy các thay thế dựa trên biểu thức chính quy.

Cách đặt Enable Bitcodethành Notừ dòng lệnh:

Đây, tên dự án của tôi là Unity-iPhonevì vậy tôi chạy lệnh sau từ thư mục gốc của dự án Xcode của mình:

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

-e - chỉ định lệnh sed để chạy
-i - chỉnh sửa tệp tại chỗ, chạy các tập lệnh riêng biệt cho từng tệp

Xóa -inếu bạn chỉ muốn xem trước những gì nó làm;)

Lưu ý rằng tất cả các cấu hình xây dựng của bạn sẽ được thay đổi bằng cách sử dụng lệnh này, dòng ENABLE_BITCODE = YES;xuất hiện 6 lần trong của tôi project.pbxproj.

Giờ đây, các bước xây dựng của tôi có thể hoàn toàn tự động vì fastlane sẽ lo phần còn lại!


3

Nếu bạn không tìm thấy cờ enable_bitcode. Nhấp vào tab "Tất cả" trên thanh công cụ phía trên bên cạnh thanh tìm kiếm. nhập mô tả hình ảnh ở đây


Vui lòng thêm một số mã để giải thích rõ hơn câu trả lời của bạn.
Usman Maqbool,

1

hãy thử lệnh này trong terminal nếu bạn không thể thay đổi cài đặt BITCODE trong dự án,

xcodebuild -target "target" -configuration "cấu hình" ENABLE_BITCODE = NO

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.