我正在尝试使用fastlane在Jenkins中自动构建/部署我的hybdrid移动应用程序。 我使用ionic(v3.3.0)和cordova(v7.0.1)作为来源。我使用fastlane v2.36.0,Xcode是版本8.3.2。
我在jenkins工作中运行的命令
yarn
ionic cordova prepare
fastlane ios build
fastlane / FastFile
platform :ios do
before_all do
end
ios_project_path = "platforms/ios/awesomeproject.xcodeproj"
desc "Build for IOS"
lane :build do
increment_build_number(
xcodeproj: ios_project_path,
build_number: ENV["BUILD_NUMBER"]
)
# Recreate schemes to ensure a smooth transition from cordova to gym
recreate_schemes(project: ios_project_path)
update_project_team(
path: ios_project_path,
teamid: "TEAMID"
)
#update_provisioning_profile_specifier(xcodeproj: ios_project_path)
gym(scheme: "awesomeproject",
configuration: "Debug",
clean: true,
project: ios_project_path,
output_directory: "target")
end
end
fastlane / Appfile
package_name "com.xxx.awesomeapp"
app_identifier "com.xxx.awesomeapp" # The bundle identifier of your app
apple_id "xxx.xxxx@xxx.com" # Your Apple email address
team_id "TEAMID" # Developer Portal Team ID
命令fastlane ios build
在健身指令上失败并显示错误
产品类型'应用程序'需要进行代码签名。在SDK' iOS中 10.3'
fastlane日志中的详细错误是
检查依赖项签署" awesomeproject"需要开发 球队。在项目编辑器中选择一个开发团队。代码签名是 产品类型要求'应用程序'在SDK' iOS中 10.3'
Cordova生成的xcode项目已激活自动签名,但缺少签名团队。 到目前为止我使用的解决方法是在第一次生成platform / ios文件夹时手动选择Team with Xcode。但是如果我删除了cordova生成的平台文件夹,我需要重新选择XCode中的团队。
有没有办法选择Signova团队使用Cordova或任何fastlane插件?我愿意使用任何解决方案,脚本。 所以我的构建将完全自动化。 update_project_team指令无效。
答案 0 :(得分:7)
在项目的根目录中创建一个名为build.json
的文件,其中包含您要用于对应用进行签名的团队ID和配置文件GUID:
build.json
:
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"provisioningProfile": "{your development profile}",
"developmentTeam": "{your Team ID}",
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Distribution",
"provisioningProfile": "{your distribution profile}",
"developmentTeam": "{your Team ID}",
"packageType": "app-store"
}
}
}
然后,当您使用Cordova CLI构建时,将使用这些签名凭据。
注意:根据Cordova documentation,Xcode 8和iOS 10不推荐使用上述语法,不再需要配置文件GUID。但是,如果没有使用Cordova v7.0.1指定配置文件,我就无法使其正常工作。