2014-09-20 30 views
15

Tôi vừa mới nâng cấp lên XCode 6 và cố gắng xây dựng ứng dụng Mac dành cho nhà phát triển đã ký của mình. Tuy nhiên, bây giờ tôi nhận được lỗi codesign sau:Codesign: Nội dung chưa được đánh dấu là gì?

unsealed contents present in the root directory of an embedded framework 

này áp dụng cho Dropbox.framework mà tôi sử dụng. Rõ ràng là không thể ký được. Lỗi này có nghĩa là gì? Chuyện gì thế?

Trả lời

7

Có một cái nhìn tại OS X Code Signing In Depth

Bắt đầu với phiên bản OS X 10.9.5, sẽ có thay đổi trong các ứng dụng như thế nào OS X này nhận dạng ký

Structure your bundle theo sự mong đợi cho OS X phiên bản 10.9 hoặc sau này:

  • Chỉ bao gồm mã đã ký trong các thư mục chứa mã ký .
  • Chỉ bao gồm các tài nguyên trong các thư mục chứa tài nguyên
    .
  • Không sử dụng cờ --resource-rules hoặc ResourceRules.plist. Họ đã lỗi thời và sẽ bị từ chối.
+2

các liên kết thứ hai bạn về các ứng dụng? –

10

Sự cố là tệp version.txt nằm trong số Dropbox.framework. Mặc dù điều này hữu ích khi biết phiên bản của khung là gì, có vẻ như không còn chấp nhận cho việc viết mã.

Khi tôi xóa tệp, mọi thứ hoạt động tốt trở lại.

+2

Cám ơn giải pháp của bạn. Sau khi xóa tất cả mọi thứ hoạt động tốt version.txt – user3152121

2

Tôi đã gặp sự cố tương tự hôm nay ... lỗi của tôi là "nội dung chưa được trình bày hiện diện trong gốc gói". Bản sửa lỗi cho tôi là xóa biểu tượng tùy chỉnh mà tôi đã có trên ứng dụng của mình. AppName.app/Icon? bị hỏng bằng cách nào đó ...

+4

Hoặc có lẽ nó nằm trong một thư mục không chứa tài nguyên. về vị trí được phép của mình cho mã trong một gói 'Những địa điểm này được dự kiến ​​chỉ chứa mã. Đặt các tệp dữ liệu tùy ý sẽ khiến chúng bị từ chối.' Codesign -vvv sẽ tiết lộ thư mục mà nó đang từ chối. – Will

4

Đã xảy ra sự cố tương tự trong vài giờ ngày hôm nay, vì tôi đã cố gắng điều chỉnh gói sản phẩm trước Yosemite thành Yosemite. Cuối cùng, vấn đề là các liên kết mà tôi tạo ra, chứ không phải các tệp tin nghiêm ngặt trong thư mục.

Ban đầu, gói có liên kết tượng trưng bị hỏng trong thư mục gốc của nó. Tôi đã sửa nó.

Các liên kết tượng trưng Tôi nói thêm:

Headers -> Versions/Current/Headers/ 

gì nó cần thiết để được:

Headers -> Versions/Current/Headers 

Đó thêm dấu gạch chéo là kẻ giết người.

Lưu ý rằng điều này cắn tôi hai lần trong hai điểm khác nhau: Tôi cũng đã

Current -> 1.8.0/ 

nơi tôi cần

Current -> 1.8.0 

Tôi không nhiều của một * nixer, vì vậy có lẽ đây là chung ý nghĩa, nhưng hy vọng nó sẽ giúp các cửa sổ khác phát triển như bản thân tôi.

1

Tôi đã nghiên cứu điều này trong một thời gian hôm nay và không có đề xuất nào tôi tìm thấy được trợ giúp, sdl_mixer của tôi.framework có năm khung công tác nhúng mà tôi không thể vượt qua iTunesConnect. Các giải pháp của tôi là loại bỏ ba trong số chúng mà tôi không thực sự cần, và hai giải pháp khác được thêm vào dự án của tôi là các khung công tác độc lập, không được nhúng trong sdl_mixer. Hy vọng rằng điều này sẽ giúp một người nào đó, tôi đã dành hàng giờ cho việc này.

0

Tôi đã nhấn hai lần này, vì vậy tôi đang thêm các nguyên nhân, vì mã vạch rất mờ và thường từ chối cho bạn biết nguồn lực có vấn đề là gì.

Có một lần, tôi đã thực thi tệp nhị phân chưa ký. Mỗi tệp thực thi và khuôn khổ cần phải được ký riêng trước khi hát toàn bộ nhóm.

Sau đó, tôi nhấn một trường hợp khác. Tôi ký mã của tôi như là một phần của quá trình xuất bản, ký lại từng tệp thực thi và khung công tác. Nhưng Xcode cũng kí hợp đồng với nhóm, và hóa ra là đã rời khỏi tàu phía sau trong các thư mục _CodeSignature. Vì vậy, bây giờ, trước khi ký từng thực thi và các khuôn khổ và sau đó bó, tôi Pre-xóa những thư mục _CodeSignature tạo Xcode với một cái gì đó như:

find MyApp.app -name _CodeSignature -type d -exec rm -rf {} + 

Hy vọng thông tin cứng-won này sẽ tiết kiệm được một người nào đó một thời gian một ngày.

0

Tôi đã có cùng một vấn đề và những gì đã làm là xóa nội dung của thư mục DerivedData. Xcode không nói tài nguyên nào gây ra sự cố, vì vậy tôi đã xây dựng lại mọi thứ từ đầu. Sạch sẽ không hoạt động.

0

Trong trường hợp của tôi, tôi đã cố gắng ký một ứng dụng với một số khung công tác cũ bên trong. Không có gợi ý nào trong số này được giúp đỡ. Hóa ra tôi đã phải loại bỏ các tập tin PkgInfo từ bên trong một khuôn khổ để có được thông báo này để biến mất.

0

Tôi gặp vấn đề khi tôi cố gắng ký một khung công tác khác, câu trả lời ở đây rất truyền cảm hứng, ở đây phải có một số vấn đề với cấu trúc khung, nhưng tôi đã tìm thấy chúng. Cấu trúc có vẻ đúng, các liên kết tượng trưng không khai thác "/", không có tệp phụ (kiểm tra với ls) ...

Sau khi thử, cuối cùng tôi nhận ra có thêm .DS_Store trong khuôn khổ, mà thực sự gây phiền nhiễu :(

vì vậy, nếu bạn vẫn nhấn lỗi, hãy thử để kiểm tra xem có bất kỳ tập tin ẩn.

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