Xcode 8升级到Xcode 9,构建Cordova App报requires a provisioning profile错误

Xcode 8升级到Xcode 9,重新构建Cordova app,报错:

error: exportArchive: "App Name.app" requires a provisioning profile.

Error Domain=IDEProvisioningErrorDomain Code=9 ""App Name.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="App Name.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

** EXPORT FAILED **

Error: Error code 70 for command: xcodebuild with args: -exportArchive,-archivePath,App Name.xcarchive,-exportOptionsPlist,/Users/Shared/Workspace/github/AppName/platforms/ios/exportOptions.plist,-exportPath,/Users/Shared/Workspace/github/AppName/platforms/ios/build/device

解决方法

这个错误主要是Cordova生成的ExportOptions.plist缺失Xcode 9所需要的key。

这个bug已经在cordova-ios 4.5.1修复,修复内容为CB-13315: (ios) fixed bug building for ios using Xcode 9

Cordova的build.json文件可以添加iCloudContainerEnvironment配置项 。iCloudContainerEnvironment = Production/Development只有在通知推送时需要。

build.json类似于:

"ios": {
    "debug": {
        "codeSignIdentitiy": "iPhone Developer",
        "developmentTeam":"MYTEAMID",
        "provisioningProfile": "provisioning profile name or UUID",
        "packageType": "developer",
        "iCloudContainerEnvironment": "Development"
    },
    "release": {
        "codeSignIdentitiy": "iPhone Distribution",
        "developmentTeam":"MYTEAMID",
        "provisioningProfile": "provisioning profile name or UUID",
        "packageType": "ad-hoc",
        "iCloudContainerEnvironment": "Production"
    }
}

其中,provisioningProfile可以为名称或者是UUID。

版权声明:著作权归作者所有。

相关推荐

Xcode 9添加项目的iOS App图标

Xcode 8及之前的版本是可以直接在iTunes Connect上添加App icon。而Xcode 9则是把App icon放置在项目的asset catalog。在Info.plist 添加key CFBundleIconName:<key>CFBundleIconName</key> &