【问题标题】:Xcode 8, xcodebuild, multiple bundle ID and Provisioning ProfilesXcode 8、xcodebuild、多个 bundle ID 和 Provisioning Profiles
【发布时间】:2017-08-26 06:34:43
【问题描述】:

首先我必须说,如果我使用 Xcode 构建,一切都很好。我的目标是将 xcodebuild 与 Jenkins 一起使用,以便我可以在多个环境中自动构建。我真的很困惑 Xcode 8 如何与自动签名一起工作。

我首先看这个:Use xcodebuild (Xcode 8) and automatic signing in CI (Travis/Jenkins) environments

当我这样做时,事情开始起作用了。但是,现在当我添加新的捆绑包 ID 和 PP 时,我开始收到以下错误。此外,以前的构建 ID 也不起作用:

建筑

23:06:50 检查依赖关系

23:06:50 [BCEROR]未找到“com.x.y.z”的配置文件:Xcode 找不到匹配“com.x.y.z”的配置文件。

23:06:50 [BCEROR]SDK“iOS 10.3”中的产品类型“应用程序”需要代码签名

存档

23:06:51 未找到“com.x.y.z”的配置文件:Xcode 找不到匹配“com.x.y.z”的配置文件。

23:06:51 SDK“iOS 10.3”中的产品类型“应用程序”需要代码签名

23:06:51 ** 存档失败 **

这就是我正在做的:

#if the directory exist, run the command
if [ -d "~/Library/Developer/Xcode/DerivedData" ]; then
    xattr -rc ~/Library/Developer/Xcode/DerivedData
fi

#Unlock keychain
security unlock-keychain -p xxx ~/Library/Keychains/login.keychain

#Build .xarchive
xcodebuild -project ${WORKSPACE}/PATH.xcodeproj \
           -scheme X \
           -configuration Release \
           clean \
           archive -archivePath ${WORKSPACE}/.../archive.xcarchive \
           DEVELOPMENT_TEAM=XXX

#Unlock keychain
security unlock-keychain -p x ~/Library/Keychains/login.keychain

#Exporting to .ipa
    xcodebuild -exportArchive -archivePath ${WORKSPACE}/XXX/archive.xcarchive \
           -exportOptionsPlist /XXXX/exportOptions.plist \
           -exportPath ${WORKSPACE}/XXXX/Output/${Environment} \
           PROVISIONING_PROFILE_SPECIFIER="ENVIRONMENT_PP"

【问题讨论】:

  • 您是否尝试使用 xcode 进行归档构建以确认机器上安装了所有必需的配置文件和证书?
  • 是的,我去了 Xcode -> 首选项 -> 帐户 -> 在每个团队中,下载所有配置文件
  • 您是否尝试过使用 Xcode 进行归档构建?
  • 我可以使用自动签名

标签: ios xcode jenkins provisioning-profile xcodebuild


【解决方案1】:

所以我使用 Unity 来生成 xcode 项目。我做了什么来解决它:

在 Unity 中,禁用自动签名并指定 Provisioning 配置文件散列,(我从编辑器视图中获取散列,并将值复制到脚本中):

 private static readonly string UDIDProfileHash = "HASH";

 PlayerSettings.iOS.appleEnableAutomaticSigning = false;
 PlayerSettings.iOS.appleDeveloperTeamID = "TEAMID";
 PlayerSettings.iOS.iOSManualProvisioningProfileID = UDIDProfileHash;

对于 Xcodebuild 语法,我删除了指定配置文件:

PROVISIONING_PROFILE_SPECIFIER="ENVIRONMENT_PP"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-05
    • 2013-08-04
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2016-07-17
    相关资源
    最近更新 更多