我想使用Azure devops管道来构建包含iPhone应用程序和watchos应用程序的ios捆绑包。
有一个包含3个应用程序的工作区(一个用于手机,两个用于手表)
MyWorkspace:
- MyPhoneApp
- MyWatchApp
- MyWatchApp扩展
我使用以下XCode task
- task: Xcode@5
inputs:
actions: 'build'
scheme: 'MyApp'
sdk: 'iphoneos'
configuration: 'Release'
xcWorkspacePath: '$(system.defaultworkingdirectory)/MyWorkspace.xcworkspace'
xcodeVersion: '12'
此任务启动xcodebuild
xcodebuild -sdk iphoneos -configuration Release -workspace /Users/runner/work/1/s/MyApp/MyWorkspace.xcworkspace -scheme MyApp build
并且失败,并出现以下错误:
错误:无法解析平台“iphoneos”的产品类型“com.apple.product-type.application. watchapp 2”(在项目“MyApp”的目标“MyWatchApp”中)
错误:无法解析平台“iphoneos”的产品类型“com.apple.product-type. watchkit 2-extension”(在项目“MyApp”的目标“MyWatchApp Extension”中)
我需要指定哪种SDK来构建它?
2条答案
按热度按时间balp4ylt1#
我想使用azure pipeline xcode任务运行的命令如下:
没有sdk规范
-sdk iphoneos
这样,每个组件的构建将遵循项目默认值,手机应用将使用iphoneos SDK构建,手表应用将使用watchos SDK构建。
不幸的是,如果我从xcode任务中删除sdk规范
那么它会使用自己的默认值
-sdk $(SDK)
因为$(SDK)没有定义,所以它会导致错误。
这个用例的正确(但相当奇怪)语法是
使SDK规范为空而没有任何值。
ncgqoxb02#
1.将源代码复制到代理计算机
1.设置环境变量(如果有)
1.安装npm工具,然后为
npm install npm install -g react-native-cli npm i @react-native-community/cli-platform-ios@4.7.0
创建终端任务1.创建devOps Apple证书安装任务以安装
Apple developer certificate Provisioning profiles Signing certificate development/ distribution certificates
1.为
xcodebuild clean -workspace Project.xcworkspace -scheme ProjectScheme xcodebuild build -workspace Project.xcworkspace -scheme ProjectScheme -destination generic/platform=iOS -destination "platform=iOS Simulator,name=iPhone 13 Pro Max" -allowProvisioningUpdates xcodebuild archive -workspace Project.xcworkspace -scheme Project -archivePath D:/path_to_save_build/terminalBuild.xcarchive xcodebuild -exportArchive -archivePath D:/path_to_save_build/terminalBuild.xcarchive -exportPath ../../iOSbuilds -exportOptionsPlist ExportOptionAdhocSigning.plist
创建终端任务1.将此. ipa文件复制到您的工件位置。