iOS項(xiàng)目 project.pbxproj文件UUID批量修改

package main

import (
    "fmt"
    "io/ioutil"
    "math/rand"
    "regexp"
    "strings"
    "time"
)

func scanStrings(filePath string) ([]string, error) {
    // 讀取文件內(nèi)容
    content, err := ioutil.ReadFile(filePath)
    if err != nil {
        return nil, err
    }

    // 使用正則表達(dá)式匹配字符串
    pattern := regexp.MustCompile(`[0-9A-Z]{24}`)
    matches := pattern.FindAllString(string(content), -1)

    return matches, nil
}

func removeDuplicates(slice []string) []string {
    // 使用 map 來記錄已經(jīng)出現(xiàn)過的字符串
    seen := make(map[string]bool)
    result := []string{}

    for _, s := range slice {
        if _, ok := seen[s]; !ok {
            seen[s] = true
            result = append(result, s)
        }
    }

    return result
}

func replaceUUIDs(filePath string, uuids []string) error {
    // 讀取文件內(nèi)容
    content, err := ioutil.ReadFile(filePath)
    if err != nil {
        return err
    }

    // 為了防止重復(fù)驼鞭,使用 map 來記錄替換過的字符串
    replaced := make(map[string]bool)

    // 循環(huán)替換所有的 UUID
    for _, uuid := range uuids {
        if _, ok := replaced[uuid]; ok {
            continue // 已經(jīng)替換過了
        }

        // 隨機(jī)生成一個(gè) 24 位字符串來替換 UUID
        randStr := randString(24)

        // 替換 UUID
        content = []byte(strings.ReplaceAll(string(content), uuid, randStr))

        // 記錄替換過的 UUID
        replaced[uuid] = true
    }

    // 將修改后的內(nèi)容寫回文件
    err = ioutil.WriteFile(filePath, content, 0644)
    if err != nil {
        return err
    }

    return nil
}

func randString(n int) string {
    rand.Seed(time.Now().UnixNano())
    var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
    b := make([]rune, n)
    for i := range b {
        b[i] = letterRunes[rand.Intn(len(letterRunes))]
    }
    return strings.ToUpper(string(b))
}

func main() {
    filePath := "Runner.xcodeproj/project.pbxproj"
    uuids, err := scanStrings(filePath)
    if err != nil {
        fmt.Println(err)
        return
    }
    uuids = removeDuplicates(uuids) // 去重
    err = replaceUUIDs(filePath, uuids)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("UUIDs replaced successfully.")
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寒瓦,一起剝皮案震驚了整個(gè)濱河市页畦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌内地,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滔迈,死亡現(xiàn)場(chǎng)離奇詭異乏盐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)淋硝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門雹熬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谣膳,你說我怎么就攤上這事竿报。” “怎么了继谚?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵烈菌,是天一觀的道長。 經(jīng)常有香客問我花履,道長芽世,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任诡壁,我火速辦了婚禮济瓢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妹卿。我一直安慰自己旺矾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布纽帖。 她就那樣靜靜地躺著宠漩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懊直。 梳的紋絲不亂的頭發(fā)上扒吁,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音室囊,去河邊找鬼雕崩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛融撞,可吹牛的內(nèi)容都是我干的盼铁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼尝偎,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼饶火!你這毒婦竟也來了鹏控?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤肤寝,失蹤者是張志新(化名)和其女友劉穎当辐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲤看,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缘揪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了义桂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片找筝。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慷吊,靈堂內(nèi)的尸體忽然破棺而出袖裕,到底是詐尸還是另有隱情,我是刑警寧澤罢浇,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布陆赋,位于F島的核電站,受9級(jí)特大地震影響嚷闭,放射性物質(zhì)發(fā)生泄漏攒岛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一胞锰、第九天 我趴在偏房一處隱蔽的房頂上張望灾锯。 院中可真熱鬧,春花似錦嗅榕、人聲如沸顺饮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兼雄。三九已至,卻和暖如春帽蝶,著一層夾襖步出監(jiān)牢的瞬間赦肋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工励稳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佃乘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓驹尼,卻偏偏與公主長得像趣避,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子新翎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容