2013-11-15 3 views
1

У меня проблема с расширением рамки искры в Xcode 5. По существу описано in this post. Проблема в том, что искра не копируется в папку фреймворков. Решение заключается в загрузке исходного кода, изменении некоторых настроек и его создании. Но: Во время строительства я получаю ошибку:Sparkle in Xcode 5

NSAlert *alert = [NSAlert alertWithMessageText:SULocalizedString(@"Update Error!", nil) defaultButton:SULocalizedString(@"Cancel Update", nil) alternateButton:nil otherButton:nil informativeTextWithFormat:[error localizedDescription]]; 

производит

Format string is not a string literal (potentially insecure)

, и я не могу понять, как это исправить. Может ли кто-нибудь помочь?

ответ

4

Сегодня я столкнулся с такой же проблемой. Изменение довольно простое.

Изменение:

NSAlert *alert = [NSAlert alertWithMessageText:SULocalizedString(@"Update Error!", nil) 
           defaultButton:SULocalizedString(@"Cancel Update", nil) 
           alternateButton:nil 
            otherButton:nil 
        informativeTextWithFormat:[error localizedDescription]]; 

To:

NSAlert *alert = [NSAlert alertWithMessageText:SULocalizedString(@"Update Error!", nil) 
           defaultButton:SULocalizedString(@"Cancel Update", nil) 
           alternateButton:nil 
            otherButton:nil 
        informativeTextWithFormat:@"%@", [error localizedDescription]]; 

Объяснения, в случае, если вы заинтересованы, то, что informativeTextWithFormat на самом деле начало переменного списка аргументов, из которых первого параметра это строка формата, а последующие - входы в этот формат. Ошибка связана с тем, что формат имеет строку времени выполнения (а не строку времени компиляции), и поэтому невозможно проверить ее во время компиляции - вредоносный пользователь может (каким-то образом) изменить строку формата во время выполнения, чтобы выполнить вредоносный код из этого приложения.

Это так же, как разница между:

NSLog([error localizatedDescription]); 

И:

NSLog(@"%@", [error localizatedDescription]); 

Надеется, что это помогает.

+0

Эта проблема теперь исправлена ​​в Sparkle. –