1. 程式人生 > >iOS 指令碼修改plist檔案

iOS 指令碼修改plist檔案


目前我的專案是由一份Project多個Target多個shema構成的。因為程式碼邏輯都是一樣的,僅僅是裡面的資源和請求介面不一樣,所以添加了多個Target.
       專案中用到了JPush, 但是Jpush很坑爹,有一個PushConfig.plist檔案,程式執行的時候會讀取此檔案中的值:
       內容如下:


        最主要的 APP_KEY 因為不同的Target , APP_KEY值不一樣。這樣一來每次編譯打包的時候,都需要更改此檔案.
        太麻煩了。

       步驟如下:
                   1. 存放所有Jpush AppKey的檔案,如:JPUSHKEY

                      裡面存放的key按照 $PRODUCTNAME=$APPKEY這種格式排列
                    

                   2. shell 指令碼一份.  modifyJPushKey.sh

                   3. 專案中點中TARGETS,右邊選擇 Build Phases
                    點選 + (NEW Run Script Build Phase)
                  
                    點選 Run Script 一欄,下拉展開:
                     裡面可以填寫指令碼:
                    (我為了編寫修改指令碼便,指令碼我拿出來單獨寫成一份檔案。這個 Run Script 裡面,就去執行這個寫出來的指令碼。)
                      SHELL_PATH=$PROJECT_DIR/modifyJPushKey.sh
                      chmod +x ${SHELL_PATH}
                      sh ${SHELL_PATH}

                   

         展開 Run Script 如圖:
        
                    這時候可以把它(Run Script 這一欄)拖動到前面,以便指令碼在合適的時候執行.
                    
附錄:

                1. JPUSHKEY檔案如下:  = 號左右的是 PRODUCTNAME
                                                         =號右邊的就是 key值
A_HD=8031cffad446b************
B_HD=0f4f8ff111ba38************
C_HD=e2ef1b1560833******
D_HD=6531d43b365e2******
E_HD=d7c71863e1d620******
F_HD=9b7a1d141e97f0******
G_HD=13c75c512e3feaaf******


2. modifyJPushKey.sh
#!/bin/bash

#productName
PRODUCTNAME=${PRODUCT_NAME}
#JPUSHKEY檔案 絕對路徑
JPUSHKEY_FILE_PATH=$PROJECT_DIR/******/*******/JPUSHKEY
#PushConfig.plist檔案 絕對路徑
PushConfig_FILE_PATH=$PROJECT_DIR/******/******/PushConfig.plist
#存放AppKey值
keyString=""

#根據PRODUCTNAME 查詢JPUSHKEY檔案中 對應的keyString值
cat ${JPUSHKEY_FILE_PATH} | while read line
do
	productName=${line%%=*}

	if [ "${PRODUCTNAME}" == "${productName}" ]; then

		keyString=${line#*=}

		echo $productName   $keyString

		#替換 PushConfig.plist 檔案中 appkey的值
		sed -i '' "/<key>APP_KEY<\/key>/{ n; s/\(<string>\).*\(<\/string>\)/\1${keyString}\2/;}" ${PushConfig_FILE_PATH}

		exit 0
	fi
done




就是這樣的。

                  
                  

相關推薦

iOS 指令碼修改plist檔案

目前我的專案是由一份Project多個Target多個shema構成的。因為程式碼邏輯都是一樣的,僅僅是裡面的資源和請求介面不一樣,所以添加了多個Target.        專案中用到了JPush, 但是Jpush很坑爹,有一個PushConfig.plist檔案,程式執行的時候會讀取此檔案中的值:    

windows設定開機啟動指令碼修改配置檔案和重啟服務

有一臺動態ip的測試機器,上面部署Nginx,然後每次重啟機器後ip總會變動,需要改nginx.conf配置檔案和重啟nginx服務。 所以要解決這個問題,想到的解決方法: 1、python指令碼來

ios 簡單的plist檔案讀寫操作(Document和NSUserDefaults)

//    [self getDocoumentsPath];//蘋果建議將程式建立產生的檔案以及應用瀏覽產生的檔案資料儲存在該目錄下,iTunes備份和恢復的時候會包括此目錄 //    [self getLibraryPath];//儲存程式的系統預設狀態設定 //

IOS之學習plist檔案的讀寫

程式碼地址:https://github.com/schelling/YcDemo/tree/master/PlistDemo        在做iOS開發時,經常用到到plist檔案,  那plist檔案是什麼呢? 它全名是:Property List,屬性列表檔案,它是一種用來儲存序列化後的物

iOS開發之plist檔案的獲取

有上圖plist檔案,可以把以上字典轉換為一個model類Cinema,接下來就是獲取這個plist檔案 -(void)getData {  NSString* filePath = [[

ios學習之plist檔案的讀寫以及儲存位置的探究

       俗話說好記性不如爛筆頭,是很有道理的,許多東西時間長了以後就有點模糊,特別是程式碼這個東西,特別容易忘記,需要不斷的使用,反覆咀嚼,消化,還是記一下比較好,同時也解決了當時的心頭疑惑,在此記之,有不妥之處,歡迎批評指正!    十分感謝“榮芳志專欄”部落格,對

iOS 中info.plist檔案中的完整研究

我們建立一個工程後,會在Supporting files下面看到一個"工程名-Info.plist"的檔案,這個是對工程做一些執行期配置的檔案,很重要,不能刪除。 如果你在網上下載的工程中的這個檔名只是Info.plist,那麼恭喜你,這個工程太老了,是用包含SDK2.

iOS 9 建立plist 檔案、或檔案路徑查詢

#pragma mark-----------獲取plist檔案路徑------------------- - (NSString *)getFilePathWithFileName:(NSStrin

shell指令碼修改配置檔案中引數

shell指令碼修改配置檔案中引數指令碼:change_ejabberd.sh內容如下:注意:cut的用法:cut命令主要是接受三個定位方法:第一,位元組(bytes),用選項-b第二,字元(characters),用選項-c第三,域(fields),用選項-f

使用PlistBuddy修改plist檔案

下面舉兩個例子: 1、修改CFBundleURLTypes下面的CFBundleURLName /usr/libexec/PlistBuddy -c 'Set :CFBundleURLTypes:0:CFBundleURLName wosdfs' info.plist

IOS開發之plist檔案操作

plist是ios中類似xml檔案的配置檔案。它以標籤的節點方式儲存:NSArray和NSDictionary相關物件的資料。 儲存NSArray資料至plist檔案中 //建立一個數組,陣列中存放的是字典 NSArray *arrDict = @[

IOS學習之 plist檔案的讀寫

在做IOS開發時,經常用到到plist檔案, 那plist檔案是什麼呢? 它全名是:Property List,屬性列表檔案,它是一種用來儲存序列化後的物件的檔案。屬性列表檔案的副檔名為.plist

利用shell語句批量修改plist檔案

場景:由於業務需要,每次打包需要打包多個ipa,只是圖片和名稱不一樣,由於用的是企業賬號,每次更新需要修改ipa的指向檔案,瀏覽器安裝ipa的連結地址: itms-services:///?action=download-manifest&url=https://x

IOS 如何讀取Plist檔案(字串陣列)

建立一個Plist檔案: 選擇Type為Array型別,陣列中的資料都是String型別的 下面是陣列遍歷輸出的程式碼: %zi 表示正整數 %@ 表示物件 FR:海濤高軟(QQ技術群:386476712)

iosplist檔案修改

這篇文章是自己通過實踐獲取,在網上查過很多資料,也走了不上的彎路,由於剛開始學子不久,只是把自己遇到的問題貢獻給大家 一,建立檔案     //獲取路徑物件 NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDo

修改配置檔案指令碼

###made by h### echo --------------------------------- #篩出本機IP並存為變數 IP=`ifconfig | grep -E 'inet.[0-9]' | grep -v '127.0.0.1' | awk '{ pr

iOS開發中怎麼建立Plist檔案

1.就是手動建立.plist檔案。選中Xcode,使用快捷方式command+N建立plist檔案1.png建立plist檔案2.png手動新增屬性.png注意:只能讀取,不能用程式碼進行更刪改查。。(如果本身plist檔案在bundle中是無法修改的,需要先從Bundle中移出才可以。你應該把Plist檔案

利用python指令碼程式監控檔案修改

需求: 利用python編寫監控程式,監控一個檔案目錄,當目錄下的檔案發生改變時,實現有修改就發報警郵件 郵件使用QQ郵箱,需要開啟smtp,使用手機發生簡訊,騰訊會給你發郵箱密碼。如下所示: 把這個密碼填到程式中。 python版本 [[email protect

iOS巔峰之iOS10 info.plist檔案許可權設定

<!-- 相簿 --> <key>NSPhotoLibraryAddUsageDescription</key> <string>App需要您的同意,才能訪問相簿</string> <!-- 相機 --

IOS學習 --- Swift 對於plist檔案的讀寫

//System Medicine Name var plistPath = NSBundle.mainBundle().pathForResource("Medicine", ofType: "plist") var array = NSArray