準備工作 1. 要打包的證書檔案
2.ipa母包檔案
3.子包的配置檔案
指令碼檔案
每乙個包檔案的配置檔案#!/bin/bash resign.sh
for file2 in `ls -a ./module`
doif [ x"$file2" != x"."
-a x"$file2" != x".."
-a x"$file2" != x".ds_store" ]; then
echo
$file2
#conf file
conf=./module/$file2/resign.conf
echo
$conf
#datetime
now=$(date +"%y%m%d_%s")
#load config
if [ -f
$ ]; then
. $fi#temp
temp="temp"
if [ -e
$ ]; then
echo
"error: temp already exists"
exit1fi
echo
exit1fi
echo
echo
exit1fi
echo
echo
exit1fi
echo
# exit 1
# fi
#create build dir
if [[ ! -d
$ ]]; then
mkdir $
fi#copy mother package
if [[ ! -f
"../package/ipa/qa/lxtstudentclient.ipa" ]]; then
echo
"mother package not exists"
exit1fi
cp ../package/ipa/qa/lxtstudentclient.ipa ./module/$file2
#unzip the mother ipa
echo
"unzip ipa"
unzip -q ./module/$file2$$
#remove old codesignature
echo
"remove old codesignature"
2> /dev/null | true
#replace embedded mobil provisioning profile
echo
"replace embedded mobile provisioning profile"
cp "./module/$file2
$$.mobileprovision"
# change icon
echo
"change icon"
cp "./module/$file2
$/icon-ipad-40@2x.png"
cp "./module/$file2
$/icon-ipad-40.png"
cp "./module/$file2
$/icon-iphone-57.png"
cp "./module/$file2
$/icon-iphone-57@2x.png"
cp "./module/$file2
$/icon-iphone-60@2x.png"
cp "./module/$file2
$/icon-iphone-60@3x.png"
cp "./module/$file2
$/icon-iphone-29@3x.png"
cp "./module/$file2
$/icon-iphone-29@2x.png"
cp "./module/$file2
$/icon-iphone-29.png"
cp "./module/$file2
$/icon-iphone-40@3x.png"
cp "./module/$file2
$/icon-iphone-40@2x.png"
cp "./module/$file2
$/icon-iphone-20@3x.png"
cp "./module/$file2
$/icon-iphone-20@2x.png"
# #change bundleversion
# fi
# #change cfbundleshortversionstring
# fi
fi# #change bundleidentifier
# #create entitlements from template
entitlements=$(<./templates/entitlements.template)
echo
$ > $/entitlements.temp
# #re-sign
# #這裡注意命令引數的不同
/usr/bin/codesign -f
-s#remove copyed mother package
echo
"remove mother package"
rm -rf ./module/$file2
$/lxtstudentclient.ipa
#re-package
echo
"re-package"cd$
#remove temp
cd ../
rm -rf $
fidone
exit
0
打包時候需要的entitlements.template 檔案#build path
build_path="./build/"
#assets path (ipa, mobileprovision)
assets_path="/assets/"
#ipa file name without extension
ipa_name="teacher"
#provisionning profile file name without extension
profile_name="1111111111111111"
#certificate type : iphone distribution /iphone developer
certificate_type="iphone distribution"
#certificate name in keychain
certificate_name="1111111 11111111 111 1111111 1111 co., ltd."
#release version (cfbundleshortversionstring)
#build version (cfbundleversion)
這裡有乙個很大的坑 在打包成功的情況下 ,我整合的極光推送一直收不到推送,通過log日誌發現一直報錯<?xml version="1.0" encoding="utf-8"?>
version="1.0">
aps-environmentkey>
productionstring>
get-task-allowkey>
keychain-access-groupskey>
array>
dict>
plist>
通知註冊報code=3000 「未找到應用程式的「aps-environment」的授權字串」 userinfo=錯誤
1.通過查資料發現是證書配置的時候boundid和證書匹配,我再一次檢查證書,發現沒有問題。
2.我有開始檢查我打包的語句,是不是那裡出現問題,發現其他的語句打包了還是不能獲得
3.然後我就在entitlements.template 檔案中找問題 對於推送有乙個引數aps-environment,我第一次在網上查到後加入了這個引數
aps-environment
development
但是打包後還是出現這個錯誤,由於我是生產環境 我將引數development 替換成了 production 再次打包搞定。
在網上查了這個檔案
**簽名探析
entitlements 這個檔案相當於乙個授權檔案 在打包的時候講這個檔案中的引數 傳給codesign. 由於在xcode8 中我的這是push的時候,會自動生成乙個檔案,這個檔案中顯示的aps-environment
為development,但是打包後推送可以收到。
但是為什麼是development 而不是 production
我覺得應該是xcode自動會幫你在寫入的時候變為production
說明打包的時候已經將aps-environment 改為 productionentitlements:
現在打包已經搞定。推送也沒有問題了。
ANT批量打包
android因為市場眾多,所以乙個版本發布的時候大家是怎麼進行的呢?我記得我問過乙個同行他告訴我說,他們三個人eclipse打包打一上午.這種方式也有它的優勢不過不在今天的討論範圍內 今天我們研究批量打包,以及批量打包的過程 暫時簡單記錄,隨後擴充 總體來說有這麼幾種 1 首先我們需要對ant這個...
利用Ansible 批量推送公鑰
yuminstall epel release 確保有擴充套件源 yum install ansible y ansible version ansible 2.9.6 配置檔案路徑config file etc ansible ansible cfg 查詢模組路徑configured module...
(九)expect批量公鑰推送
注意 注釋不能出現這指令碼裡面 spawn表示開啟乙個會話 r 表示回車,exp continue 表示沒有出現這樣,繼續往下執行 interact 停留在對面終端 usr bin expect spawn ssh root 192.168.111.101 expect password inter...