2009-09-28 4 views
0

У меня есть исполняемый файл для моего приложения для какао как файл xyz.app. Но когда я копирую это в windows, он показывает это как каталог со всеми файлами ресурсов и т. Д. Есть ли способ создать один исполняемый файл на Mac также (например, файл .exe в Windows), чтобы отключить пользователя от просмотра файлов ресурсов и других файлов?cocoa + .app file

Благодаря

ответ

1

Вы говорите о расслоении, что папка, в которой дается расширение и ОС рассматривает его, как будто это один файл, в то время как в действительности это папка с ресурсами в нем. Файлы NIB хранятся в этом комплекте, а также исполняемый файл и файл info.plist. Это именно то, как приложения работают в Cocoa.

Единственный способ обойти это было бы написать ваше приложение на другом языке, но я не уверен, что, если таковые имеются, предоставит вам один исполняемый файл.

Что вы храните в своем каталоге приложений, к которым у вас нет доступа?

+0

Я не хочу, чтобы люди имели доступ к файлам nib и файлам jpeg и т. Д. – King

+0

atleast есть ли способ загрузить эти файлы и файлы изображений в виде объектных файлов, а не исходные исходные файлы ??? – King

+0

Я полагаю, вы можете создать свой собственный формат файла и сохранить все свои ресурсы в этом, а затем написать код для распаковки этих ресурсов во время выполнения, но это похоже на большую работу, чтобы скрыть кучу файлов, которые в конечном итоге будут отображаться на экране все равно. Плюс это не так, как Cocoa ожидает загрузки файлов '.nib', поэтому он может даже не работать для наконечников. – mipadi

1

Есть смехотворно сложные способы сделать это, конечно. Например, вы можете gzip все ваши файлы ресурсов и распаковать их во время выполнения. Но нет веских оснований для этого - все, что он делает, это сделать больше работы для вас, ввести дополнительную сложность и замедлить работу приложения. Adobe этого не делает, Microsoft этого не делает, микро-ISV не делают этого - это просто не рекомендуется.

+0

Вы можете, например, объединить все ресурсы изображения в одну большую растровую карту и сохранить граничные координаты каждого (например, в сгенерированном файле заголовка), а затем у вас есть только одна вещь, которая не очень полезна вне вашего контекста , И это улучшает производительность, делая только одну нагрузку с диска и одно распределение памяти. :) –

+0

@Jeff: Может быть. Это не обязательно принесет вам что угодно. Если вы собираетесь отображать все изображения, как только приложение загрузится, обязательно. В противном случае вы можете просто замедлить запуск приложения и, возможно, даже раздувать ваш объем памяти, если многие изображения вряд ли будут отображаться во время средней сессии. Он также по-прежнему оставляет ваши «исходные файлы» (изображения) легко просматриваемыми вне вашей программы, поэтому он не затрагивает вопрос о «скрытии» файлов. – Chuck

+0

Тогда, ребята, если это дело, can not конечный пользователь использует файлы nib и модифицирует окна и прочее ??? – King