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

Isa*_*aac 4 xcodebuild ios ios-simulator xcrun

我正在使用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
Run Code Online (Sandbox Code Playgroud)

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

Error Domain=FBSOpenApplicationErrorDomain Code=1 "(null)"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

我想不出别的什么.

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

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

问候和感谢.

Isa*_*aac 6

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

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


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

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

手动安装在模拟器中的应用程序在加载时崩溃

xcodebuild:模拟器还是设备?

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

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

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

  • $ HOME/Library/CoreSimulator/CoreSimulator.log(对我的问题不是很有用).
  • $ HOME /库/ 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
Run Code Online (Sandbox Code Playgroud)

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


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

问候.


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文件̶:̶)̶̶

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