在此处发布实际代码没有太大意义,因为我们正在谈论7种不同的应用程序。
所有这些应用程序都已在Apple Store上正常运行。直到新的iOS 11.1发布。现在,我被迫更新所有这些应用程序,并重新排列屏幕以允许iPhone X的新布局。
现在,所有这些似乎大部分都是合理的,即使对他们改变自己的设计标准而言并非荒谬。但是真正的问题是我经历了所有这些。升级了Xamarin(Visual Studio),程序包,Xcode,模拟器和我的Mac系统。一切都在加快。这些应用程序可以在我安装它们的任何模拟器上编译和测试正常。
对代码的唯一更改是在屏幕上四处移动内容。好吧,那我现在需要放弃对任何i386的支持。现在都必须是x86_64。
据我所知,这是32位与64位之间的区别。所做的更改是“项目选项”中的下拉菜单选项。无论如何,完全没有迹象表明这些应用程序有任何问题。
因此,所有这些,我将我的应用程序提交批准,但每个应用程序都被拒绝,因为“应用程序在启动时崩溃”。他们还附上了一个日志文件,说明出了什么问题。
现在,我知道我可以为所有7个应用程序简单地搜索那些日志...日志文件需要馈入其他可以解密它们的程序,因为它们不可读。真烦人...
我希望有人可以为我省去一些麻烦,并解释他们在系统中所做的更改,这些更改未被编译器或模拟器捕获。
任何帮助都会很热。
最佳答案
我发布自己的答案,因为我在任何地方都找不到能解决我发现有效的内容的答案。因此,我正在为下一个像我这样的小型开发人员提供此信息,它们可以为苹果和Xamarin根本无法提供帮助的问题提供一些有用的答案。
Xamarin确实提供了一个页面,该页面实际上显示“为iOS 11准备好您的应用程序”。其中最有用的部分是向您展示如何删除与32位内容的任何链接。
Architecture changes
这主要是有帮助的。我以为一旦完成,我就会准备就绪。他们还完全没有提及其他两件事:
-您必须将目标设备设置为11.1。您不能将其设置为9.0。这会使应用程序在11.1系统上崩溃。
-您必须在info.plst文件的手动代码编辑(源)部分中进行更改。我不能说为什么这不是自动完成的。您必须将条目添加到“ arm64”的“必需的设备功能”部分。您还必须删除用于arm7的那个。
即使进行了建议的更改后,仍无法执行以上两项操作,将导致该应用在iOS 11.1设备上崩溃。
如果您认为我对此有点态度上的问题,是的。我不会为此道歉。
苹果改变他们的设计规格,给我们很少的时间进行改变,然后不提供真正必要的信息来进行改变,这是荒谬的。我也怪Xamarin。出于完全相同的原因。
完全弃用我拥有的所有测试设备,然后问:“为什么不在实际设备上进行测试?”也是荒谬的。因为为了测试那些勉强能赚钱的应用程序,我买不起一部新的1000美元手机。这就是为什么。
人们不知道为什么我认为为iOS设备开发很难做。