从XCARCHIVE导出OTA可安装的IPA

时间:2014-01-31 21:20:27

标签: ios xcodebuild codesign over-the-air

我正在迁移我们的构建脚本以生成xcarchive文件,因此我们可以直接从Xcode Organizer上传构建版本,但是,我现在无法让构建版本在空中工作。

我正在构建档案:

xcodebuild -scheme myScheme \
       "CODE_SIGN_IDENTITY[sdk=iphoneos*]=$appstore_identity" \
       PROVISIONING_PROFILE=$appstore_profile_id \ 
       -archivePath $outputArchive 
       archive`

然后我尝试使用我的企业分发配置文件导出并重新签名:

enterprise_profile_name=`basename $enterprise_profile_file .mobileprovision` \
xcodebuild  -exportArchive \
            -archivePath "$outputArchive" \
            -exportFormat IPA \
            -exportProvisioningProfile "$enterprise_profile_name" \
            -exportPath "$outputIPA"

生成的IPA看起来正确(包含正确的配置文件,代码签名表示它有效等),但是,当我们生成清单文件时,这可以通过空中安装停止工作。在iOS 7设备上进入“安装...,等待...”循环,应用程序永远不会安装。

有什么建议吗?

更新1

我还尝试从存档中导出应用程序,然后使用PackageApplication:

重新签名
xcodebuild -exportArchive \
            -archivePath "$outputArchive" \
            -exportFormat APP \
            -exportWithOriginalSigningIdentity \
            -exportPath "$outputApp"

xcrun PackageApplication \
        "$outputApp" \
        -o "$outputIPA" \
        --sign "$enterprise_identity" \
        --embed "$enterprise_profile_file"

但由此产生的IPA仍无法安装OTA并通过iTunes进行同步。

1 个答案:

答案 0 :(得分:1)

@MishieMoo和我在线下聊天似乎我想要做的事情是不可能的,因为我试图跨团队工作。我有2个团队A和B,每个团队都有自己的身份和配置文件。 A具有com.foo。*的企业配置文件。 B具有com.foo.bar的常规配置文件。

我正在与B一起构建并尝试与A一起辞职。但这不起作用,因为它们是2个不同的帐户,有2个不同的团队标识符。

结果:我需要构建两次(每个帐户一次)。