xcode Azure Devops管道用于构建具有iPhone应用程序和Watchos应用程序的iOS捆绑包

ctzwtxfj  于 2023-06-24  发布在  iOS
关注(0)|答案(2)|浏览(160)

我想使用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来构建它?

balp4ylt

balp4ylt1#

我想使用azure pipeline xcode任务运行的命令如下:

xcodebuild -configuration Release -workspace /Users/runner/work/1/s/MyApp/MyWorkspace.xcworkspace -scheme MyApp build

没有sdk规范
-sdk iphoneos
这样,每个组件的构建将遵循项目默认值,手机应用将使用iphoneos SDK构建,手表应用将使用watchos SDK构建。
不幸的是,如果我从xcode任务中删除sdk规范

- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 'MyApp'
    configuration: 'Release'
    xcWorkspacePath: '$(system.defaultworkingdirectory)/MyWorkspace.xcworkspace'
    xcodeVersion: '12'

那么它会使用自己的默认值
-sdk $(SDK)
因为$(SDK)没有定义,所以它会导致错误。
这个用例的正确(但相当奇怪)语法是

- task: Xcode@5
  inputs:
    actions: 'build'
    scheme: 'MyApp'
    sdk:   
    configuration: 'Release'
    xcWorkspacePath: '$(system.defaultworkingdirectory)/MyWorkspace.xcworkspace'
    xcodeVersion: '12'

使SDK规范为空而没有任何值。

ncgqoxb0

ncgqoxb02#

    • 要在DevOps上生成Ad-Hoc构建**,请创建以下任务

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文件复制到您的工件位置。

相关问题