2012-06-26 8 views
5

Đang cố gắng để làm cho ứng dụng của tôi làm việc với sandboxing tôi gặp khó khăn trong vấn đề này:Sandboxing, các mục đăng nhập và khởi động ứng dụng

tôi cần phải thêm App của tôi để đăng nhập các mặt hàng vì vậy tôi đã theo các bước sau:

  • Tạo một HelperApp.app (với is agent = YES) mà tại exec mở mã này:

    NSString * appPath = @ "/ Applications/MyNewApp.app"; [[NSWorkspace sharedWorkspace] launchỨng dụng: appPath]; [NSApp chấm dứt: nil];

    Ứng dụng này được sandboxed.

  • Tôi đã thêm một bản sao xây dựng giai đoạn để bó MyNewApp.app tôi với subpath Contents/Library/LoginItems và đích wrapper

    Và rõ ràng cũng là MyNewApp.app là sandboxed

  • Trong MyNewApp.app tôi đã đăng ký với SMLoginItemSetEnabled id nhóm cho HelperApp.app

Bây giờ tất cả hoạt động chính xác nhưng ... khi MyNewApp.app cố gắng để khởi động MyNewApp.app tôi nhận được một lỗi:

LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null). 

Nhưng nếu tôi cố gắng sử dụng HelperApp.app để khởi động một không sandboxed (tức là Steam.app) ứng dụng nó hoạt động như một say mê!

Có cách nào khác để khởi chạy ứng dụng không? có lẽ NSWorkSpace hoạt động với các chức năng không được phép trong ngữ cảnh sandbox. Bạn có đề nghị gì?

Trả lời

4

Bạn có thể muốn xem hướng dẫn của tôi trên how to get launch at login working in the sandbox.

+0

hướng dẫn tốt! Nhưng tôi không thể hiểu tại sao nó hoạt động nếu tôi tạo một không gian làm việc với 2 dự án và nó không hoạt động nếu tôi sử dụng 2 dự án khác nhau và tôi sao chép ứng dụng trợ giúp thông qua các gói sao chép. – MatterGoal

+0

Câu hỏi hay. Tôi đã thừa nhận rằng tôi không có câu trả lời ngay, tôi đã tìm ra giải pháp làm việc bằng thử và lỗi .. – Tim

+3

Vui lòng thêm các khái niệm cơ bản vào câu trả lời của bạn. Một câu trả lời chỉ có liên kết, đó là những gì này là, trở nên vô ích khi bạn hướng dẫn đi offline. – dandan78