开发者社区 > 云原生 > 容器服务 > 正文

使用writeToUrl更新构建中包含的文件(在应用程序容器.app中)

我试图使用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"}}

是我做得不对还是不可能动态更新构建中包含的文件?

展开
收起
游客5akardh5cojhg 2019-12-10 22:49:28 881 0
1 条回答
写回答
取消 提交回答
  • 我刚发现

    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

    2019-12-10 22:50:06
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
女性移动App安全攻防战 立即下载
汇聚云计算的生态核能——云市场,云上APP Store 立即下载
千万级用户直播App——服务端架构设计和思考 立即下载