我试图使用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"}}
是我做得不对还是不可能动态更新构建中包含的文件?
我刚发现
You cannot write to this directory. To prevent tampering, the bundle directory is signed at installation time. Writing to this directory changes the signature and prevents your app from launching.
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。