2010-11-10 4 views
10

Я часто нахожу, что мне нужно иметь встроенный iPhone, который является моей «демо-готовой» версией, которая может указывать на мой демонстрационный сервер. Я также хочу, чтобы сборка, которая является последней и самой большой конструкцией отладки, которую я разрабатываю, указывает на мой сервер разработки. Кто-нибудь нашел действительно простой способ установить два приложения, которые, возможно, являются одним и тем же кодом, но указывают на разные серверы? Возможно, у меня было бы приложение, имевшее несколько версий за последней версией? Я хотел бы использовать один и тот же проект XCode для сборки и установки на iPhone.Каков наилучший способ использования XCode для установки нескольких сборок одного приложения iOS на ваш iPhone?

ответ

9

Вы можете добавить для них специальные конфигурации компоновки, в которых каждый использует другой файл info.plist. Итак, возможно, для вашей демонстрации у вас есть info.plist с именем MyApp-Info-DEMO.plist и MyApp-Info.plist для выпуска.

Затем вы можете добавить свою переменную сервера в качестве переменной info.plist и посмотреть ее при запуске приложения. Или даже просто создайте оператор DEFINE в своей новой конфигурации, что-то вроде SERVER = demo.myserver.com для демонстрации и SERVER = production.myserver.com для live.

Наиболее важной частью является изменение CFBundleIdentifier в новом info.plist. Итак, в вашей демонстрации вы можете назвать ее чем-то вроде com.mycompany.myapp.DEMO, а реальным может быть просто com.mycompany.myapp.

Это позволит одновременно воспроизводить обе версии на телефоне (разные CFBundleIdentifiers). Просто помните, что если вы используете покупки в приложениях или уведомления о push-сервере, вы не сможете сделать это без отдельного конкретного профиля как для вашего реального идентификатора приложения, так и для вашей демонстрационной версии.

+5

Вместо отдельных файлов вы также можете использовать '$ (BUNDLE_IDENTIFIER)' в вашем файле Info.plist, а затем установить его значение как пользовательскую настройку сборки. – benzado

1

С текущей версией Xcode вы достигнете этого, изменив файл Info.plist приложения, чтобы использовать другой идентификатор пакета (и, возможно, также изменить имя продукта приложения в настройках сборки).

Предстоящая версия Xcode, из того, что я прочитал в предварительной документации, имеет функцию, которая может упростить то, что вы хотите сделать совсем немного. Однако, поскольку предварительное программное обеспечение распространяется под NDA, я не могу дать вам никаких подробностей.

2

Вы можете создать 2 разных цели с двумя разными инфо-объектами и двумя разными препроцессорами (в настройках сборки для каждой из 2 целей). Затем ifdef на препроцессоре определяет для выбора константы сервера, которую использует компилятор для каждой цели.

Затем укажите имя продукта и идентификатор пакета в двух разных целевых настройках (чтобы ни устройство, ни Симулятор не смутили два набора приложений).

Смежные вопросы