#! /bin/bash
#firtoken 29b441056e1e17c984cb32fadadsdddd
shell_dir=`dirname $0`
TARGET_NAME="SmartLock"
DIR_PATH=/Users/用户名/Desktop/SmartLock
SIGN="iPhone Distribution:******"
PROFILE="66d127d6-7963-4c20-ac8b-47e4f0fe8742"
TEMP_DIR=$shell_dir/$TARGET_NAME.build
ARCHIVE_PATH=$DIR_PATH/$TARGET_NAME/archive
mkdir TEMP_DIR
rm -rf $ARCHIVE_PATH
if [ -f "$TEMP_DIR" ]; then
rm $TEMP_DIR
else
echo "no ipa file"
fi
xcodebuild -workspace $DIR_PATH/$TARGET_NAME.xcworkspace -scheme $TARGET_NAME -configuration Release clean archive CODE_SIGN_IDENTITY="$SIGN" PROVISIONING_PROFILE="$PROFILE" -archivePath $TEMP_DIR/$TARGET_NAME.xcarchive
echo "<?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>enterprise</string>
<key>uploadBitcode</key>
<false/>
<key>compileBitcode</key>
<false/>
<key>uploadSymbols</key>
<true/>
<key>embedOnDemandResourcesAssetPacksInBundle</key>
<false/>
</dict>
</plist>
" >> $shell_dir/temexportFormat.plist
xcodebuild -exportArchive -exportOptionsPlist $shell_dir/temexportFormat.plist -archivePath $TEMP_DIR/$TARGET_NAME.xcarchive -exportPath $TEMP_DIR
if [ ! -d "$ARCHIVE_PATH" ]; then
mkdir $ARCHIVE_PATH
fi
ARCHIVE_NAME=$TARGET_NAME-debug-$( date +"%Y%m%d_%H%M%S").ipa
cp $TEMP_DIR/$TARGET_NAME.ipa $ARCHIVE_PATH/$ARCHIVE_NAME
#fir p $ARCHIVE_PATH/$ARCHIVE_NAME -T 29b441056e1e17c984cb32fadadsdddd
1.证书,服务器上的profile文件存放目录有两个,一个在用户名下,一个在系统下,所以有时候会出现provisionprofile文件找不到的问题
系统profile文件路径:/Library/MobileDevice/
2.-exportOptionsPlist 导出ipa时有可能报错no device等等,因为用的ruby不是最新,或者不是系统的
."No applicable devices found."错误 ,使用系统的ruby
rvm use system