XcodeBuild是否需要Target的配置文件?错误域= IDEProvisioningErrorDomain代码= 9

时间:2019-02-22 15:07:23

标签: ios code-signing provisioning-profile xcodebuild xcode10

希望这只是一些用户错误,但我认为xcodebuild找不到目标的配置文件,我将其称为MyApp,MyApp.app是我认为的目标

我更新了配置文件,删除了所有配置文件,然后重新添加了配置文件,在apple dev门户上进行了检查,并确保一切正确。我已经查看了构建设置和签名信息,但没有发现任何行之有效的方法或任何可以解决的已知问题或同龄人告诉过的修复方法。我已经清理,重新启动,尝试过fastlane,现在我只是在使用xcodebuild。这是我的错误:

sudo xcodebuild -exportArchive -exportOptionsPlist 
"/Users/MyName/MyApp-ios/ExportOptions.plist" -archivePath 
'/Users/MyName/Library/Developer/Xcode/Archives/2019-02-20/MyApp             
2019-02-20 15.34.28.xcarchive' -exportPath         
"/path/MyApp.ipa" -allowProvisioningUpdates
2019-02-22 09:39:26.044 xcodebuild[15743:239787] [MT] IDEDistribution: 
-[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle 
at path '/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/DEV_2019-02- 
22_09-39-26.043.xcdistributionlogs'.
error: exportArchive: "MyApp.app" requires a provisioning profile.

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

我将MyApp.app和MyApp添加到了配置文件dict中,但它不起作用,我只是在尝试构建开发方案/配置。都没有使用GUI从成功的存档/构建中获取exportOptions.plist。

ExportOptions

<plist version="1.0">
<dict>
    <key>compileBitcode</key>
    <false/>
    <key>destination</key>
    <string>export</string>
    <key>method</key>
    <string>enterprise</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.mycompany.myappDEV</key>        
        <string>*********UUID**********</string>
        <key>com.mycompany.myappQA</key>
        <string>*********UUID**********</string>
        <key>com.mycompany.myappPROD</key>
        <string>*********UUID**********</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>XXXXXXXXX</string>
    <key>thinning</key>
    <string>&lt;none&gt;</string>
</dict>
</plist>

如何为我的目标设置配置文件?还是这里有什么问题。

1 个答案:

答案 0 :(得分:0)

我每天都在学习很多东西,但是幸运的是,一位高级开发人员能够帮助我弄清楚如何使xcodebuild对我有用。我正在使用Xcode 10.0

  1. Build Settings中,我在Packaging中的捆绑包标识符似乎只需要包含基本的捆绑包标识符com.mycompany.app,没有DEV / QA / TEST的后缀可以添加,否则将无法生成.ipa文件

  2. 对于我的公司而言,配置文件很多。每种环境都有一个,但事实证明,我们有一个全面的配置文件,我们的应用程序宁愿使用com.mycompany.*,我还有很多学习的方法。

  3. 我使用fastlane,这是我最初想要做的,我认为要使用xcodebuild,我需要在其中插入供应配置文件UUID作为参数。这是我的fastfile中的新build_ios_app(),可以用来构建。 Fastlane和xcodebuild将覆盖xcode和exportoptions.plist中的所有配置文件数据以及诸如export_method之类的其他内容。通过放置PROVISIONING_PROFILE_SPECIFIER,您可以省去一些麻烦。

    build_app(
        workspace: "myapp.xcworkspace",
        scheme: "DEV",
        export_method: "enterprise",
        export_options: {
        signingStyle: 'manual',
        provisioningProfiles: {
            "com.mycompany.myapp" => "*****UUID*****"
        }       
    }, 
    xcargs: "PROVISIONING_PROFILE_SPECIFIER=\"*****UUID*****\""