小编cof*_*aks的帖子

ad-hoc prov没有beta-reports-active属性.配置文件.管理多个的最佳策略

我们通过testflight分发的IOS ad-hoc版本最近停止了可安装.

我们收到了"无法下载"的问题(http://help.testflightapp.com/customer/portal/articles/829652-received-an-unable-to-download-application-message-what-does-this-意思是 -).

xcode日志中的错误是

12月8日15:50:09 ipad3 installd [34]:权利'beta-reports-active'具有配置资料'TestFlight WWTK ALL Projects'不允许的价值

我们已经确定了根本原因(提供资料和权利之间的不匹配)但不确定如何继续.以下是详细信息:

  1. 我们的开发人员门户包含多个分发配置文件,但特别是一个由x-code管理的ad-hoc和一个分发

  2. ad hoc配置文件,即使通过http://developer.apple.com生成的强制,也永远不会获得beta-reports-active属性.我们怀疑这是正常的,但还没有找到确认.xcode管理的ios发行版获取属性设置为true

  3. 我们的构建过程使用ios分发配置文件来构建.作为此步骤的一部分,xcode会自动生成与第一个分发配置文件匹配的授权文件.因此,捆绑的授权文件包含beta-reports-active属性:

    builtin-productPackagingUtility /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/Entitlements.plist -entitlements -format xml -o /Users/Shared/Jenkins/Home/jobs/game_addtetris-master_iOS/workspace/target/addtetris_ios/build/Unity-iPhone.build/Release-iphoneos/Unity-iPhone.build/addtetris.xcent
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我们的构建使用我们的临时证书重新签署生成的ipa,并将生成的IPA上传到testflight

    /usr/bin/xcrun -sdk iphoneos PackageApplication -v /Users/Shared/Jenkins/Home/jobs/game_addtetris-master_iOS/workspace/target/addtetris_ios/build/Unity-iPhone.build/addtetris.app -o /Users/Shared/Jenkins/Home/jobs/game_addtetris-master_iOS/workspace/target/addtetris_ios/build/Unity-iPhone.build/addtetris-Release-addtetris_1.x_253.ipa --embed /Users/Shared/Jenkins/Home/local/embedded.mobileprovision --sign "iPhone Distribution: WeWantToKnow AS"
    
    Run Code Online (Sandbox Code Playgroud)

所以我们现在有一对相互冲突的问题.个人资料和权利.一个有beta报告活动,一个没有.

我们应该能够通过在某处添加以下后期构建脚本来解决问题(我们已经验证它创建了正确的IPA)

/usr/libexec/PlistBuddy -c "Delete :beta-reports-active" "${TARGET_TEMP_DIR}/${PRODUCT_NAME}.app.xcent"
ipa=`ls $BUILT_PRODUCTS_DIR/*.ipa`
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${CODESIGNING_FOLDER_PATH}" -o "${ipa}" --embed "${EMBEDDED_MOBILEPROVISION}" --sign "${CODE_SIGN_IDENTITY}"
Run Code Online (Sandbox Code Playgroud)

这在某种程度上非常类似于在Xcode中强制代码签名刷新

这需要稍微改变我们的工具链(例如jenkins xcode插件)

但我们很乐意更深入地了解潜在问题,看看是否有更好的解决方案.特别是 ?

如有必要,Xcode会为您创建分发证书和临时配置文件.具有文本XC:的临时供应配置文件的名称.

然而那些AdHoc提供.配置文件不再包含UDID,因此它们看起来很可疑.

  • 我们的工作流程是否太脆弱了?例如,我们应该从一开始就使用我们的临时权利进行签名吗?

  • 任何更好的主意?

xcode ios jenkins

7
推荐指数
1
解决办法
2924
查看次数

标签 统计

ios ×1

jenkins ×1

xcode ×1