Приложение для Mac OS, песочница с инструментом командной строки?

Я сделал приложение, которое включает в себя инструмент командной строки. Я включил песочницу приложения и проверил, работает ли она. Я также подписал код как для приложения, так и для инструмента командной строки.

Но когда я загружаю приложение в iTunes, я получаю электронное письмо с сообщением «Песочница приложения не включена».

По-видимому, мне нужно установить файл прав ключа com.apple.security.app-sandbox со значением true и перечислить исполняемые файлы: /Contents/MacOS/myApp и /contents/Frameworks/x86/myCommandLineTool.

Я уверен, что включил песочницу в Xcode, поэтому я подумал, что проблема связана с инструментом командной строки.

Как включить песочницу для инструмента командной строки? Или есть конкретная папка, в которую я должен поместить инструмент? Любые предложения приветствуются - меня беспокоит это уже несколько дней.


person dinosaur    schedule 06.08.2012    source источник
comment
спасибо за редактирование andrewdotnich.   -  person dinosaur    schedule 06.08.2012


Ответы (1)


У меня была такая же проблема, и после некоторого поиска, проб и ошибок это сработало для меня:

  1. создайте файл прав - для меня это было просто com.apple.security.inherit, установленное на YES. Я создал этот файл в самом xcode.

  2. Теперь подпишите этот инструмент командной строки с помощью команды:

    codesign --entitlements ./entitlements.plist -s "copy & paste your certificate from keychain" ./commandlinetool   
    
  3. Чтобы быть уверенным, проверьте с помощью этой команды:

    codesign --display --entitlements - ./commandlinetool   
    
  4. Этот инструмент уже был включен в проект. Так что просто скомпилируйте, заархивируйте и отправьте

Сейчас статус "ожидает проверки".

person jjude    schedule 25.08.2012
comment
Это сделало мой день! Спасибо! - person SevenBits; 11.12.2014
comment
Я не уверен, как будет работать копирование из цепочки для ключей. Когда я щелкаю правой кнопкой мыши и выбираю «Копировать», в буфер обмена ничего не добавляется. Есть ли что-то очевидное, что я упускаю из виду? - person Ben West; 11.03.2016
comment
@BenWest Буквально скопируйте имя сертификата. Например: Разработчик Mac: Джон Смит (1231231231) - person kjb; 20.11.2017
comment
Еще одна вещь, которую я хочу добавить, — убедиться, что ваш инструмент командной строки не находится в папке ресурсов. После долгих мучений я понял после прочтения руководства по знакам кода, что инструменты должны быть установлены / расположены в определенных местах, то есть в папках MacOS, Helpers и т. Д. Надеюсь, это ценное дополнение. - person Khushneet; 12.07.2018