我一直致力于创建一个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标识符和团队更改为客户。将PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname
添加到xcodebuild
的第一行会将Bundle标识符更改为我需要的吗?
即。 xcodebuild -scheme appName PRODUCT_BUNDLE_IDENTIFIER=$com.changed.appname clean archive -archivePath ./build/AppName
这是对的吗?团队怎么样?或者我应该使用exportOptions.plist进行这些设置吗?
谢谢。
答案 0 :(得分:0)
您可以使用这些命令直接操作项目文件。根据我的经验,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.pbxproj
sed -ie "s/PROVISIONING_PROFILE_SPECIFIER = \".*\"/PROVISIONING_PROFILE_SPECIFIER = \"<provisioning_profile_name>\”/g" <project_name>.xcodeproj/project.pbxproj
注意:请注意空格,此方法使用正则表达式来匹配和替换项目文件中的值