2010-02-01 45 views
5

Cuối cùng, chúng tôi đã nhận được điểm gửi ứng dụng iPhone đầu tiên của chúng tôi đến cửa hàng ứng dụng (hoặc cố gắng), nhưng tôi dường như không nhận được iTunes Connect để chấp nhận tải lên.Không thể tải lên nhị phân ứng dụng lên App Store

Tôi đã cố gắng thông qua cả trang web ("Mã nhị phân bạn đã tải lên không hợp lệ. Chữ ký không hợp lệ hoặc không được ký bằng chứng chỉ gửi của Apple.") Và Trình tải ứng dụng ("Info.plist không chứa một CFBundleResourceSpecification ").

Sau rất nhiều đọc (bao gồm questions like these), đọc lại, và googling, tôi có thể nói rằng:

  • Tôi chắc chắn rằng nhận dạng theo gói phù hợp với AppID.
  • Có một Icon.png, đó là tệp PNG px 57x57, và đó là tên chính xác trong Info.plist.
  • Tôi đang làm một thiết bị, không phải là trình mô phỏng, xây dựng.
  • Quá trình ký thành công: kết quả xây dựng hiển thị điều này và chạy codesign -vvvv MyApp.app không có vấn đề gì.
  • Không có ký tự lạ nào trong đường dẫn đến tệp ZIP.
  • Tôi đã xóa thư mục xây dựng và xây dựng lại tệp nhị phân một vài lần.

Bây giờ, đúng là trong ứng dụng được xây dựng, Info.plist không chứa khóa CFBundleResourceSpecification, nhưng tôi không biết rõ giá trị đó đến từ đâu hoặc tôi cần thêm gì khác để thực hiện công việc này. (Tài liệu tham khảo duy nhất tôi có thể tìm thấy bằng cách sử dụng tìm kiếm của Apple là một số code signing release notes ... nhưng, như tôi đã đề cập ở trên, bước ký mã đang thành công, theo như tôi có thể biết.)

Có ai đó giải thích về điều này vấn đề mà tôi chưa đề cập đến?

EDIT: Đây là (hơi redacted) đầu ra từ mã ký bước xây dựng, FWIW:

code signing screenshot http://img70.yfrog.com/img70/8988/codesign.png

+0

Bạn có thể tải lên mọi thứ trước đây không? Bạn có chắc là tất cả các chứng chỉ của bạn đều hợp lệ và chưa hết hạn? – fbrereto

+0

Ngoài ra, bạn có chắc chắn bạn đang xây dựng cho 3.1.2 và không nói, 3.2 beta? – Aaron

+0

@fbrereto đây là lần gửi ứng dụng đầu tiên của chúng tôi. Hồ sơ phân phối chắc chắn chưa hết hạn. (Và tôi hy vọng rằng nếu các chứng chỉ không hợp lệ, bước mã hóa của bản dựng sẽ không có màu xanh lá cây.) –

Trả lời

10

Vấn đề dường như là tôi đang sử dụng json-framework trong ứng dụng của mình và bao gồm nó dưới dạng SDK bổ sung cho mỗi the instructions in the wiki. Tôi đoán là XCode đã bị nhầm lẫn bởi sự hiện diện của> 1 SDK, và do đó không thể tìm thấy ResourceRules.plist mặc định như nó được cho là.

tôi thấy hai giải pháp (tốt, cách giải quyết, dù sao):

  1. Sử dụng "Mã Ký Rules Resource Path" xây dựng thiết (đó là trống theo mặc định) để xác định đường dẫn đến tập tin XCode nên sử dụng : $(SDKROOT)/ResourceRules.plist. Điều này hoạt động, và dường như vô hại vô hại, nhưng là bực bội trong ý nghĩa rằng XCode sẽ có thể tìm ra điều này một mình. (Tôi đã tìm thấy giải pháp này trong một số very old issue được đệ trình trên khung công tác.)
  2. Không sử dụng phương pháp SDK. Thay vào đó, chỉ cần bao gồm các tệp trực tiếp vào dự án và cập nhật các câu lệnh #import với đường dẫn cục bộ. Đây là cách tiếp cận mà tôi đã kết thúc, vì chúng tôi đưa ra quyết định chung để gấp tất cả các phụ thuộc bên ngoài vào chính dự án (để các nhà phát triển khác có ít cấu hình hơn để thực hiện trên máy của họ để hoạt động).

Tôi không chắc liệu đây có phải là lỗi trong XCode hay không, hoặc có vấn đề gì đó với khung công tác json nhưng tôi chỉ có filed an issue trong trường hợp này.

CẬP NHẬT, ngày 30 tháng 6 năm 2010: vấn đề tôi đã gửi đã bị đóng và ông Brautaset có kế hoạch xóa hỗ trợ cho tùy chọn SDK trong bản phát hành tiếp theo (2.3) của dự án. Ngoài ra, code now lives on GitHub, mặc dù các trang Google Code vẫn tồn tại cho đến bây giờ.

+0

Tôi yêu bạn. Chỉ cần nhấn với cùng một vấn đề và đã đập đầu của tôi trong gần một giờ. Tôi cũng đã cài đặt bản Xcode 3.2.2 beta, vì vậy hãy bắt đầu suy ngẫm việc cài đặt lại tất cả. Bạn cai trị! –

+0

Tôi gặp vấn đề tương tự với SDK cốt lõi mà tôi đang sử dụng. Đặt "Đường dẫn quy tắc tài nguyên ký mã" như được mô tả ở trên giải quyết vấn đề của tôi. Cảm ơn rất nhiều. – aogan

0

Bạn có chắc bạn đang xây dựng với một phân phối, như trái ngược với phát triển , chứng chỉ và mobileprovision?

+0

Có. Mã nhận diện ký tên được đặt thành hồ sơ phân phối của chúng tôi và bước tạo mã ký tên hiển thị tên hồ sơ chính xác. –

0

Tôi giả sử bạn đang tải lên tệp .zip.

Tôi vừa chọn một ứng dụng tôi đã tải lên và CFBundleResourceSpecification chỉ có trong các phiên bản đã ký (tức là thiết bị được tạo).

+0

Có, tải lên tệp ZIP. –

+0

Tôi đang trong quá trình tương tự khi tạo tệp .mobileprovision cho phân phối App Store, phần Thiết bị chuyển sang màu xám tôi không thể chọn bất kỳ, tại sao lại là điều này? –

0

Bạn có đang thực hiện bất kỳ việc xây dựng/sao chép/nén từ dòng lệnh nào không? Nếu vậy, bạn phải rất cẩn thận về các liên kết tượng trưng. Các .app đi kèm với một thư mục con như là một liên kết tượng trưng khác, và nếu bạn sao chép nó hoặc zip nó mà không có cờ bên phải, nó sẽ sao chép nội dung khó khăn, mà messes với codesigning.

Điều này đã xảy ra với tôi - và phần tồi tệ nhất là công cụ xây dựng quảng cáo hoạt động tốt mà không có liên kết tượng trưng, ​​vì vậy bạn không nhận thấy vấn đề cho đến khi xây dựng cửa hàng ứng dụng.

+0

Thực hiện tất cả các bản dựng thông qua XCode và cố gắng nén cả hai từ dòng lệnh và (thường) thông qua tùy chọn trình đơn nén của Trình tìm kiếm. (Tôi đã thấy một số cuộc thảo luận đề cập đến vấn đề liên kết tượng trưng.) –

0

Thông báo này có thể xảy ra vì một lý do khác (như tôi vừa phát hiện sáng nay): nếu dự án của bạn có nhiều Info.plists trong đó, Trình tải lên ứng dụng có thể phát hiện ra Info.plist "sai" và bị nhầm lẫn.

Điều này đã xảy ra với tôi vì phần tự động của bản dựng đang tạo Info.plist trong một gói được đưa vào dự án.

Hat tip để đây cho các giải pháp: http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcespecification/

1

Đối với tôi, sau khi kiểm tra tất cả mọi thứ (codesign, các tập tin biểu tượng ...) nhưng bạn không thể tải ứng dụng của bạn, hãy cố gắng xóa các tập tin xây dựng . Nhớ sao chép file.app để nén ứng dụng của bạn.

0

Đối với tôi giải pháp đã tạo chứng nhận phân phối tại: Apple Developer Provisioning Portal.

+0

Đó chắc chắn là một bước cần thiết để gửi * mọi thứ * đến App Store, nhưng cũng là một tài liệu được mong đợi và được ghi nhận đầy đủ. Không phải nguyên nhân gây nhầm lẫn ban đầu ở đây. –

Các vấn đề liên quan