Измените эту строку, которая использует “ ”
:
console.log(“I have counted” + sheepCounted + “sheep!”);
Для этого с " "
:
console.log("I have counted" + sheepCounted + "sheep!");
Пожалуйста, посетите и прочтите
Спасибо chpwn в комментариях.
На данный момент существует более простой способ определить, было ли ваше приложение для iPhone взломано с целью пиратского использования. Это не требует от вас сверки уникальных идентификаторов iPhone со списком принятых идентификаторов.
В настоящее время взломщики делают три вещи:
Последний из них проще всего проверить с помощью этого кода:
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
if ([info objectForKey: @"SignerIdentity"] != nil)
{ /* do something */ }
Обычно у нас нет SignerIdentity ни в одном из приложений App Store, которые мы создаем, поэтому проверка на ноль и выполнение инструкций по установке должны сделать это труднее для взломщиков и пиратов.
Я не могу поверить в это, поэтому, пожалуйста, посетите Как предотвратить взломы iPhone IPA. Там есть масса информации о пиратстве на iPhone и о том, как с ним бороться.
Как отметил Андрей Таранцов в комментариях, найти строку «SignerIdentity» в двоичном файле (с помощью приложения, такого как HexEdit) и заменить ее довольно просто.
Вы можете закодировать эту строку, но опять же, все, что вам нужно сделать, это изменить ее один символ, и приложение больше не будет искать ключ "SignerIdentity", а будет искать другой ключ, который, вероятно, не существует ( поэтому имеет значение null). Этот ключ имеет значение null, приложение считает, что он не взломан (поскольку SignerIdentity должен иметь значение null, если приложение не взломано).
Вместо этого я бы предпочел проверить размер info.plist и сравнить его с исходная величина. Я заметил, что сборки Simulator и Devices имеют разные размеры файла info.plist. То же самое касается сборок отладки, выпуска и распространения. Следовательно,