2012-07-29 29 views
13

Tôi đang ký gói ứng dụng bằng chứng chỉ ID nhà phát triển Apple. Tôi cần phải đăng nhập bằng cách sử dụng công cụ dòng lệnh kể từ khi xây dựng của chúng tôi là tự động và chạy từ chuỗi công cụ của chúng tôi. 90% thời gian nó hoạt động tốt với lệnh này:Lỗi "Dịch vụ dấu thời gian không khả dụng". khi sử dụng codesign trên Mac OS X 10.8

ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app 
ws5:bin nick$ spctl --assess MyApp.app 
ws5:bin nick$ 

Lưu ý: MyApp.app không phải là tên ứng dụng thực tế của tôi, và <my name here> không phải là giá trị thực tế.

Vì vậy, có lẽ 1 trong 10 lần nó không liên tục thất bại với lỗi này:

MyApp.app: The timestamp service is not available. 

Tôi đã xác nhận các .app được thông qua cơ chế kiểm dịch với spctl --assess và bằng cách nén nó và tải về các tập tin ký - vì vậy xin đừng nói "bạn đang làm sai, sử dụng Xcode". Tôi biết rằng Apple không "chính thức" khuyên bạn nên sử dụng codesign cho chứng chỉ ID nhà phát triển (theo số WWDC video) nhưng chúng tôi cần sử dụng nó để tự động hóa và vì ứng dụng của chúng tôi là sự kết hợp kỳ lạ giữa gcc và đầu ra xây dựng Qt.

Chiến lược tốt nhất xung quanh lỗi này chỉ là thử lại cho đến khi nó hoạt động trở lại? Đó là tất cả những gì tôi có thể nghĩ.

Trả lời

2

Tôi nghĩ rằng điều này không liên quan gì đến cách bạn đang ký. Tôi đã xây dựng dự án của mình nhiều lần vào chiều nay, trong Xcode, không có vấn đề gì như vậy. Nhưng tối nay, trong khi đi trên một chiếc xe buýt không có truy cập internet, tôi đã cố gắng để xây dựng ba lần và có lỗi này cùng một lúc. Vì vậy, tôi đóng MacBook Air của tôi và cả hai chúng tôi đã một giấc ngủ ngắn. Khi tôi trở về nhà, với internet không dây trở lại, tôi đã có thể xây dựng lại. Vì vậy, rõ ràng, Xcode sẽ không mã hóa, và do đó không xây dựng một ứng dụng được mã hóa, trừ khi nó có thể đạt đến một máy chủ thời gian trên internet, hoặc một cái gì đó như thế. Khá khó chịu rằng thông báo lỗi không giải thích điều này! Truy cập internet của bạn có bị gián đoạn không?

Rõ ràng, cách giải quyết lực lượng vũ phu của việc xóa giai đoạn xây dựng mã vạch có thể sẽ khắc phục được. Tôi cũng tìm thấy một easier workaround, ngoại trừ việc tôi sẽ đặt lời nhắc để nhớ bật lại chuyển đổi dấu thời gian đó trước khi xây dựng để giao hàng. Nếu không, tôi cho rằng sản phẩm chưa được đánh dấu thời gian của bạn có thể không xem xét Mac App Store hoặc Gatekeeper.

4

Điều này được theo dõi bởi Apple rdar: // 11785270, một cách giải quyết phù hợp với tôi là chạy một dự án sạch sẽ trước mỗi bản dựng.

+0

Phải, thật dễ dàng như vậy. – codingFriend1

6

Sự cố này dường như phát sinh từ sự cố mạng/tường lửa. Tôi đã liên tục nhận được lỗi này trước khi sử dụng VPN để truy cập vào mạng ít hạn chế hơn. Tôi tự hỏi máy chủ mà công cụ này đang cố gắng truy cập vào máy chủ nào.

Cách giải quyết dường như là thêm cờ --timestamp=none (vào "Cờ ký mã khác" nếu bạn đang sử dụng XCode).

-1

Làm sạch dự án của bạn + đảm bảo bạn có kết nối internet đang hoạt động. Điều này chỉ giúp tôi ít nhất.

7

Tôi không thể đề xuất giải pháp --timestamp = none. Nếu bạn không dấu thời gian chữ ký của mình, các tệp nhị phân của bạn sẽ không được ký/không hợp lệ khi chứng chỉ hết hạn. Ít nhất nếu bạn dấu thời gian chữ ký của bạn, xác minh sẽ vượt qua miễn là mã nhị phân được ký trong khi chứng chỉ vẫn hợp lệ. Điều này không làm giảm giấy chứng nhận thực sự bị thu hồi, nhưng nên giữ cho bạn được bảo hiểm trong trường hợp ai đó, có thể bạn, cần phải sử dụng bản sao lưu trữ của bạn một thời gian qua giấy chứng nhận hết hạn.

Nếu bạn không có Internet để dấu thời gian chữ ký của mình, bạn cũng có thể tắt hoàn toàn việc ký tên cho đến khi kết nối của bạn được sao lưu.

CHỈNH SỬA: Hoặc giả sử kết nối của bạn đang hoạt động, nhưng máy chủ dấu thời gian mặc định của Apple đang bị bong tróc, bạn có thể chọn cung cấp máy chủ dấu thời gian hợp lệ của riêng mình.

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