批量打包 解決推送

2021-08-02 08:55:11 字數 4605 閱讀 4465

準備工作 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

$/[email protected]"

cp "./module/$file2

$/icon-ipad-40.png"

cp "./module/$file2

$/icon-iphone-57.png"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/icon-iphone-29.png"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

cp "./module/$file2

$/[email protected]"

# #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

每乙個包檔案的配置檔案

#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)

打包時候需要的entitlements.template 檔案

<?xml version="1.0" encoding="utf-8"?>

version="1.0">

aps-environmentkey>

productionstring>

get-task-allowkey>

keychain-access-groupskey>

array>

dict>

plist>

這裡有乙個很大的坑 在打包成功的情況下 ,我整合的極光推送一直收不到推送,通過log日誌發現一直報錯

通知註冊報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

entitlements:

說明打包的時候已經將aps-environment 改為 production

現在打包已經搞定。推送也沒有問題了。

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...