1 编写Makefile文件
.PHONY: clean
default: clean
device-release:
@echo "Building XXXTests Testing App - Device/Release"
xcodebuild -scheme XXX -workspace XXX.xcworkspace -configuration Release archive -archivePath ./Build_Install/XXX.xcarchive
xcodebuild -exportArchive -archivePath ./Build_Install/XXX.xcarchive -exportPath ./Build_Install/XXX-Release -exportOptionsPlist ./release.plist
clean:
@echo Removing compiled Apps and dSYMs
@rm -rf "Build_Install"
clean-all: clean
@echo Removing DerivedData for all Configuration
xcodebuild -workspace BbStudent.xcworkspace -scheme BbStudent -configuration Debug clean
xcodebuild -workspace BbStudent.xcworkspace -scheme BbStudent -configuration Release clean
xcodebuild -workspace BbStudent.xcworkspace -scheme BbStudent -configuration Enterprise clean
2 编写 证书配置文件 release.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>teamID</key>
<string>你的证书teamID</string>
<key>method</key>
<string>ad-hoc</string>
<key>uploadSymbols</key>
<false/>
<key>provisioningProfiles</key>
<dict>
<key>你的app bundleId</key>
<string>证书描述文件中的uuid</string>
</dict>
</dict>
</plist>
需要填写的信息都可以通过查看mobileprovision命令 来得到。
security cms -D -i XXX.mobileprovision
证书签名的方式,是通过脚本中的method变量控制的。
分别为 development, ad-hoc, app-store, enterprise
3 在控制台中 运行 make device-release
把前两步创建的文件都放到工程目录下,然后控制台切到工程目录 执行命令 make device-release