Khóa CFBundleExecutable không mong đợi


98

Sau khi dành thời gian tìm kiếm trên Google, có điều gì đó cho tôi biết rằng vấn đề là mới.

Chúng tôi đã có một dự án đầy đủ chức năng hỗ trợ iOS7-8. Tất nhiên nó đã được gửi thành công nhiều lần cho AppStore.

Chúng tôi sử dụng các nhóm, rất nhiều theo dõi và giám sát, như GA và Instabug.

Bây giờ chúng tôi quyết định gửi phiên bản ứng dụng được xây dựng trên Xcode 7 trên iOS 9 tới TestFlight.

Chúng tôi đã vô hiệu hóa bitcode, vì nhiều pod, như Flurry và các thư viện dựng sẵn khác không bao gồm nó.

Quá trình xây dựng thành công, sau khi gửi tới iTunesConnect, chúng tôi nhận được điều này: nhập mô tả hình ảnh ở đây

Chúng tôi đã có thư viện GoogleAppIndexing tương tự (trong nhóm cũng vậy), nhưng chúng tôi đã xóa nó, chỉ để làm cho nó hoạt động. Bây giờ - Instabug. Nó đã đi quá xa, vì vậy tôi đang cố gắng hiểu những gì đang xảy ra trong iOS 9 và những thay đổi nào đã khiến một dự án hoạt động hoàn chỉnh bắt đầu gặp phải những lỗi như vậy.

Mọi suy nghĩ và ý tưởng đều được hoan nghênh! Vui lòng chia sẻ kinh nghiệm của bạn và nếu tôi bỏ lỡ điều gì đó, tôi sẽ sẵn lòng chia sẻ các bước của mình.


2
Bạn đã giải quyết được vấn đề này chưa? Tôi cũng đang đối mặt với vấn đề này, nhưng đó là GoogleMaps.bundle ...
Johnny

1
Chưa, chưa. Có vẻ như đó là một vấn đề chung chung.
Dumoko

Điều này thực sự khó chịu :(, tôi đã hỏi trên diễn đàn Nhà phát triển của Apple, xem có ai khác gặp sự cố này không. Forum.developer.apple.com/message/42851#42851
Johnny

Chúng tôi cũng thấy điều này trong tích hợp mới với Startapp. Ngoài ra iOS 9 và Xcode 7 beta 5.
Trey Bean

2
Moataz từ Instabug tại đây. Bạn có thể thay thế các Instabug.bundle mà bạn có với này một dropbox.com/s/37zwhaqzatfnz3n/Instabug.bundle.zip?dl=0 , hãy để tôi biết làm thế nào nó đi
Moataz Soliman

Câu trả lời:


112

Tôi đã gặp phải sự cố tương tự ngày hôm nay với cùng một thông báo lỗi khi cố gắng gửi ứng dụng của chúng tôi (sử dụng Xcode 7 beta 5) nhưng thay vì instabug.bundlebit, đó là lỗi dành cho tôi TencentOpenApi_IOS_Bundle.bundle.

Sau đó, tôi đã giải quyết vấn đề bằng cách tìm gói có tên trong dự án - giống như thông báo lỗi gợi ý - đã chỉnh sửa Info.plistgói có trong gói bằng cách xóa CFBundleExecutablekhóa. Các CFBundlePackageTypechìa khóa đã được thiết lập để BNDLvì vậy tôi đã không chạm vào nó.

Sau những thay đổi này, tôi đã thực hiện Sản phẩm> Sạch sẽ và sau đó không gặp vấn đề gì khi gửi ứng dụng lên App store.

Tôi hi vọng cái này giúp được.


2
Cảm ơn vì đã chia sẻ kinh nghiệm của bạn! Vì vậy, nó là vấn đề tác giả thư viện. Nhưng chúng tôi, những nhà phát triển, không nên làm những thủ thuật này ... Ví dụ, tôi sử dụng nhóm và một hệ thống CI. Tôi không thể truy cập CI và mỗi lần sau khi cài đặt pod, hãy thực hiện thay đổi thủ công này. Nhưng ít nhất chúng ta sẽ có nó hoạt động. Cho đến nay tôi đang tìm kiếm một giải pháp chung. Nếu nó không đến sớm, tôi sẽ đánh dấu câu trả lời của bạn là câu trả lời hữu ích. Cám ơn bạn một lần nữa!
Dumoko

Tôi không thể làm điều này. Nếu tôi đang thử mở info.plist bên trong pod bằng Xcode, nó cho tôi biết rằng tệp đã bị khóa và các thay đổi sẽ không được lưu (và nó không). Nếu tôi sử dụng trình soạn thảo văn bản bên ngoài, tôi có thể thấy rằng nội dung của tệp plist được mã hóa bằng cách nào đó, nó không phải là văn bản thuần túy.
Mike Keskinov

@MikeKeskinov, liên kết này có thể hữu ích không: [ apple.stackexchange.com/questions/68646/… ? Nó gợi ý tìm info.plist trong Finder và chỉnh sửa quyền của tệp để cho phép bạn chỉnh sửa nó trong Xcode.
Sleiman

Tôi cũng gặp vấn đề tương tự và đã báo cáo với Apple. Các bước của bạn hoàn toàn đúng theo đề xuất của Apple. bugreport.apple.com/problem/viewproblem
Avinash

Tôi đã viết một tập lệnh shell để loại bỏ điều này như một giải pháp thay thế. Bạn thêm tập lệnh này dưới dạng tập lệnh chạy trong các Giai đoạn xây dựng của dự án của mình: gist.github.com/brightredchilli/ca63430518f0daa4dfa9
Ying

52

Gặp phải điều này AviarySDKtrên Xcode 7 GM, trong khi gửi lên App Store.

Trước tiên, tôi sẽ kiểm tra xem bạn có đang sử dụng phiên bản thư viện mới nhất của mình hay không - nhà cung cấp có thể đã sửa lỗi này. Tuy nhiên, nếu bạn vẫn gặp sự cố này, như Sleiman mô tả, bạn cần xóa CFBundleExecutablekhóa khỏi tệp plist cho thư viện vi phạm.

Cmd + Shift + O và nhập "Info.plist", sau đó bạn có thể tìm thấy tệp thích hợp:

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

Sau khi chỉnh sửa bảng xếp hạng, bạn có thể thấy tên mô tả (thay vì CFBundleExecutablevà các khóa khác. Tôi không thể chỉnh sửa tệp này trong trình chỉnh sửa bên ngoài, vì vậy tôi phải chuyển sang xem các khóa / giá trị thô bằng cách nhấp chuột phải vào danh sách:

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

Bây giờ bạn có thể thấy CFBundleExecutablekhóa (có mô tả về "Tệp có thể thực thi") mà bạn có thể xóa.

Đối với AviarySDK, tôi đã làm điều này hai lần, một lần cho mỗi lần Info.plistnhìn thấy trong hình trên và sau đó có thể gửi thành công.


Bạn có biết tác dụng phụ của việc này là gì không? Tôi đang gặp vấn đề tương tự với gói Polljoy. Bạn có nghĩ rằng mục nhập đó là sai lầm trong bảng?
Stoff81

1
"Xcode tự động thêm khóa này vào tệp danh sách thuộc tính thông tin của các dự án thích hợp." Tôi xin lỗi tôi không thể cho bạn biết các tác dụng phụ, tuy nhiên tôi nghi ngờ đó là do sử dụng một thư viện lớn tuổi mà chưa được phân phối với sự hỗ trợ cho các khuôn khổ, và sau đó Xcode cố gắng đối xử với nó giống như một mà không có hỗ trợ cho các Khung công tác.
Adam S

Thật không may cho một số thư viện (ví dụ như AppIndexing, v.v.) nội dung tệp plist dường như đã được mã hóa. Nó cho phép bạn xem nhưng không lưu bất kỳ thay đổi nào. Khi thử mở tệp bên ngoài XCode, rõ ràng tệp đó đã được mã hóa (không có văn bản thuần túy).
Mike Keskinov

điều này đã hoạt động đối với người đăng nhập google và cho phép tôi tải lên App store
James

2
Tôi vừa gặp vấn đề tương tự với Aviary và Cocoapods 0.39. Bản sửa lỗi được đề xuất của bạn dường như hoạt động. Có vẻ như đã đến lúc cắn viên đạn và chuyển sang AdobeCreativeSDK :(
Keab42

11

Tôi giải quyết vấn đề này như sau: Chúng tôi phải xóa tất cả "Tệp thực thi" của các gói sau:

  • GooglePlus.bundle
  • GPPCommonSharedResources.bundle
  • GPPShareboxSharedResources.bundle

Đảm bảo rằng "Mã loại gói" bằng BNDL

Quan trọng: Không chỉnh sửa bất kỳ thứ gì trong info.plist của dự án chính.

Các màn hình đính kèm vì chúng phải là "info.plist" của anh ấy được liệt kê phía trên mỗi gói.

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

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

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



5

Nếu bản dựng được gửi qua Ít hơn (<) Xcode 7.0 thì nó sẽ được gửi và tôi cũng đã giải quyết nó bằng cách sau cho Xcode 7 :

Tìm kiếm info.plisttrong các dự án Project Navigator như hình ảnh sau:

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

Bây giờ đã mở từng info.plisttệp một và xóa BundleExecutablekhóa NGOẠI TRỪ mục tiêu củainfo.plist

Bây giờ đã làm sạch dự án và đạt được và Nó được gửi mà không có vấn đề gì.


4

Tôi gặp vấn đề tương tự trong Thư viện Google Maps. Tôi đã xóa CFBundleExecutablekhóa bên trong GMSCoreResources.bundle( Info.plist), là dự án sạch info.plist của SDK và tải lên appstore.

Lập trình Hạnh phúc.

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


1

Chỉ cần kiểm tra Cài đặt bản dựng của bạn => Bật Bitcode và đặt nó KHÔNG


0

Một lưu ý bổ sung: đôi khi nếu bạn có các mục tiêu bổ sung, sẽ có các thuộc tính mục tiêu cũng có thể bao gồm khóa (trong phần "Thông tin"), vì vậy hãy đảm bảo kiểm tra các mục tiêu đó và xóa nó khỏi đó. Tôi đã phát hiện ra điều này với một trong những gói mà tôi đang cố gắng đưa vào. Tôi đã xóa thông tin khỏi bảng xếp hạng, nhưng vẫn gặp lỗi.


0

Nếu bạn gặp lỗi này từ thư viện được cài đặt qua CocoaPods, hãy thử pod update <OFFENDING POD NAME>

Điều đó đã giải quyết vấn đề cho tôi.


0

Tôi vừa thêm từ "BNDL" vào vị trí thích hợp trong plist"Mã loại hệ điều hành của người tạo gói".

Đó là vấn đề


0

Trong trường hợp của tôi, tôi chỉ cần Kéo và Thả SDKTrong thư mục bao gồm info.plisttệp không được sử dụng. Điều đó tạo ra vấn đề cho tôi. Vì vậy, hãy tìm info.plisttệp không sử dụng và xóa nó khỏi Mã nguồn.

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.