我正在尝试使用 writeToUrl 动态更新 SSL 证书,但出现此错误:
// Returns the first certificate in the cert chain
SecCertificateRef certificate = SecTrustGetCertificateAtIndex(serverTrust, 0);
// Returns a DER representation of a certificate given a certificate object.
NSData * remoteCertificateData = CFBridgingRelease(SecCertificateCopyData(certificate));
NSError *error;
BOOL didUpdateCertif = [remoteCertificateData writeToURL:localCertificateUrl options:NSDataWritingAtomic error:&error];
localCertificateUrl
的值类似于 file:///var/containers/Bundle/Application/79A3FE24-FA18-4DB9-9DDD-ED2135B47C5A/App-Name.app/certificate .cer
.
但是我得到这个错误
Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “certif.cer” in the folder “App-Name”." UserInfo={NSFilePath=/var/containers/Bundle/Application/79A3FE24-FA18-4DB9-9DDD-ED2135B47C5A/App-Name.app/certif.cer, NSUnderlyingError=0x170249ae0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
是我做的不对还是无法动态更新构建中包含的文件?
最佳答案
我刚发现你不能写入这个目录。为防止篡改,捆绑目录在安装时进行了签名。写入此目录会更改签名并阻止您的应用启动。
关于ios - 使用 writeToUrl 更新构建中包含的文件(在应用程序容器 .app 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59267278/