Я часто нахожу, что мне нужно иметь встроенный iPhone, который является моей "демо-готовой" версией, которая может указывать на мой демонстрационный сервер. Я также хочу, чтобы сборка, которая является последней и самой большой конструкцией отладки, которую я разрабатываю, указывает на мой сервер разработки. Кто-нибудь нашел действительно простой способ установить два приложения, которые, возможно, являются одним и тем же кодом, но указывают на разные серверы? Возможно, у меня было бы приложение, имевшее несколько версий за последней версией? Я хотел бы использовать тот же проект XCode для сборки и установки на iPhone.
Как лучше всего использовать XCode для установки нескольких сборок одного и того же приложения для iOS на ваш iPhone?
Ответ 1
Вы можете добавить для них специальные конфигурации компоновки, в которых каждый использует другой файл 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-сервере, вы не сможете сделать это без отдельного конкретного профиля как для вашего реального идентификатора приложения, так и для вашего демо-версии.
Ответ 2
Вы можете создать 2 разных цели с двумя разными инфо-запятыми и двумя разными препроцессорами (в настройках сборки для каждой из двух целей). Затем ifdef на препроцессоре определяет для выбора константы сервера, которую использует компилятор для каждой цели.
Затем сделайте имя продукта и идентификатор пакета разными в двух разных целевых настройках (чтобы ни устройство, ни Симулятор не смутили два набора приложений).
Ответ 3
В текущей версии Xcode вы достигнете этого, изменив файл приложения Info.plist на использование другого идентификатора пакета (и, возможно, также измените имя продукта приложения в настройках сборки).
Предстоящая версия Xcode, из того, что я прочитала в предварительной документации, имеет функцию, которая может упростить то, что вы хотите сделать совсем немного. Однако, поскольку предварительное программное обеспечение распространяется под NDA, я не могу дать вам никаких подробностей.