Я хотел бы иметь возможность включать или отключать определенную функциональность в приложении iOS в зависимости от того, является ли она версией выпуска или нет. Можно ли программно определить, является ли текущая сборка версией выпуска или нет? Я знаю, что подобная функциональность может быть достигнута с помощью макросов, но, как я понимаю, они не будут работать, если этот код находится внутри статической библиотеки.Можно ли определить целевую программу iOS программно
ответ
Как Н2СО3 сказал:
#ifdef DEBUG
NSLog(@"Debug mode");
#endif
Зачем вам копировать комментарий и делать его ответом? также, разве этот код не имеет закрывающей скобки? –
Потому что «комментарий» не был ответом, и он был неполным? – ader
создать флаг в вашей схеме и использовать его как
#ifdef BETA
так, что вы хотите иметь метод струнный возвращающегося две разные строки для двух различных состояний
- (NSString *)someString {
#ifdef BETA
return @"Beta String";
#else
return @"Release String";
#endif
}
Вы можете использовать встроенный
#ifdef DEBUG
это будет дифференцироваться между выпуском и отладить
Я Wouldnt рекомендую иметь две разные цели.
Будет ли этот подход работать, если я хочу поставить статическую библиотеку другому третьему лицу? Я хочу иметь возможность инкапсулировать код, который отключает функциональность, если сборка является сборкой релиза, без того, чтобы пользователь библиотеки должен был настроить это или вообще знать об этом. – Ellis
, это должно быть сделано, если вы используете флаг DEBUG с обязательным условием, иначе вы должны были бы сделать это условием – ninjr
Просто задайте целевое имя в своей схеме -> Переменные окружения -> добавьте имя и значение. например: Имя_целевого_объекта = "mytesttarget"
Obj-C
NSDictionary * Envir = [[NSProcessInfo processInfo] среда];
NSString * targetName = envir [@ "targetName"];
Swift
пусть Envir = NSProcessInfo.processInfo(). Среда
пусть Имя_целевого_объект = Envir [ "Имя_целевого_объект"]
Теперь вы можете проверить целевое состояние
если Имя_целевого_объект = = "mytesttarget" {
...
} else {
...
}
- 1. Можно ли программно определить, воспроизводится ли видео?
- 2. Могу ли я программно определить целевую версию .NET Framework?
- 3. Как определить целевую архитектуру iOS в qmake?
- 4. Можно ли программно определить режим связи USB?
- 5. Можно ли определить, какие свойства класс программно?
- 6. Можно ли программно определить обнаружение закрытия?
- 7. Можно ли определить, когда скрывается виджет iOS?
- 8. Java - Можно ли программно определить, обновляется ли антивирусное решение Windows?
- 9. Как получить программу uuid ios программно?
- 10. Андроид-тест Манифест: как автоматически редактировать целевую программу инструментария?
- 11. iOS: без GPS, можно ли определить, управляет ли пользователь автомобилем?
- 12. Можно ли определить, собирается ли надпись работать в IOS?
- 13. iPhone - Как определить целевую версию iOS для развертывания существующего проекта
- 14. Можно ли программно определить, какой объект передается методу в ruby?
- 15. Можно программно определить объекты Case Scala?
- 16. Как выполнить целевую программу страницы в eclipse?
- 17. Можно ли определить, является ли UIImage растяжимым?
- 18. Можно ли определить enumalpha?
- 19. Программно определить, установлен ли Exchange
- 20. iOS: можно ли программно считывать проценты аккумулятора телефона?
- 21. Можно ли вернуться к предыдущему открытому приложению программно в iOS?
- 22. Программно определить тип сотовой сети в iOS
- 23. Программно определить, какое приложение iOS доступно пользователю
- 24. iOS Определить кнопку, которая была запрограммирована программно
- 25. Как отключить Android-программу программно?
- 26. Могу ли я открыть программу NSMenu программно?
- 27. iOS: Определить источник установки приложения iOS программно (внутри установленного приложения)
- 28. Dojox/app: возможно ли определить виды программно
- 29. Можно ли отключить commitEditingStyle программно?
- 30. Можно ли программно изменить ресурсProviderFactoryType?
'#ifdef DEBUG' должен сделать трюк. –
Макрос DEBUG определяется в Target> Build settings> Макросы препроцессора. Будут две записи: Debug и Release. По умолчанию используется макрос DEBUG = 1, определенный в записи Debug. – Jano