2017-01-17 14 views
8

Tôi đang phát triển một ứng dụng Electron cho Mac OS X. Tôi đang cố gắng thử nghiệm tính năng tự động cập nhật của nó trong khi phát triển cục bộ, trước khi gói nó dưới dạng .app.Làm cách nào để mã ký một ứng dụng Electron trước khi gói nó (cho Mac)?

Tôi có một phiên bản ban đầu của ứng dụng, Foo.app, cùng với .dmg.zip, sử dụng mô-đun electron-builder, để sử dụng làm bản cập nhật. Tôi đã lưu trữ các tệp này. Tôi đã xác minh rằng họ cài đặt và chạy đúng. Và tôi có một máy chủ Squirrel, chạy cục bộ, sẽ trả về một tải trọng JSON chính xác trỏ đến số .zip đó.

Để phát triển ứng dụng của mình cục bộ, tôi đang sử dụng Webpack để chuyển đổi nội dung web của mình và sử dụng [email protected] để khởi chạy các nội dung đó trong Electron. Nói cách khác, khi phát triển cục bộ, tôi không khởi chạy gói kèm theo .app; Tôi đang khởi chạy một máy chủ dev và phục vụ các tài sản đó trong Electron. Quá trình này tương tự như chạy $ electron ..

Vấn đề xảy ra khi móc tự động cập nhật được gọi là, tại dòng này:

autoUpdater.setFeedURL(feedURL) 

Dòng này đặt ra một lỗi điện tử nói rằng:

"Could not get code signature for running application." 

OK, vì vậy tôi thực hiện tìm kiếm và thấy rằng có một số hướng dẫn giải thích cách mã ký một ứng dụng:

Nhưng, những chỉ ra rằng tôi nên mã ký .app. Như tôi đã nói, tôi đang cố gắng kiểm tra tự động cập nhật trước khi Tôi nhóm nó dưới dạng .app. Tôi không muốn xây dựng lại một lần nữa và một lần nữa cho đến khi tôi nhận được tự động cập nhật làm việc một cách chính xác.

Vì vậy, tôi làm một tìm kiếm khác và xem có một số câu hỏi diễn đàn mà có nhiều hoặc ít hơn giống như những gì tôi yêu cầu:

Tôi đang gặp khó khăn khi giải quyết các giải pháp đào từ các chủ đề này. Tôi hy vọng một người nào đó có thể cho tôi một giải pháp rõ ràng để ký một ứng dụng Electron trước khi gói nó.


Đối với một câu trả lời, tôi hy vọng để có được một câu trả lời rõ ràng về tất cả những:

  • Có thể mã hóa ký ứng dụng điện tử của tôi trước khi bundling nó như là một .app? Tức là, các tệp mà tôi sẽ khởi chạy với $ electron .?
  • Nếu có, làm cách nào?
  • Nếu không, tại sao? Và có cách nào để tăng tốc độ thử nghiệm này?
+0

Niềm tin hiện tại của tôi là * không thể * để ký mã trước khi gói ứng dụng. Nếu bạn muốn thử nghiệm một tính năng như tự động cập nhật, bạn sẽ chỉ cần đóng gói ứng dụng, ký hiệu mã và sau đó kiểm tra tính năng trong ứng dụng được nhóm. Tôi không biết điều này cho một thực tế; Tôi chỉ cần đặt nó ra có trong trường hợp những người khác nhìn thấy câu hỏi này và muốn một số loại thay thế khả thi (mặc dù bực bội). – GladstoneKeep

+0

Tôi vừa gặp sự cố tương tự. Bực bội ... – lazlojuly

Trả lời

0

Bắn lâu và tôi chưa xác minh điều này.

Squirrel.Mac kiểm tra việc ký ứng dụng hiện đang chạy [1], đây là thực thi AppName.app/Contents/MacOS/AppName khi bạn đang chạy một ứng dụng đóng gói. Mà về cơ bản là một thực thi điện tử được đổi tên.

Nhưng khi bạn chạy electron . nó sẽ chạy tệp thực thi từ thư mục node/bin của bạn. Electron không được ký theo mặc định, vì vậy nếu bạn ký tên thì trình cập nhật tự động có thể thành công với kiểm tra cert.

Vì vậy, về cơ bản:

  1. Find điện tử: which electron
  2. Thay đổi thư mục làm việc để con đường điện tử
  3. Đăng electron với codesign -s "Developer ID Application: YourCompanyName" electron
  4. Validate chữ ký mã với codesign -dvvv electron

Hy vọng rằng nên cắt nó.

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