導航:首頁 > 源碼編譯 > ipa分發源碼

ipa分發源碼

發布時間:2022-05-12 07:57:28

Ⅰ 如何下載蘋果應用分發平台的 ipa 文件到本地

apk文件用蘋果手機無法打開!apk後綴的文件是安卓設備的安裝包,蘋果產品採用的是ios系統,安裝的軟體後綴為ipa,兩者是不能互相打開安裝的。

Ⅱ iOS 的 framework 和 ipa 文件可以反編譯源碼

ipa 文件其實是一個壓縮包,裡麵包括了可執行文件,資源文件等信息。
反編譯的話也可以,只是你要有足夠強的功底,就可以。這個至少匯編得會吧,然後可以根據反編譯出來的匯編寫出原來的OC程序。現在我沒有發現有什麼工具可以直接反編譯出ELF文件的。
框架(framework)是一個基本概念上的結構,用於去解決或者處理復雜的問題。這個廣泛的定義使用的十分流行,尤其在軟體概念。框架也能用於機械結構。

Ⅲ 可以在 windows 平台上使用 appium 測試 IOS 手機嗎

首先 Appium 支持 iOS 真機

以下條件必須滿足:

蘋果開發者賬號和開發者證書
蘋果設備,確保這個設備已經被配置為開發機器。怎麼配置?
簽名過的 .ipa 文件或者源代碼
A Mac with Xcode and the Xcode Command Line Developer Tools,有 xcode和xcode command line 的 蘋果系統。別來問我,windows 怎麼測試 iOS 應用。
Provisioning Profile

再次強調真機需要有效的開發分發證書和開發的 Provisioning Profile。
你的應用需要簽名。Appium 會參試使用 Fruitstrap 安裝應用。
但是使用 xcode 安裝到真機會方便很多。

拓展: 什麼是 Provisioning Profile?

運行

要指定真機運行有兩種方式:

appium 啟動的時候,指定 udid 和 app bundle appium -U --app
或者在腳本里指定兩個 desired capability

desired_capabilities={
'app':'com.xxx.iphone',
'udid':'',
'platformName': 'iOS',
'deviceName': 'iPhone'
})
注意: 如果設備中未安裝 app 可以指定 ipa 地址,如果安裝了,
則指定 bundle ID。

所以對於第一種情況,代碼可以這樣寫:

self.driver = webdriver.Remote(
command_executor='',
desired_capabilities={
'deviceName':'',
'platformName': 'iOS',
})
對於第二種情況,代碼可以這樣寫:

app = "io.appium.TestApp"
self.driver = webdriver.Remote(
command_executor='',
desired_capabilities={
'deviceName':'',
'platformName': 'iOS',
'app': app,
'udid': ''
})
調試的思路

確保 UDID 的正確,是真機的 UDID。(20+ 字元串)
確保在模擬器上已經能運行無誤了。
直接使用 Instruments 看看是否能在真機上運行。有些情況連 xcode 的 instruments 都不能在真機上調試,那更別談 appium 了
確保運行 appium 用例前, instruments 沒有啟動過。看看有沒有 instruments 的進程。
目前 1.2.2 的坑

目前 appium 1.2.2 上運行 iOS 真機測試的話,可能會遇到如下的錯誤:

info: [debug] Starting iOS device log capture via deviceconsole
error: iOS log capture failed: spawn ENOENT
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: spawn ENOENT
info: [debug] Error: spawn ENOENT
at errnoException (child_process.js:1000:11)
at Process.ChildProcess._handle.onexit (child_process.js:791:34)
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: spawn ENOENT)","code":"ENOENT","errno":"ENOENT","syscall":"spawn","origValue":"spawn ENOENT"},"sessionId":null}
info: <-- POST /wd/hub/session 500 1780.745 ms - 197
這是因為在 /usr/local/lib/node_moles/appium/build/deviceconsole/ 下面缺失了 deviceconsole。已經有 bug 追蹤了。

解決方法如下:

到該目錄底下 cd /usr/local/lib/node_moles/appium/build/deviceconsole/
打開這個deviceconsole project。 open deviceconsole.xcodeproj
重新 build 一把。把 build 出來的 deviceconsole,復制到 /usr/local/lib/node_moles/appium/build/deviceconsole/去。
然後重新運行 Appium

Ⅳ 未簽名的ipa 可不可以修改代碼

准備

在重簽名之前要做一些准備工作。

1.首先要下載並安裝Xcode,裡面有個codesign_allocate程序,在安裝時/usr/bin中會多一個codesign的程序,該程序用於ipa包的簽名。

2.企業證書的Certificate文件,私鑰文件,Provisioning Profile文件等。注意企業證書一定要是iOS Distribution的類型,不能是iOS Development。

重簽名步驟

1.解壓ipa

解壓ipa得到Payload/[App name].bundle,打開bundle。

2.刪除舊的ipa簽名信息

刪除bundle中的_CodeSignature文件夾,也就是刪除之前ipa的簽名信息。

3.更換證書

將bundle中舊的Provisioning Profile刪除,用我們自己的企業證書的Provisioning Profile替代。

注意,要將ipa包中我們的企業證書改名為embedded.mobileprovision。

4.修改bundle內容

此時我們可以盡情地修改bundle中的內容,例如添加一個動態庫,刪除一張圖片等。

注意:如果要往bundle中添加動態庫,必須要先將其壓縮成zip文件,在程序啟動時將其解壓到Documents目錄下再dlopen,否則程序在啟動時載入動態庫文件會卡死在那裡。

5.重新簽名

在完成bundle內容的修改後,需要通過/usr/bin/codesign程序重新簽名,命令如下:

/usr/bin/codesign -f -s "iPhone Distribution: YourCompanyName" --resource-rules Payload/ MYAPP.app/ResourceRules.plist Payload/ MYAPP.app

其中iPhone Distribution可以從鑰匙串訪問中獲取,就是企業證書的名字,例如下面的"iPhone Distribution:XXXXXXXXXX":

具體的命令示例:

codesign -f -s "iPhone Developer: XXXXXXXXXX" --resource-rules Payload/NdCP_Game_Demo.app/ResourceRules.plist Payload/NdCP_Game_Demo.app

這條命令的意思是:使用keychain中"iPhone Developer: XXXXXXXXXX"標識的證書,根據Payload/NdCP_Game_Demo.app/ResourceRules.plist文件中的規則進行簽名,如果ipa包中已經存在簽名,那麼將被替換,該過程生成的_CodeSignature目錄將存放在Payload/NdCP_Game_Demo.app目錄下。

在命令執行後,在bundle中會生成一個新的_CodeSignature目錄,裡麵包含了新的簽名信息。

6.重新打包成ipa

在完成上述工作後,可以生成新的ipa進行發布。示例命令如下:

zip -r ResignTest.ipa Payload

# 注意Payload後面不能有「/」



7.發布

經過打包發布測試,得出結論:對修改了ipa包內容和其中的簽名後,重簽名的ipa文件可以在非越獄設備和越獄設備上成功安裝。注意,是通過帶有SSL證書的網站和Apple系統安裝的(企業內部分發程序),不是通過PP助手那樣的第三方工具安裝的。

Ⅳ 如何利用開發者賬號重簽ipa文件,並部署到IOS設備做測試

1. 先通過TestFlight安裝build
2. 再把build通過ifanbox把build導出來成為ipa文件
3. 下面就需要把ipa文件重新簽名,方法有兩種
方法一:
利用商業化工具簽名,SeeTest支持把ipa重新簽名,簽名需要提供 provision文件,和開發者證書私鑰和密碼
方法二:
自己想辦法簽,代碼參考如下

unzip app.ipa
rm -rf Payload/MyApp.app/_CodeSignature/
cp ~/Downloads/AdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision
codesign -f -s "iPhone Distribution: Company Certificate" --resource-rules Payload/MyApp.app/ResourceRules.plist Payload/MyApp.app
zip -qr app-resigned.ipa Payload/

其中"iPhone Distribution: Company Certificate"是你證書的common name, 別的沒什麼要注意的。
方法三:
網上有推薦用一個叫iresign的工具簽名,其實挺好用,該工具只能工作在mac下面
個人推薦用方法三,但是要注意一個問題,就是iresign需要你提供四個信息,一個是ipa文件,一個是provision文件,一個是證書的common name,最後一個是entitlements.plist文件。前三個想必大家都懂,但是第四個之前真沒聽過,網上資料也有限。
請用下面的方法生成entitlements.plist文件

/usr/libexec/PlistBuddy -x -c "print :Entitlements " /dev/stdin <<< $(security cms -D -i proction.app/embedded.mobileprovision) > entitlements.plist
/usr/libexec/PlistBuddy -c 'Set :get-task-allow true' entitlements.plist

生成之後,再利用iresign,就可以做出一個可以被xcode instrument的ipa包了。

Ⅵ jenkins可以自動分發安裝.ipa文件嗎

scheme 選 iOS Device(或者你當前連著的設備),Proct 選 Archive,完成後會自動彈出 Organizer(沒有的就自己從菜單 windows 選),選 archives,右上選分發的按鈕,三個選項中選第二個。需要解決了證書問題。

Ⅶ ios源碼怎樣才能生成ipa,用什麼開發工具,用什麼命令打包

window下是無法開發iOS程序的。mac系統里有XCode這款工具~~

Ⅷ 蘋果超級簽名源碼和蘋果企業簽名有什麼區別

首先來簡單介紹一下這兩種簽名方式的原理:

超級簽名是使用個人開發者賬號,自動化添加蘋果設備的udid,實現真機測試。

而企業簽名是使用企業開發者賬號,通過生成的p12證書,對應用進行簽名。

超級簽名與企業簽名的區別:

1、是否需要越獄?

這兩種簽名方式都無需越獄。

2、是否需要提供UDID?

對於用戶來說,這兩種簽名方式都不需要主動提供udid,超級簽名將獲取、注冊udid實現了全自動化,用戶直接安裝即可。

3、安裝之後是否需要信任

企業簽名的應用,用戶在安裝時需要先在【設置】-【描述文件】中信任證書。

而超級簽名無需信任證書,可以直接安裝。

4、穩定性如何,是否會掉簽?

超級簽名和企業簽名都有可能掉簽,不過企業簽名掉簽的頻率會多一點,尤其是共享企業簽名。

而超級簽名掉簽的幾率比較小,超級簽名更加穩定。

5、是否需要提供源碼?

兩種簽名方式都不要提供源碼。

6、能否在App Store上搜索到?

兩種簽名方式都不能在App Store上搜索到。

7、如何收費?

目前市面上的企業簽名一般按月收費,超級簽名是按照下載量收費。

8、兩種簽名方式分別適合什麼樣的APP?

超級簽名價格較貴,一般適合用戶數量不是很多的APP,而企業簽名一般對APP的類型和數量沒有限制。

超級簽名更加穩定,適合運營初期的APP,提高用戶體驗,提高用戶粘性,穩定忠實用戶。

微導流新版本正式上線,在線企業簽名



Ⅸ 如何把蘋果app導出 ipa

導出蘋果安裝包IPA的幾種方法
說明一下,這里針對的是沒有源碼和非越獄設備的幾種方法。下面簡單介紹下幾款軟體的用法。

1. Apple Configurator 2
在App Store搜索「Apple Configurator 2」下載安裝(最低適配macOS 10.14)
准備工作: Apple ID賬號密碼, Apple設備。
步驟:

1.1 連接設備到Mac, 菜單 -> 賬戶 -> 登錄
avatar

1.2 添加 -> 應用, 這里會顯示你的已購記錄,選中應用後添加。這個過程和網速有關,需要等待應用在手機上安裝完成。
avatar
如果你已經安裝了應用,不要點擊任何操作!

1.3 command+shift+G 進入文件夾~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/
avatar

2. 愛思助手(強烈推薦,簡直不要太好用了!!!)
准備工作: 無。
不寫步驟了,太簡單了。連接設備到電腦後下載愛思上的應用到電腦,完成後打開文件夾位置IPA 也就拿到了。
在這里插入圖片描述
在這里插入圖片描述

3.iMazing
可以把目前手機上自己安裝的所有app都導出到電腦上,唯一的缺點就是導出來的格式是imazingapp格式,不是IPA。當然,這種格式也只能用iMazing安裝大手機上。
准備工作: Apple設備。
步驟:連接設備後選擇應用程序 -> 選中應用 -> 拷貝至MAC -> 保存
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

4. iTunes
因為iTunes12.6以上版本去掉了應用程序相關功能,所以只能在12.6以下版本的iTunes上進行導出IPA了。具體方法網路一大堆,就不詳細說了。如果你很幸運的升級了mac OS ,那麼恭喜你中獎了,因為想在10.14上裝個12.6版本的iTunes我弄了半天都沒裝好,我太難了,所以有成功的巨佬麻煩告訴一聲哈。

Ⅹ iOS企業開發者賬號ipa簽名後如何進行部署發布

  1. 你可以將簽好的IPA包上傳到蒲公英,生成二維碼進行分發;

  2. 你也可以將簽好的IPA包上傳到fir.im上,生成二維碼進行分發;

  3. 你還可以把簽好的IPA包上傳到自己的伺服器進行分發。

閱讀全文

與ipa分發源碼相關的資料

熱點內容
安卓libcurl編譯64 瀏覽:899
手機app怎麼測速 瀏覽:273
中興gpon命令 瀏覽:883
python中取出字典key值 瀏覽:676
Linux目錄inode 瀏覽:144
手機上如何用文件夾發郵件 瀏覽:424
暢課app密碼忘了怎麼找回 瀏覽:75
怎麼編譯idea 瀏覽:231
如何查看伺服器是否做了熱備 瀏覽:1001
硬碟同名文件夾病毒 瀏覽:727
百度雲不解壓下載 瀏覽:560
新冠疫情app怎麼用 瀏覽:971
拆二代程序員 瀏覽:398
河北壓縮空氣冷干機生產廠家 瀏覽:580
圖論與java 瀏覽:577
程序員寫代碼告白初音 瀏覽:742
sshpdf 瀏覽:541
windows調用linux 瀏覽:594
如何查找本地伺服器名稱 瀏覽:822
linux文件只讀屬性 瀏覽:586