#file #ios-simulator #case-sensitive
#файл #ios-симулятор #чувствителен к регистру
Вопрос:
Известно, что при доступе к файлам в симуляторе iPhone регистр символов не имеет значения. Можно ли настроить iPhone Simulator так, чтобы он не игнорировал регистры?
В противном случае я могу сравнить путь к файлу из моего кода с путем к файлу с диска. Тогда какой метод использовать, чтобы получить реальный путь к файлу с правильными регистрами, соответствующими пути к файлу из кода?
Ответ №1:
Я решил с помощью скрипта на этапе сборки:
echo "list all files in [$FULL_PRODUCT_NAME]"
cd "$CODESIGNING_FOLDER_PATH"
find . -type f > "$CODESIGNING_FOLDER_PATH"/filelist.txt
И добавил некоторый код для поиска пути к файлу в filelist.txt:
BOOL file_found = NO;
for (NSString* file_path in AllFilesList) // AllFilesList keeps list from allfiles.txt
{
if ([file_path rangeOfString: relPath].location == 2) // 2 because all paths start with './'
{
file_found = YES;
break;
}
}
if (!file_found)
{
NSLog (@"!!! ERROR !!! file not found: [%@]", relPath);
for (NSString* file_path in AllFilesList)
{
if ([file_path rangeOfString: relPath options: NSCaseInsensitiveSearch].location == 2)
{
NSLog (@" corresponding file may be: [%@]", relPath);
break;
}
}
}
Ответ №2:
Вы сообщили об ошибке в Apple? iPhone simulator должен быть чувствителен к регистру так же, как и устройства.
Комментарии:
1. Apple говорит в документации, что это зависит от файловой системы. Если мы отформатируем объем жесткого диска с учетом регистра системы, симулятор и все другие приложения будут чувствительны к регистру.