如何将 .ipa 文件安装到我的 iPhone 模拟器
Posted
技术标签:
【中文标题】如何将 .ipa 文件安装到我的 iPhone 模拟器【英文标题】:How can I install a .ipa file to my iPhone simulator 【发布时间】:2010-10-05 18:31:09 【问题描述】:我有一个在我的 Mac 上运行的 iphone 模拟器。
我有一个 .ipa 文件,你能告诉我如何在模拟器上安装它吗?
【问题讨论】:
【参考方案1】:Xcode 9.4.1+ 更新
希望我的答案在这里被看到,因为这花了我一段时间才弄清楚,但我刚刚开始工作。
首先,您需要在模拟器上构建和运行应用程序。然后打开活动监视器。双击您的应用名称以查找其内容。
在下一个屏幕中,打开 打开文件和端口 选项卡并找到带有 MyAppName.app/MyAppName 的行。
复制链接但请确保在 MyAppName.app 处停止。不要复制它后面的路径。
控制点击查找器图标并选择转到文件夹。
]
粘贴路径并点击进入。您将看到您的 MyAppName.app 文件。 将其复制到桌面并压缩。将其移动到您想要的第二台计算机并解压缩文件。构建一个随机项目以打开一个模拟器。
最后:将应用程序从桌面拖放到模拟器中。您将看到安装和应用程序打开并且不会崩溃。
【讨论】:
对有效的答案投反对票:D 真棒 适用于将开发版本转移到其他模拟器! @AlexPelletier 不是我们在这里讨论的重点吗? xD 为我工作!对于任何尝试使用 .ipa 的人来说,它都不起作用,因为 .ipa 只包含 arm 代码。 “首先你需要在你的模拟器上构建和运行应用程序。” 【参考方案2】:对于 Xcode 10,这是一种对我来说适用于调试 IPA(开发配置文件)的简单方法
-
解压缩 IPA 以获取 Payload 文件夹。
Payload 文件夹中是应用程序的可执行文件。
将应用程序拖放到打开的模拟器中。 (当您将它拖到模拟器上时,您可能会看到一个绿色的添加按钮)
它应该在那个模拟器上安装那个应用程序。
【讨论】:
为我工作,我已将“my-app.ipa”的名称更改为“my-app.ipa.zip”,然后使用 macos Finder 应用程序解压缩它。如果您想使用终端安装应用程序:xcrun simctl install "simulator-name" /path/to/my-app.app
【参考方案3】:
无需任何代码库即可在不同的模拟器中运行:-
首先通过构建您的项目(在 Xcode 中的项目文件夹下)创建一个 .app 并将其粘贴到适当的位置(参见图片以获得更清晰)
-
下载 Xcode
创建一个演示项目并启动您要在其中运行应用程序的模拟器。
将 .app 文件复制到特定位置(例如:桌面)。
cd 桌面并运行命令(xcrun simctl install booted appName.app),
应用程序将安装在特定启动的模拟器中。
【讨论】:
【参考方案4】:我找到了一个我想要使用 iTunes 的 .ipa 文件并将其复制到我的桌面。
之后,我将扩展名更改为 .zip
并提取它。
接下来,我找到了 Payload 文件夹并将其中的应用程序移动到我的桌面。
最后,我将该应用程序移至我的 iPhone 模拟器应用程序文件夹,该文件夹位于:
高清 > 应用 > Xcode.app(右键 - 显示包内容) > 目录 > 开发者 > 平台 > iPhoneSimulator.platform > SDK > iPhoneSimulator6.0.sdk > 应用希望这会有所帮助! (注意:有些应用比其他应用更容易崩溃。)
【讨论】:
@DataGreed:它已移至 HD > Applications > Xcode.app(右键单击 - 显示包内容)> Contents > Developer > Platforms > iPhoneSimulator.platform > SDKs > iPhoneSimulator6.0.sdk > Applications XCode 4.3 或更高版本在 OSX 上的路径位于以下位置(请注意,您的机器上的 5.1 部分可能不同)/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator。平台/开发者/SDKs/iPhoneSimulator5.1.sdk/Applications 应用程序在模拟器中显示.. 但它在 ios6 和 iOS7 中都崩溃了 @DataGreed :您提到了正确的位置。 Keeton 提到的答案帮助我安装了 LinkedIn 应用程序,但它崩溃了。有什么办法吗? 我确认这种安装方法即使在 2016 年 3 月也能正常工作。(虽然崩溃了,但已安装)【参考方案5】:在 Xcode 6+ 和 iOS8+ 中,您可以执行以下简单步骤
-
将 .app 文件粘贴到桌面。
打开终端并粘贴以下命令:
cd desktop
xcrun simctl install booted xyz.app
对于 iOS 8 以下的版本,请执行以下简单步骤。
注意:您需要确保您的应用针对所有架构构建,模拟器在构建设置中为 x386
,Build Active Architecture Only
设置为 No
。
-
路径:Library->Application Support->iPhone Simulator->7.1(或其他版本,如果需要)->Applications
使用应用名称创建一个新文件夹
进入文件夹并将 .app 文件放在这里。
【讨论】:
此命令有效,但应用程序崩溃,因为它不是为模拟器构建的。 :( 获取“没有设备启动。” 这对于在模拟器上构建应用程序并希望在不同模拟器上运行它的任何人都非常有用。请注意,最初的问题是关于 .ipa 文件而不是 .app 如果你有 .ipa,只需重命名为 .zip 并解压即可获得 .app @Vijay 我必须在第 2 步之前手动启动 iPhone 模拟器,否则这工作正常。【参考方案6】:首先,IPA 通常只有 ARM 切片,因为 App Store 目前不接受上传中的模拟器切片。
其次,从 Xcode 8.3 开始,您可以将 .app
捆绑包拖放到模拟器窗口中,它将被安装。如果您想保存或分发给其他人,可以在您的构建产品目录~/Library/Developer/Xcode/DerivedData/projectname-xyzzyabcdefg/Build/Products/Debug-iphonesimulator
中找到该应用程序。
要从命令行安装,请使用xcrun simctl install <device> <path>
。
device
可以是设备 UUID、其名称或 booted
(表示当前启动的设备)。
【讨论】:
是的,您可以拖放.app
文件,但这不会复制模拟器运行它所需的所有内容。我正在使用的应用程序立即崩溃。 Xcode v. 8.3.3
根据定义,它确实包含了所有需要的东西。当 Xcode 在模拟器中安装应用程序时,我们将路径传递给 .app
文件,这就是安装的内容。您的应用因其他原因而崩溃。【参考方案7】:
更新:对于 Xcode 8.0+,您需要按照以下步骤操作:
-
从 iTunes 下载应用程序
选择下载的应用,右键显示在finder中
复制
.ipa
文件到桌面,重命名为.zip
文件
提取 .zip
文件,您将获得带有应用程序名称的目录
检查您将在Payload文件夹中找到app
文件的目录,复制此app
文件
转到~/Library/Developer/CoreSimulator/Devices
仅供参考:Library
文件夹在 mac 中默认隐藏,您可以使用以下命令查看隐藏文件。
defaults write com.apple.finder AppleShowAllFiles YES;
killall Finder /System/Library/CoreServices/Finder.app
现在在这里你会看到很多带有长十六进制名称的目录,这些都是模拟器。
要找到您想要的模拟器,请使用“Arranged By > Date Modified”对这些目录进行排序。
选择该模拟器文件并转到以下位置。
<HEXADECIMAL-SIMULATOR-STRING>/data/Containers/Bundle/Application/
使用<download-app-name>
创建新文件夹名称并将app
文件粘贴到该文件夹中
打开终端并运行下面的命令来安装这个应用程序
xcrun simctl install booted <APP_FILE_PATH>
示例<APP_FILE_PATH>
如下所示:
~/Library/Developer/CoreSimulator/Devices/<HEXADECIMAL-SIMULATOR-STRING>/data/Containers/Bundle/Application/<APP_NAME>
【讨论】:
您可以使用xcrun simctl list
查找模拟器和代码
这似乎可行,但是您的示例应用程序路径需要在 ~ 开头的 / 之后,并且该路径需要一直到 .app 文件,而不仅仅是包含它的目录.
如果你想找到当前正在运行的模拟器可以使用xcrun simctl list | grep Booted
如何才能可靠地为任何下载的应用程序工作?由于只需要 arm 二进制文件,xcode 还会做些什么来使其工作?除非你的意思是只针对那些你有所有原始资产要重新定位的应用程序?【参考方案8】:
您可以在模拟器中运行项目的应用程序文件 - 而不是 .ipa 文件。
您可以从:
Libraries-->Applicationsupport-->iphone simulator-->4.3(its ur simulator version)-->applications-->
然后你可以看到很多文件比如0CD04F....
通过打开它找到你的应用程序文件。
您可以将文件复制到您的系统(您需要运行哪个系统模拟器)位置Libraries-->Applicationsupport-->iphone simulator-->4.3(its your simulator version)-->applications-->
然后打开模拟器 4.3(它是您粘贴的模拟器版本)。您可以看到那里安装的应用程序。
从其他人那里获得:
请告诉他们找出Libraries-->Applicationsupport-->iphone simulator-->4.3(its ur simulator version)-->applications-->
然后您可以从他们的系统中看到许多文件,例如0CD04F....
,并从他们那里接收该文件。
他们得到文件后,请将文件复制并粘贴到您的系统`Libraries-->Applicationsupport-->iphone模拟器-->4.3(它的模拟器版本)-->应用程序-->(粘贴文件在这里)。
然后你就可以看到应用已经安装在你的系统模拟器中了,点击文件后就可以运行了。
【讨论】:
【参考方案9】:使用 Xcode 6:
很可能在模拟器上构建和安装。
我通过在项目设置中复制调试构建配置(我在下面的示例中将其称为 SimRelease)来做到这一点。我将架构更改为 i386 和 x86_64(不确定这有多么必要),但在复制的构建配置之间进行更改的关键区别在于将活动架构设置为 NO。之后,几个简单的命令行工具将完成剩下的工作!
xcodebuild -scheme YOUR_SCHEME -configuration SimRelease -sdk iphonesimulator8.1
根据您设置 DerivedData 的位置,您需要找到输出的 .app 文件夹。找到它后,您可以简单地将其安装在任何模拟器设备上。要找到设备 UUID 的打开 Xcode 并转到 Window->Devices,您将看到设备实例列表,您可以获取 UUID。对于一个简单的脚本,您可以从以下位置获取所有脚本:~/Library/Developer/CoreSimulator/Devices/ 并安装在每台设备上。
从那里安装到设备上的简单命令是:
xcrun simctl install DEVICE_ID APP_FOLDER_LOCATION
这是一个简单的 shell 脚本,用于获取应用并将其安装在每台设备上:
app_dir=$1
current_dir=$(pwd)
cd ~/Library/Developer/CoreSimulator/Devices/
devices=$(ls -d */)
cd "$current_dir"
for device in $devices
do
device_id=$device%/
xcrun simctl install "$device_id" "$app_dir"
done
希望这会有所帮助!我花了一段时间才弄清楚最好的方法。
【讨论】:
这个脚本比较短:xcrun simctl install booted APP_FILE_PATH 但是当安装应用到模拟器时,应用无法运行【参考方案10】:从这里复制: - 在 Xcode 中运行应用程序。 - 选择 Finder 转到 Go 并单击选择 Library Library/Application Support/iPhone Simulator/7.0.3-64/Applications - 选择 32 位文件夹复制您的应用程序。
粘贴到这里: - /Applications/Xcode-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhone 模拟器。 SDK/应用程序 - 粘贴到这里并运行模拟器。
【讨论】:
【参考方案11】:您无法在模拟器中运行 ipa 文件,因为 ipa 文件是针对手机的 ARM 架构而非模拟器的 x86 架构编译的。
但是,您可以提取安装在本地模拟器中的应用,将其发送给其他人,然后让他们将其复制到他们机器上的模拟器中。
在终端输入:
open ~/Library/Application\ Support/iPhone\ Simulator/*/Applications
这将打开您已安装的所有模拟器的所有应用程序文件夹。每个应用程序都将位于具有随机十六进制名称的文件夹中。您可以通过查看每个应用程序来确定哪个是您的应用程序。找到您想要的文件后,右键单击它并选择“压缩...”,它将生成一个 zip 文件,您可以轻松地将其复制到另一台计算机并解压缩到类似的位置。
【讨论】:
在 iOS 8 上,它被移动到每个设备应用程序:~/Library/Developer/CoreSimulator/Devices/594C6B4D-AB19-479B-A047-240361C51D95/data/Applications/ 所以open ~/Library/Developer/CoreSimulator/Devices/*/data/Applications
或者,您可以从您的一个模拟器中提取它,启动另一个(切换操作系统版本),然后在其中安装它。
从 iOS 10 开始,您必须从以下位置复制两个十六进制命名的应用程序文件夹:~/Library/Developer/CoreSimulator/Devices/*/data/Containers/Data/Application/
~/Library/Developer/CoreSimulator/Devices/*/data/Containers/Bundle/Application/
否则应用程序将不会显示在模拟器中。【参考方案12】:
你不能。如果它是通过 iTunes 商店下载的,则它是为不同的处理器构建的,并且无法在模拟器中运行。
【讨论】:
我要补充一点,在模拟器中启动 iPhone 应用程序的唯一方法是自己从 XCode 编译它,模拟器是活动目标。 可以在模拟器中运行项目的应用文件。 看起来下面有人在这方面取得了一些成功。 hackish,但如果它有效,知道这一点很有用。 任何声称在模拟器上运行 iPhone 应用程序的人都是妄想。 iPhone 模拟器不是模拟器——它不能运行 ARM 代码。 它将使用下面的技术在模拟器中显示图标,但是,我们的应用程序在运行时会立即崩溃。以上是关于如何将 .ipa 文件安装到我的 iPhone 模拟器的主要内容,如果未能解决你的问题,请参考以下文章