Создание.DMG

Используйте прослушиватель событий, который прослушивает события Model.beforeSave, Model.beforeFind и Model.initialize и применяет все, что вы хотите сделать. Прочитайте главу о событиях и документации для обратных вызовов таблицы .

use Cake\Event\EventListenerInterface;
use Cake\Event\Event;

class SomeListener implements EventListenerInterface
{

    public function implementedEvents()
    {
        return [
            'Model.beforeFind' => 'beforeFind',
        ];
    }

    public function beforeFind(Event $event, Query $query, ArrayObject $options, boolean $primary)
    {
        // Your code here
    }
}

И присоедините ее к глобальному . Теперь он будет слушать обратные вызовы всех табличных объектов.

19
задан dbr 15 December 2008 в 09:16
поделиться

3 ответа

Сделать это вручную:

Метод 1:

  • Делают папку с файлами, которые будет содержать Ваш DMG.

enter image description here

  • Открывают Disk Utility (It находится в /Applications/Utilities/)

enter image description here

  • , Переходят к Файлу> Новый>, Новое Изображение от Папки (Cmd + Shift + N)

enter image description here

  • Выбирает папку, содержащую Вас, файлы
  • Удостоверяются "Сжатые", проверяется, затем устанавливается, где Вы хотите сохранить созданный метод DMG

enter image description here

enter image description here

enter image description here

2:

, Чтобы сделать вещи как установка фонового изображения могут быть немного замысловатыми (Вы в основном добавляете фоновое изображение к DMG, устанавливаете свойства окон для использования того изображения, с помощью командной строки, Вы перемещаете фоновое изображение от background.png до .background.png для создания этого скрытым)

, я рекомендовал бы iDMG, который делает вещи немного менее утомительными.

можно также написать сценарий создания DMGs использование команды hdiutil. Что-то вроде [1 138]

hdiutil create -srcfolder mydirtodmg mydmg.dmg

enter image description here

Что касается пользовательского лицензионного соглашения, необходимо изучить инструмент, включенный с Инструментами Разработчика "PackageMaker" - это довольно очевидно. Это находится в /Developers/Application/Utilities/

27
ответ дан 30 November 2019 в 03:25
поделиться

Я сделал немного сценария удара для автоматизации создания образа дисков.

Это создает временный каталог, чтобы хранить все необходимые файлы, затем экспортируют его в новом файле DMG. Временный каталог затем удален. Можно автоматически запустить этот сценарий в конце процесса сборки.

#!/bin/bash
# Create .dmg file for macOS

# Adapt these variables to your needs
APP_VERS="1.0"
DMG_NAME="MyApp_v${APP_VERS}_macos"
OUTPUT_DMG_DIR="path_to_output_dmg_file"
APP_FILE="path_to_my_app/MyApp.app"
OTHER_FILES_TO_INCLUDE="path_to_other_files"


# The directory of the script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# The temp directory used, within $DIR
WORK_DIR=`mktemp -d "${DIR}/tmp"`

# Check if tmp dir was created
if [[ ! "${WORK_DIR}" || ! -d "${WORK_DIR}" ]]; then
    echo "Could not create temp dir"
    exit 1
fi

# Function to deletes the temp directory
function cleanup {
    rm -rf "${WORK_DIR}"
    #echo "Deleted temp working directory ${WORK_DIR}"
}

# Register the cleanup function to be called on the EXIT signal
trap cleanup EXIT

# Copy application on temp dir
cp -R "${APP_FILE}" "${WORK_DIR}"
# Copy other files without hidden files
rsync -a --exclude=".*" "${OTHER_FILES_TO_INCLUDE}" "${WORK_DIR}"

# Create .dmg
hdiutil create -volname "${DMG_NAME}" -srcfolder "${WORK_DIR}" -ov -format UDZO "${OUTPUT_DMG_DIR}/${DMG_NAME}.dmg"
0
ответ дан 30 November 2019 в 03:25
поделиться

почему бы вам просто не запустить сценарий из вашего проекта xcode. попробуйте что-то вроде этого:

# be sure to check the man page for hdiutil
# it is very powerful and has tons of options...

hdiutil create -megabytes 54 -fs HFS+ -volname awesome_app_install myAwesomeApplication.dmg
hdiutil mount myAwesomeApplication.dmg
cp -r /build/Release/AwesomeApplication.app /Volumes/awesome_app_install/

затем сохраните ваш скрипт как что-то вроде makeDMG.sh и в своей цели

выберите add-> new build phase-> run script build phase
и перетащите свой скрипт на эту фазу сборки.

после того, как вы все это сделаете, затем, когда вы соберете свой проект, скрипт создаст образ диска и скопирует в него сборку релиза ...

конечно, вам следует приправьте ваш скрипт, чтобы придать ему вкус ... эти три строки - всего лишь сырое мясо

ps: ваше пользовательское лицензионное соглашение должно быть встроено в ваш проект создателя пакетов (который вы также можете создать очень красиво)

4
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: