2011-01-26 36 views
5

Cách đặt biểu tượng cho gói không phải là một ứng dụng? Tôi đã thử bằng cách sử dụng CFBundleIconFile, nhưng nó không hoạt động (mặc dù nếu tôi chỉ thay đổi phần mở rộng bó để .app, biểu tượng được thay đổi để mong muốn). Có một chìa khóa khác, hay cách duy nhất là đặt biểu tượng cho thư mục? Nếu vậy, đã có một số kịch bản để làm điều này từ dòng lệnh (kịch bản chạy Xcode)?Đặt biểu tượng của ứng dụng không phải là mac os x bundle

Trả lời

2

Visual documentation of the process of copying and pasting an icon in the Finder

Nếu bạn cần phải làm điều đó từ CLI ... Đó là tham gia nhiều hơn một chút ...

Trước tiên, bạn cần phải thêm một chuỗi CFBundleIconFile đến của gói bạn

YourThing.bundle/Contents/Info.plist 

Đây là nơi nhà phát triển nhận được chỉ định biểu tượng tùy chỉnh cho gói. Phím này chứa tên của tệp trong thư mục Tài nguyên của gói mà chứa các biểu tượng. TextEdit giữ biểu tượng trong một tệp có tên là Edit.icns, nhưng không có quy tắc nào về tên của tệp phải có tên .

Điều đó nói rằng, bạn có cần một tập tin ICNS, hoặc có thể follow these instructions từ Utility (which includes its source code) này mà tạo ra của ICNS từ các tập tin hình ảnh thông qua các dòng lệnh ..

$ ./makeicns 

Cách sử dụng: makeicns [k1 = v1 ] [k2 = v2] ...

Khóa và giá trị bao gồm: 512: Tên hình ảnh đầu vào cho biến thể 512x512 của biểu tượng 256: Tên hình ảnh đầu vào cho biến thể 256x256 của biểu tượng 128: Tên hình ảnh đầu vào cho biến thể 128x128 của biểu tượng 32: Tên hình ảnh đầu vào cho biến thể 32x32 của biểu tượng 16: Tên hình ảnh nhập cho biến thể 16x16 của biểu tượng trong: Tên hình ảnh đầu vào cho tất cả các biến thể không rõ ràng tên ra: tên của tập tin đầu ra, mặc định là tên đầu vào không rỗng đầu tiên, nhưng với phần mở rộng ICNS

Ví dụ:

makeicns -512 image.png -32 image.png 

Tạo image.icns với chỉ một 512x512 và một biến thể 32x32.

makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns 

Tạo outfile.icns với kích thước 512, 256, 128, và 16 có chứa dữ liệu từ myfile.jpg và với kích thước 32 chứa dữ liệu từ otherfile.png.

+0

tôi cần điều này để chạy từ dòng lệnh – tig

1

Answer from similar (duplicate) question:

[[NSWorkspace sharedWorkspace] 
    setIcon:(NSImage *)image 
    forFile:(NSString *)bundlePath 
    options:0]; 
+0

Tại sao điều này đã được downvoted? Nó không hoạt động? @tig – Noitidart

+0

Giải pháp này làm việc cho tôi, tuy nhiên nó không thay đổi tệp bên trong '/ Contents/Resources/appicon.icns' trong gói ứng dụng của tôi. Ngay cả khi tôi khởi động lại nó sử dụng biểu tượng mới tôi đặt nó vào, nhưng hình ảnh cũ của tôi vẫn còn trong thư mục Tài nguyên, làm cho tôi nghĩ rằng một số công cụ phức tạp đang xảy ra khác sau đó làm mới đơn giản. Bạn có thể chia sẻ suy nghĩ của mình về @yairchu – Noitidart

+1

@Noitidart này không: Tôi đã tìm thấy nó trong câu hỏi trùng lặp (được liên kết) như tôi đã đề cập. "Fruity Geek" đưa ra câu trả lời ở đó và liên kết đến tài liệu tham khảo của Apple, tôi không có bất kỳ chi tiết nào khác .. – yairchu

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