很多人都說iOS不支援雙開或者多開App很難受,其實吧,只要肯折騰肯定是有辦法的。
先說缺點:
1. 小而美自己暫時搞定不了,所以為了小而美雙開來看這個教程的可能要失望了。
2. 部分App會檢查Bundle ID,這個教程會更改App的Bundle ID,因此可能會導致App不能正常使用。
3. 需要有電腦
4. 免費的賬戶有數量限制,免費的開發者賬戶限制三個ipa
5. 每7天都需要重新簽名,當然程式會自動在後臺工作
需要的工具:
1. 電腦一臺,Windows 或者 Mac 電腦都可以
2. Apple ID 一個或者多個
3. iOS裝置
第一步 獲取需要多開的ipa檔案
這一步需要使用到舊版本iTunes或者iMazing軟體下載好需要多開App的ipa檔案,建議從iTunes下載,IPA檔案比較完整,iMazing有的時候下載的ipa沒有賬號簽名,安裝以後開啟閃退。macOS的使用者可以下載Apple Configurator 2,覆蓋安裝App的時候,從臨時目錄提取IPA即可
第二步 敲殼
因為App Store中的ipa是由Apple對整個程式包加了一個外殼並且進行了簽名保護,所以必須要敲殼以後才可以進行重新簽名。如果沒有越獄的手機只能去網上找資源或者能下載到的我可以幫你敲殼。
這一步是整個教程中的第一個難點,因為這一步需要一臺越獄的裝置或者電腦上將ipa敲殼,如果已經有敲殼好的IPA檔案,比如去越獄商店下載的ipa都是已經敲殼的,可以直接跳過這一步。
1先將ipa檔案安裝到手機中,可以使用iMazing或者愛思助手等。
2使用Cydia或同類型商店安裝 Cracker+ 敲殼工具
3開啟Cracker+選擇Settings選項卡,開啟 Cracker Hook 和 Fakesign IPA File兩個選項
4選擇需要敲殼的那個App,點選開始,外掛會自動開始敲殼,並且期間會執行這個App,所以要保證這個App可以在手機中正常開啟。
5.完成敲殼後,會提示儲存的路徑,你可以使用電腦上的愛思助手或者iMazing讀取到這個檔案把它複製到電腦中備用,前提是需要安裝AFC2這個外掛。如果是macOS系統可以直接在手機使用Filza找到上述的目錄,然後用airdrop傳送到電腦上即可。
第三步 安裝AltStore
先進入AltStore的官方網站(altstore.io)下載最新版的AltStore Server,並在電腦上安裝AltStore Server。
Windows電腦安裝AltStore Server 需要安裝iCloud控制面板、iTunes(非Microsoft Store中的版本)
macOS需要安裝郵件擴充套件,需要開啟系統自帶的郵件App,選擇偏好設定->管理外掛啟用AltStore外掛即可
電腦上安裝好AltStore Server後,是用資料線將iOS裝置和電腦連線。手機上點選信任後,選擇AltStore Server的 Install Altstore,選擇連線的iOS裝置後開始安裝AltStore手機版,這裡需要輸入Apple ID。可以輸入自己常用的,如果不放心可以單獨註冊一個Apple ID用來實現重簽名。
安裝好Altstore以後,在iOS裝置的設定中信任當自己的開發者賬號,就可以啟動altstore了。
第四步 將敲殼好的IPA檔案複製到iOS裝置中
我本來認為這一步是很簡單一步,因為只是複製個檔案,這個能有什麼複雜的呢。經過我的實踐發現還是有些複雜的。以為我想用Mac上的AirDrop不就能輕鬆的將檔案傳送到iOS裝置了麼,結果發現能傳送但是無法儲存。
所以我找到了一個辦法來替代它,就是使用SMB共享資料夾,Windows電腦中用的比較多了,macOS也是支援的。
開啟iOS自帶的檔案App,點選右上角的。。。選擇 連線到伺服器 輸入你的電腦的ip地址,使用者名稱是電腦的使用者名稱,密碼就是電腦的開機密碼,如果沒有設定密碼可以試一下使用者名稱:guest 密碼空著就行,能連線上以後選擇你已經敲殼的IPA檔案,長按選擇移動,不要選擇複製,因為在macOS和iOS
的檔案系統邏輯中,複製只是在當前的目錄複製一份這個檔案,可以理解成複製一個副本。移動才是選擇一個目錄並且把它複製過去。
我們把敲殼以後的IPA儲存到iPhone以後就可以繼續下一步了
除了這個方法還可以用U盤,不過iPhone現在仍然使用的是Lightning介面,還需要單獨購買轉換器,這個就有些得不償失了,不過有配件的可以用配件和U盤,簡單粗暴解決傳輸的問題。
第五步 重簽名
點選AltStore的左上角的+選擇IPA檔案,Altstore就會自動開始操作了,等待它慢慢工作就行了,操作的速度取決於你的IPA檔案大小,如果檔案非常大的話,那就很慢很慢了,需要耐心等待。
重簽名期間讓iOS裝置不要鎖屏,不然會導致簽名中斷。
如果沒有任何錯誤資訊或者提示,就可以返回桌面開啟雙開的App了,就能愉快的在iOS平臺享受雙開或者多開App的快樂了
注意每7天需要重新續簽一下,當然AltStore可以在後臺自動完成這個任務,但是要注意電腦得開啟,並且在同一個Wi-Fi下才行
多開App的實現方法
上面的步驟是實現了雙開App,接下來的教程就是三開,先說下原理吧,iOS是靠IPA的Bundle ID來判斷是否是同一個App的,所以我們只需要把Bundle ID修改了就能實現多開了。
到多開的教程了。首先先說一下Apple的免費開發者賬戶是隻能在7天內同時簽名3個App的,但是AltStore自己佔用了一個,所以一個賬號只能簽名2個App了,如果想要實現特別多的App同時用,那你只能申請多個免費的Apple開發者賬號了(就是Apple ID)。理論上你的多開App數量是:2*n(n≥1)
回到砸殼以後的檔案已經在電腦裡了,想要實現多開/新舊版本共存,我們需要修改一下IPA檔案的資訊。
1.將IPA解壓(可以先把IPA檔案的字尾改成zip)
2.開啟PayloadXXX(那個App的名稱).app找到info.plist,可以用記事本開啟也可以用第三方plist工具,比如愛思助手裡就能開啟plist,macOS使用者可以使用Xcode自帶的工具直接開啟並且編輯。
3.找到 CFBundleIdentifier 的值 com.xxxxx.xxxx ,並在這個com.後面隨意修改一下,加點數字或者字母都可以,不能是非英文字元就可以了,儲存。小提示:建議把 CFBundleName 對應的值也修改掉,因為這個是在手機桌面上的顯示的名稱,多開以後名字都一樣的話真的很難分辨,所以在這裡一併修改了還是更方便一些的
4.將plist儲存好,並重新把IPA檔案打包修改後綴名為.ipa即可
5.回到上面的第四步,把修改後IPA檔案存到iOS裝置上,然後重簽名即可實現多開
問答
問題1: 為什麼小而美就不能重簽名實現雙開或者多開??
回答:我嘗試過敲殼並且重新簽名,但是無法簽名成功,提示ipa是加密的,無法簽名,所以我也沒辦法。找找其他的方案吧
問題2: 我如果不對ipa敲殼,直接使用AltStore進行簽名安裝會怎麼樣
回答:雖然可以正常簽名並且安裝,不過App無法開啟,點開後黑屏並且立刻閃退
問題3: 我直接在越獄的iPhone中的App Store下載好App進行敲殼,能行嗎?
回答:確實可以,不過自從iOS9開始Apple啟動了應用分割技術,就是這個ipa檔案只適用於某一個特定螢幕尺寸的iOS裝置。所以會出現雖然敲殼以後,但是無法安裝在其他裝置中的情況。因此還是建議直接用電腦下載好完整版的ipa,這樣就能大機率避免這個問題了。
問題4: 我不喜歡AltStore能不能用別的軟體簽名
回答:當然可以,不一定非要用AltStore,也可以用愛思助手等軟體進行簽名。AltStore的優勢是可以只用手機就重新簽名了,不需要每次簽名後重新安裝ipa這個繁瑣的過程。
問題5: 既然可以實現App雙開或者多開,那我可以不可以實現App新舊版本共存?
回答:理論上也是可以的,只要你有舊版本並且敲殼以後的IPA檔案就行,當然依然是需要用到Windows版本的舊版iTunes配合抓包工具來操作,教程網上挺多的,自己去找一下
問題6: 我在使用AltStore的時候遇到了如下圖的錯誤
回答:這個問題就是ipa不適用當前的iOS裝置,可以嘗試用iTunes重新下載ipa再試一下。當然我也遇到了這個問題,我依然是修改了plist檔案,強行解決了。首先還是先把ipa解壓,找到info.plist,並且開啟它,在UISupportedDevices裡面新增一行,把你的iPhone的內部代號存進去就可以了,注意是iPhone內部的編號,AltStore已經提示你了,千萬不能寫iPhone 12 mini或者iPhone 13 Pro這種,會導致ipa無法正常簽名。把它寫進去即可注意裡面的逗號是英文狀態下的。
問題7: Altstore怎麼這麼佔空間?是不是快取太多了
回答:確實,這可能是AltStore的一個bug,簽名幾次以後就會導致快取很大。
解決方案:用電腦開啟愛思助手或者imazing,找到AltStore的目錄,如下圖,將tmp資料夾下的所有檔案刪掉就好了。
問題8: 我用的是macOS和Windows電腦,兩臺電腦都有AltStore Server,續簽以後,我雙開或者多開的App就打不開了,如圖
回答:這個應該也是altstore的一個bug,如果只在Mac上或者只在Windows上就不會有這個問題。
解決方法:手機上開啟AltStore找到你的App長按它,會彈出一個選單,選擇Deactivate,然後等待系統自動把它存檔,然後重新Active就好了
原創內容,搬運請註明出處