Поддерживать отдельные цели для магазина приложений Mac и независимо распространяемого приложения Mac очень просто. Вам просто нужно убедиться, что код подтверждения вашей квитанции условно включен в цель магазина приложений, а не в другую цель; и ваша таможенная схема лицензирования включена наоборот. Все становится немного сложнее, если вы нацеливаетесь на разные операционные системы в двух целях, но они не являются непреодолимыми: вы можете проверить наличие классов или селекторов во время выполнения, чтобы убедиться, что вы никогда не вызовете более новый API на старых системах.
Кстати, для этих целей также стоит иметь отдельные Info.plist
файлы. Частично потому, что вам не нужно или не нужно включать такие вещи, как свойства Sparkle, в цель магазина приложений, а также потому, что каждая цель должна иметь уникальный идентификатор пакета. Магазин приложений делает странные вещи, когда у вас установлено приложение, которое, по его мнению, пришло из магазина, но на самом деле этого не произошло, и вы не хотите рисковать своим средством обновления или попыткой Apple обновить приложение, развернутое с помощью другого механизма. Но дело не в организации вашего проекта XCode, это проблема развертывания.