我必须首先说,如果我使用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"
答案 0 :(得分:0)
所以我使用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"