我一直在创建一个shell脚本,它将使我可以从我的工作项目中存档和提取ipa文件。

#!/bin/sh
cd `dirname $0`
xcodebuild -scheme appName clean archive -archivePath ./build/AppName
xcodebuild -exportArchive -exportOptionsPlist ./build/exportOptions.plist -archivePath  ./build/AppName.xcarchive -exportPath ./build/appName

exportOptions.plist为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>method</key>
        <string>ad-hoc</string>
    </dict>
</plist>

我将进一步需要一种将Bundle标识符和Team更改为客户的方法。将PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname添加到xcodebuild的第一行,会将Bundle标识符更改为我需要的标识符吗?

xcodebuild -scheme appName PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname clean archive -archivePath ./build/AppName
这是正确的吗 ?那团队呢?还是应该将exportOptions.plist用于这些设置?

谢谢。

最佳答案

您可以使用这些命令直接操作项目文件。根据我的经验,xcodebuild命令有时不接受我们作为配置文件,团队ID等传递的参数。

因此,确保已更改所需方法的最佳方法是操作xcodeproj文件

  • 将配置样式更改为手动
  • sed -ie "s/ProvisioningStyle = \".*\"/ProvisioningStyle = \"Manual\"/" <project_name>.xcodeproj/project.pbxproj
  • 更改代码签名身份
  • sed -ie "s/CODE_SIGN_IDENTITY = \".*\"/CODE_SIGN_IDENTITY = \"<signing_identity_name>\"/g" <project_name>.xcodeproj/project.pbxproj
  • 更改配置文件
  • sed -ie "s/PROVISIONING_PROFILE = \".*\"/PROVISIONING_PROFILE = \"<provisioning_profile_udid>\"/g" <project_name>.xcodeproj/project.pbxprojsed -ie "s/PROVISIONING_PROFILE_SPECIFIER = \".*\"/PROVISIONING_PROFILE_SPECIFIER = \"<provisioning_profile_name>\”/g" <project_name>.xcodeproj/project.pbxproj
    注意:请注意空格,此方法使用正则表达式来匹配和替换项目文件中的值

    关于ios - Xcode-命令行构建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44629590/

    10-11 16:50