在模拟器内启动时,创建并安装的命令行iOS .app崩溃

我正在使用 xcodebuild和xcrun进行一些概念测试,以便在我的ios模拟器上创建和部署.app(甚至将.app目录传递给我的最终客户端).

无论如何,事情是我成功处理所有需要的步骤,从头开始创建.app文件(好吧,目录),但是当我执行下面的2行,特别是第二行,一旦我执行后,我得到一个应用程序崩溃尝试上传然后将.app运行到模拟器上:

xcrun simctl install booted $(PWD)/build/Debug-iphoneos/APP_NAME.app
xcrun simctl launch booted somebundle.id.from.me    <- CRASH

无论我尝试什么,xcrun命令都会在system.log上产生这个错误

Error Domain=FBSOpenApplicationErrorDomain Code=1 "(null)"

显然我的应用程序被安装到模拟器上(我已经多次擦除以创建一个全新的安装),它甚至可以启动(启动屏幕从模拟器桌面上出现的图标增长),但是我得到的第一件事就是我期待通过启动画面的应用程序是前面提到的崩溃行错误(在system.log文件中).

有人说我可能在我的模式定义面板中有一些虚拟空变量浮动.我已经检查过了,情况并非如此.没有任何变量.

其他一些人说应用程序的旧版本可能在模拟器的任务调度程序中处于活动状态.事实上,有时我发现我的任务是过去的一项旧任务,但是两次按“home”去模拟器任务管理器,杀死它,并试图用xcrun再次启动我的.app文件什么也没做,这个问题还在那里.
我甚至停止从Xcode本身启动的相同应用程序的旧执行(使用STOP按钮),但没有运气.

所以,我肯定迷路了.我无法通过命令行将我最近创建的.app启动到模拟器上.

使用9.3(iPhone 4s)模拟器和9.3(iPhone 6plus)模拟器失败了.
我的XCode工具是我的XCode 7.3.1中包含的工具.
我正在使用“ElCapitán”.

我想不出别的什么.

我希望能够通过“命令行工具”上传和运行我的.app.
我希望它可能以某种方式,或者至少看起来我真的很接近成功.

我可能忽略了任何其他暗示?

问候和感谢.

解决方法

成功自我回答问题的另一个案例:)

简短版本:我正在构建一个“真正的ios设备”编译版本,然后尝试将其安装到模拟器上.更改xcrun和xcodebuild(体系结构和路径)参数可以解决问题,现在,当从模拟器运行时,应用程序就像魅力一样.

长版:
出了什么问题?我在调用xcodebuild时(错误地)选择的体系结构和路径
定义我的编译体系结构的参数之一是隐式声明“ARM”(-sdk iphoneos),但Simulator运行时引擎使用的体系结构是i386(我们在MAC中).
正如预期的那样,一旦将“real-device-compiled-.app”安装到模拟器上,模拟器本身就不会理解如何启动它,然后就会发生神秘的崩溃.

什么给了我线索?
在Stack Overflow中我在其他地方找到的其他2个问题.在这里寻找额外的信息:

Apps manually installed in simulator crashes upon load

xcodebuild: simulator or device?

是什么让我检查其他2个线程?
我发现一个.log文件,而不是认的和/ var /log / system.log

RANT:您可以在现代MAC上找到MANY .log文件的问题! / RANT

无论如何,在发现哪个.log文件我有用的过程中,我发现了这些:

> $HOME / Library / CoreSimulator / CoreSimulator.log(对于
我的问题,无论如何).
> $HOME / Library / CoreSimulator / [UGLY_HASH_CORRESPONDING_TO_THE_SIMULATOR_YOU_ARE_USING] /system.log

最后一个是好的.在这个.log文件的末尾,我在尝试启动“糟糕构建的.app”文件时发现了其他信息.日志说的是这样的:

Program specified by service does not contain one of the requested architectures

然后“架构”这个词给了我解决我的问题以及寻找什么的提示.

就是这样.
如果有人在未来发现他/她自己处于相同的情况,我希望我上面写的所有这些信息都会有用.

问候.

PS:如果你找不到你麻烦的模拟器(及其相关的.log文件)所在的文件夹,那么(可以安装数十个模拟器),
您可以使用恶魔插件叫做̶X̶C̶o̶d̶e̶W̶a̶y̶.̶一旦这个插件是安装并正常运行,̶你可以检查路径您iOS8上̶模拟器这样做在Xcode:̶

XCODE̶-̶>̶WINDOWS̶-̶>̶̶X̶C̶o̶d̶e̶W̶a̶y̶̶-̶>̶去iOS8上̶模拟器夹FINDER将打开,̶而且会有您的.log文件̶:̶)̶̶

你可以阅读下面的评论,看看这个简短而正确的方法:)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...