生成模型加密密钥
必须在Xcode的Preferences的Accounts页面登录Apple ID,才能在Xcode中生成模型加密密钥。
在Xcode中打开模型,单击Utilities选项卡,然后单击“Create Encryption Key”按钮。
从下拉菜单中选择当前App的Personal Team,然后单击“continue”按钮。
Xcode的确认对话框提供了一个箭头按钮,可以跳转到Finder中的加密密钥。
Xcode将模型加密密钥文件保存在与原始模型文件相同的文件夹中,并使用其基名与.mlmodelkey扩展名。例如,名为Classifier.mlmodel模型的加密密钥是同一目录中的Classifier.mlmodelkey。
在应用程序中加密模型
添加编译器标志
在Xcode中,导航到项目的Target并打开其Build Phases选项卡。展开Compile Sources部分,并选择希望Xcode在编译时加密的模型。通过双击模型的条目打开模型的编译器标志编辑器。
在编辑器中,添加:--encrypt model_path
- model_path为创建的模型加密密钥文件的绝对路径
iOS会在编译时将mlmodel文件编译为mlmodelc文件
加载模型
在运行时,使用load(completionHandler:completionHandler:)方法加载加密模型。
当加载加密模型时,Core ML 会通过网络从苹果的服务器获取加密密钥对模型进行解密。
所以必须确保生成模型加密密钥的team和打包证书的team保持一致。
do {
let modelPath: String? = Bundle.main.path(forResource: "ArtiSense", ofType: "mlmodelc")
print("MLModel Start")
self.model = try MLModel.init(contentsOf: URL.init(fileURLWithPath: modelPath!))
print("MLModel End")
}
catch {
print("MLModel Failed")
}
版权归原作者 培根芝士 所有, 如有侵权,请联系我们删除。