2011-12-05 31 views
6

Làm thế nào để xây dựng ứng dụng Sandboxed mà không cần XCode? Ý tôi là tôi đang sử dụng gcc Hãy tạo ứng dụng của riêng mình và tạo hệ thống riêng để tạo gói ứng dụng. Nhưng làm thế nào tôi có thể kích hoạt Sandbox mà không sử dụng XCode và tùy chọn tùy chọn Sandbox?Làm thế nào để xây dựng ứng dụng Sandboxed mà không cần XCode?

Có tut về Sandbox, nhưng tôi không thể tìm thấy bất cứ nơi nào thông tin về cho phép Sandbox, nhưng vẫn không có về SB mà không XCode .. Bất cứ ai cũng có thể giúp đỡ? http://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxQuickStart/AppSandboxQuickStart.html#//apple_ref/doc/uid/TP40011183-CH2

+0

ứng dụng của bạn có tệp Info.plist không? –

Trả lời

8

Thật dễ dàng để ký mã cho ứng dụng của bạn bên ngoài Xcode. Đơn giản chỉ cần tạo ra quyền lợi của bạn trong một file plist riêng biệt như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<plist version="1.0"> 
    <dict> 
     <key>com.apple.security.app-sandbox</key> 
     <true/> 
    </dict> 
</plist> 

Một khi bạn có nó, bạn chỉ cần thực hiện lệnh này để mã ký gói ứng dụng của bạn và cho phép sandboxing, bằng cách làm cho nó một phần của quyền lợi:

codesign -s - -f --entitlements /path/to/entitlement.plist /path/to/YourApp.app/ 

Nếu bạn đã ký mã bằng chứng chỉ, chỉ cần thay thế '-s -' ở trên bằng '-s' 3rd Party Macintosh Developer ... "và sử dụng chứng chỉ nhà phát triển của bạn.

+0

Điều gì sẽ xảy ra nếu tôi không muốn ứng dụng của mình bị sandbox? Ứng dụng tôi đang viết có thể sẽ không bao giờ được phân phối trên cửa hàng ứng dụng vì nó chỉ dành riêng cho một sản phẩm phần cứng cụ thể; cộng với nó đòi hỏi các dịch vụ/khả năng có khả năng không có sẵn từ bên trong sandbox. Tôi có thể chỉ mã hóa một ứng dụng với ID nhà phát triển của mình mà không chỉ định bất kỳ quyền lợi nào, hộp cát, v.v. không? Việc xóa tùy chọn "--entitlements

+1

Có. Nhưng câu hỏi này là về một ứng dụng sandboxed! – Philippe

+0

Yêu cầu một câu hỏi một lần/tiếp tuyến như câu hỏi tôi đã làm theo cách mà tôi không kosher sau đó? Tôi có thực sự cần phải mở một chủ đề mới cho nó? –

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