2012-02-14 35 views
17

Khi bạn chỉ định một quyền lợi và một bản sắc ký mã trong xây dựng các thiết lập (Xcode 4.2.1), bạn phải cho kết quả sau khi bạn xây dựng từ Xcode:làm thế nào để gọi BUILTIN-productPackagingUtility trong dòng lệnh

ProcessProductPackaging "myAppName.entitlements" "/path/to/myAppName.xcent" 
cd /path/to/myAppName/SourceCode 
builtin-productPackagingUtility "/path/to/myAppName/SourceCode/myAppName.entitlements" -entitlements -format xml -o "/path/to/myAppName.xcent" 


CodeSign "/path/to/Garfields Comic Boom 1.0.app" 
cd /path/to/myAppName/SourceCode 
setenv CODESIGN_ALLOCATE /Developer/usr/bin/codesign_allocate 
/usr/bin/codesign --force --sign "myCertificate" --entitlements "/path/to/myAppName.xcent" "/path/to/myAppName.app" 

Tôi muốn ký vào thư mục ứng dụng của tôi ở cuối bản dựng, chứ không phải trong quá trình xây dựng Xcode.

Vấn đề của tôi là tôi không biết cách tạo tệp xcent trong dòng lệnh.

Câu hỏi: Làm thế nào để bạn tạo tệp xcent trong dòng lệnh? Tôi đã tìm thấy từ gốc, không có gì gọi là productPackagingUtility ...

+6

Một điểm bắt đầu để phân tích thêm có thể là tệp (Xcode 4.4): '/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Framewor‌ ks/DevToolsCore.framework/Phiên bản/Hiện tại/Tài nguyên/Code Sign.xcspec' (xem phần với 'CommandLine =" builtin-productPackagingUtility [...] ') .Xcode có thể khởi tạo lớp' XCWorkQueueCommandBuiltinInvocation_productPackagingUtility' để chạy tác vụ này (đó là lớp duy nhất có hậu tố 'productPackagingUtility':' nm /[...]/DevToolsCore.framework/Versions/Current/DevToolsCore | grep -i productPackagingUtility'). – Alexander

Trả lời

0

Sử dụng tiện ích mã vạch không yêu cầu tệp xcent. Bạn có thể chỉ cần tạo một tệp plist và sử dụng nó cho các quyền lợi. Hãy chắc chắn rằng nó là một plist XML, không phải nhị phân.

2

Tôi muốn ký thư mục ứng dụng của mình ở cuối bản dựng, chứ không phải trong quá trình xây dựng Xcode.

IIRC các phiên bản Xcode gần đây than phiền nếu bạn tắt mã ký cho thiết bị.

Cách dễ nhất xung quanh việc này là để Xcode ký tên và sau đó ký lại sau. Bước này là xấp xỉ

  1. Dump các quyền lợi ban đầu với codesign -d --entitlements=MyApp.xcent MyApp.app
  2. Nếu bạn đang thay đổi hồ sơ dự phòng, sao chép cái mới để MyApp.app/embedded.mobileprovision và sửa đổi các quyền lợi phù hợp (IIRC định dạng tập tin có ma thuật 4-byte và một Độ dài 4 byte; nhớ cập nhật độ dài!).
  3. Ký lại bằng chứng chỉ bạn muốn.
0

Định dạng của .entitlements và $ {APPNAME} .xcent giống nhau để chỉ có thể được sao chép.

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