在exportOptionsPlist

时间:2019-01-22 06:45:17

标签: ios swift xcodebuild

我有一个项目,其中包含针对不同构建环境的不同目标。我正在使用xcodebuild在Jenkins上获取IPA文件。我想定义一个exportOptionsPlist文件,并为不同的目标分配不同的变量。例如,对于method,Dev目标应具有development,而Prod目标应具有app-store。为此,我在“构建设置”中定义了User-Defined设置。

P.S:每个目标只有Debug和Release选项,每个目标都有IPA_EXPORT_METHOD。 enter image description here

我的问题是,尝试获取IPA时出现以下错误(从ExportOptionsPlist文件读取IPA_EXPORT_METHOD ):

  

错误域= IDEFoundationErrorDomain代码= 1“密钥'方法'的exportOptionsPlist错误:预期{应用商店,临时,企业,开发,验证}之一,但找到了$ {IPA_EXPORT_METHOD}” UserInfo = {NSLocalizedDescription =关键“方法”的exportOptionsPlist错误:预期为{app-store,ad-hoc,Enterprise,Development,validation}之一,但找到了$ {IPA_EXPORT_METHOD}}

如何获取存档:

$ xcodebuild -workspace CLI.xcworkspace -scheme CLI -sdk iphoneos -configuration AppStoreDistribution archive -archivePath $PWD/build/CLI.xcarchive

如何获取IPA:

$ xcodebuild -exportArchive -archivePath $PWD/build/CLI.xcarchive -exportOptionsPlist exportOptions.plist -exportPath $PWD/build

导出选项列表:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>compileBitcode</key>
    <false/>
    <key>destination</key>
    <string>export</string>
    <key>method</key>
    <string>${IPA_EXPORT_METHOD}</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.iamdeveloper.myproject.dev</key>
        <string>My Provision File</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Developer</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>XXXXXXXXX</string>
    <key>thinning</key>
    <string>&lt;thin-for-all-variants&gt;</string>
</dict>
</plist>

编辑:我可以为不同的目标定义不同的exportOptionsPlists。这解决了我的问题,但我想用一个plist文件来实现。

0 个答案:

没有答案