У меня была похожая проблема с тем, что мое приложение зависало на Snow Leopard с отчетом о сбое, в котором говорилось:
Dyld Error Message:
Symbol not found: _arc4random_buf
Referenced from: <myApp binary>
Expected in: /usr/lib/libSystem.B.dylib
Мне приходилось читать документацию несколько раз, пока я не понял, что *Само 1006 * доступно с 10.4, но arc4random_buf()
доступно только с 10.7.Если вы используете функцию arc4random_buf()
(как и я), она не будет работать на 10.6.
Итак, я просто заменил функцию arc4random_buf()
следующим C-кодом:
void myArc4RandBuf(uint8_t* randomBytes, size_t length) {
size_t intBufLength = (length/4)+1;
uint32_t randomInts[intBufLength];
for (int i = 0; i < intBufLength; i++) {
randomInts[i] = arc4random();
}
memcpy(randomBytes, randomInts, length);
}
Это, вероятно, немного медленнее, потому что arc4random()
вызывается несколько раз, но работаетна каждой Mac OS от 10,4 до 10,8.