导航:首页 > 源码编译 > 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分发源码相关的资料

热点内容
远程命令阻塞 浏览:728
有网页源码怎么查数据 浏览:99
win10下make编译速度过慢 浏览:864
微机原理编译环境 浏览:17
怎么把图纸转换成pdf 浏览:539
安卓libcurl编译64 浏览:903
手机app怎么测速 浏览:275
中兴gpon命令 浏览:885
python中取出字典key值 浏览:680
Linux目录inode 浏览:146
手机上如何用文件夹发邮件 浏览:428
畅课app密码忘了怎么找回 浏览:79
怎么编译idea 浏览:231
如何查看服务器是否做了热备 浏览:1001
硬盘同名文件夹病毒 浏览:729
百度云不解压下载 浏览:563
新冠疫情app怎么用 浏览:973
拆二代程序员 浏览:400
河北压缩空气冷干机生产厂家 浏览:582
图论与java 浏览:579