Добавление символической ссылки в комплект приложений

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

// this works by going up the bundle dir, then pointing to the Documents dir
localNotif.soundName = @"../Documents/blabla.caf";

Этот обходной путь хорошо работал с iOS 5, однако он сломался в iOS 6. В отчаянной попытке попытаться найти новый обходной путь, я создал псевдоним (Symbolic Link), который называется blabla.caf это указывает на ../Documents/blabla.cafи поместил его в пакет приложений. Это где я застрял.

Теперь я получаю PBXCp errorи XCode не может завершить развертывание приложения на устройстве, потому что, по-видимому

ошибка: /Users/stuff/moreStuff/appName/../Documents/blabla.caf: такого файла или каталога нет


Мой вопрос:

  1. Можно ли как-нибудь добавить фиктивный файл (0 КБ) в Documents каталог просто закрыть Xcode?
  2. Могу ли я как-то заставить XCode просто переопределить эту ошибку и продолжить развертывание приложения?

2 ответа

Решение

Если вы разместите символическую ссылку на ../../Documents/blabla.caf внутри папки, а затем добавьте папку в проект (убедившись, что вы установили "Создать ссылки на папки..." при импорте вместо "Создать группы..."), тогда Xcode не будет пытаться разрешить ссылку во время процесс сборки.

Я проверил, что сама ссылка отлично работает в приложении, хотя я не уверен, что UILocalNotification примет folder/blabla.caf в свойстве soundName.

Несмотря на то, что в iOS 7.1 работает символическая ссылка из пакета в каталог документов, этот обходной путь становится бесполезным, если вы собираетесь поместить приложение в AppStore. С марта 2014 года приложения с такими символическими ссылками не будут проходить обзор.

После того, как я загрузил приложение с такой ссылкой в ​​комплекте к iTunes, я получаю Invalid binary статус сразу. Со следующей почтой из iTunes Store:

Уважаемый разработчик,

Мы обнаружили одну или несколько проблем с вашей недавней доставкой "X". Для обработки вашей доставки необходимо исправить следующие проблемы:

Invalid Symlink - Ваш пакет содержит символическую ссылку "Внешние / Документы", которая преобразуется в местоположение "Внешние /../../ Документы", которое не существует или находится за пределами пакета.

...

С Уважением,

Команда App Store

Другие вопросы по тегам