Не їдь туди. Як довгостроковий розробник Mac, можу запевнити, жодне рішення насправді не працює добре. Я спробував так багато рішень, але всі вони не надто хороші. Я думаю, що проблема полягає в тому, що Apple насправді не документує формат метаданих для необхідних даних.
Ось як я це роблю вже давно, дуже успішно:
Створіть новий DMG, доступний для запису (!), Достатній для розміщення очікуваних бінарних та додаткових файлів, таких як readme (рідко може працювати).
Встановіть DMG і вручну розкладіть його в Finder або будь-яким іншим інструментом, який вам підходить для цього (див. Посилання FileStorm внизу для хорошого інструменту). Фонове зображення, як правило, це зображення, яке ми поміщаємо в приховану папку (".що-то") на DMG. Помістіть туди свою копію (будь-яка версія, навіть застаріла). Скопіюйте інші файли (псевдоніми, readme тощо), які ви хочете туди, знову ж таки застарілі версії стануть чудовими. Переконайтесь, що піктограми мають потрібні розміри та положення (IOW, розташуйте DMG так, як ви хочете).
Знову відключіть DMG, усі налаштування повинні зберігатися на даний момент.
Напишіть сценарій створення DMG, який працює наступним чином:
- Він копіює DMG, тому оригінал більше не торкається.
- На ньому монтується копія.
- Він замінює всі файли найсучаснішими (наприклад, найновішою програмою після збирання). Ви можете просто використовувати mv або ditto для цього в командному рядку. Зауважте, що коли ви замінюєте такий файл, піктограма залишатиметься однаковою, позиція залишатиметься такою ж, все, окрім вмісту файлу (або каталогу), залишатиметься таким же (принаймні, з ditto, яке ми зазвичай використовуємо для цього завдання) . Звичайно, ви також можете замінити фонове зображення іншим (просто переконайтеся, що воно має ті ж розміри).
- Після заміни файлів змусьте сценарій знову відключити копію DMG.
- Нарешті зателефонуйте hdiutil для перетворення записуваного в стиснений (і такий, що не піддається запису) DMG.
Цей метод може здатися не оптимальним, але, повірте, він дуже добре працює на практиці. Ви можете покласти оригінальний DMG (шаблон DMG) навіть під контроль версій (наприклад, SVN), тому якщо ви коли-небудь випадково його зміните / знищите, ви можете просто повернутися до редакції, де все ще було нормально. Ви можете додати шаблон DMG до свого проекту Xcode разом з усіма іншими файлами, що належать до DMG (readme, URL-файл, фонове зображення), все під контролем версій, а потім створити ціль (наприклад, зовнішня ціль під назвою "Create DMG") і запустіть сценарій DMG вище та додайте свою стару головну ціль як залежну ціль. Ви можете отримати доступ до файлів у дереві Xcode за допомогою $ {SRCROOT} у скрипті (це завжди вихідний корінь вашого продукту), а ви можете отримати доступ до створення продуктів за допомогою $ {BUILT_PRODUCTS_DIR} (це завжди каталог, де Xcode створює результати збирання) .
Результат: насправді Xcode може створювати DMG наприкінці збірки. DMG, який готовий до випуску. Не тільки ви можете створити реле DMG досить легко таким чином, ви можете це зробити в автоматизованому процесі (на безголовому сервері, якщо хочете), використовуючи xcodebuild з командного рядка (наприклад, автоматизовані нічні побудови).
Що стосується початкової верстки шаблону, FileStorm є хорошим інструментом для цього. Він комерційний, але дуже потужний і простий у використанні. Нормальна версія коштує менше 20 доларів, тому вона дійсно доступна. Можливо, можна автоматизувати FileStorm для створення DMG (наприклад, за допомогою AppleScript), ніколи цього не пробував, але, коли ви знайшли ідеальний шаблон DMG, оновити його дійсно легко для кожного випуску.