无法重现 iOS App Review 团队崩​​溃。使用 Vuforia 的 Unity 应用程序

Posted

技术标签:

【中文标题】无法重现 iOS App Review 团队崩​​溃。使用 Vuforia 的 Unity 应用程序【英文标题】:Unable to reproduce iOS App Review team Crash. Unity app with Vuforia 【发布时间】:2018-08-12 10:50:47 【问题描述】:

我们最近提交了两个应用程序(一个新应用程序,一个是已发布应用程序的更新),两个应用程序被 ios 应用程序审核团队拒绝,原因如下:

准则 2.1 - 性能 在我们审核期间,您的应用在运行 iOS 11.2.5 且连接到 IPv6 网络的 iPad 或 iPhone 上崩溃。

在提交应用程序之前,我们使用 testflight 在 4 种不同的设备和 iOS 版本上对它们进行了广泛的测试,并且完全没有遇到崩溃。 我们无法重现 ios 应用审查团队的崩溃体验

我们的开发环境对于这两个应用程序是相同的,可能是这就是崩溃的原因: Unity 2017.2.1f1 与 Vuforia(这是一款增强现实应用)、Xcode 9.2(最新版本)

之后你会发现新应用的崩溃日志,(更新后的应用有相同的崩溃日志...),它们非常相似:

The two crashlogs are very similar : 

"app_name":"ournewappname","timestamp":"2018-03-01 17:04:56.02 -0800","app_version":"1.0.1","slice_uuid":"af7e5c57-c2bc-3c91-8e1e-559acfccdb7f","adam_id":0,"build_version":"1","bundleID":"fr.ourcompany.ournewappname","share_with_app_devs":false,"is_first_party":false,"bug_type":"109","os_version":"iPhone OS 11.2.5 (15D60)","incident_id":"002164F5-FD42-4A49-BF58-E8C1CB773010","name":"ournewappname"

Incident Identifier: 002164F5-FD42-4A49-BF58-E8C1CB773010
CrashReporter Key:   6fa54cb83ccb006df1d056599e75f6797f1ac664
Hardware Model:      iPad5,1
Device Model:        J96AP
Process:             ournewappname [4216]
Path:                /private/var/containers/Bundle/Application/752BA8CA-A7AE-4823-976E-1D5DEBD34B2E/ournewappname.app/ournewappname
Identifier:          fr.ourcompany.ournewappname
Version:             1 (1.0.1)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd.development [1]
Coalition:           fr.ourcompany.ournewappname [1066]


Date/Time:           2018-03-01 17:04:55.8059 -0800
Launch Time:         2018-03-01 17:04:54.7575 -0800
OS Version:          iPhone OS 11.2.5 (15D60)
Baseband Version:    n/a
UDID:                a728c3d680bc84aaaddc473d254d3c02a764955f
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000088
VM Region Info: 0x88 is not in any region.  Bytes before following region: 4301520760
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                 0000000100640000-0000000100644000 [   16K] r-x/r-x SM=COW  ...ealtwrarcard]

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Triggered by Thread:  0

Filtered syslog:
Timestamp               Thread     Type        Activity             PID
2018-03-01 17:04:54.8314 -0800  0xfd29 1024 0x0 4216 AssertionServices: BKSWorkspace created.
2018-03-01 17:04:54.9677 -0800  0xfd29 1024 0x0 4216 AccessibilitySettingsLoader: Loading settings loader: (system: 0)
2018-03-01 17:04:54.9790 -0800  0xfd29 1024 0x0 4216 AccessibilitySettingsLoader: AXSettingsLoader told to start
2018-03-01 17:04:54.9967 -0800  0xfd29 1024 0x0 4216 UIAccessibility: Starting accessibility server
2018-03-01 17:04:55.1193 -0800  0xfd29 1024 0x0 4216 UIAccessibility: Started AXRuntime server: 0
2018-03-01 17:04:55.1239 -0800  0xfd29 1024 0x0 4216 UIAccessibility: (null): Loading synchronously
2018-03-01 17:04:55.1262 -0800  0xfd29 1024 0x0 4216 UIAccessibility: Main bundle finished loading: load type: 0 - is system app server: 0 (<UIApplication: 0x113d0adb0>)
2018-03-01 17:04:55.2735 -0800  0xfd3c 1024 0x0 4216 FrontBoardServices: [FBSScene] [fr.ourcompany.ournewappname] Created client agent: <UIApplicationSceneClientAgent: 0x1c401d120>
2018-03-01 17:04:55.2742 -0800  0xfd3c 1024 0x0 4216 FrontBoardServices: [FBSScene] [fr.ourcompany.ournewappname - AirPlay] Created client agent: <UIApplicationSceneClientAgent: 0x1c001d3f0>
2018-03-01 17:04:55.7238 -0800  0xfd29 1024 0x0 4216 UIKit: View did appear: <SplashScreenController: 0x113d6d690> 1
2018-03-01 17:04:55.7253 -0800  0xfd29 1024 0x0 4216 UIAccessibility: Did post notification. notification:  (1001) error:0 data:(null)
2018-03-01 17:04:55.7334 -0800  0xfd29 1024 0x0 4216 UIAccessibility: Did post notification. notification:  (4002) error:0 data:
    controllerClass = SplashScreenController;
    event = ViewDidAppear;


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   ournewappname                   0x0000000100b3e9d8 0x100640000 + 5237208
1   ournewappname                   0x000000010065339c 0x100640000 + 78748
2   ournewappname                   0x0000000100653740 0x100640000 + 79680
3   CoreFoundation                  0x00000001811c513c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20 (CFNotificationCenter.c:661)
4   CoreFoundation                  0x00000001811c46dc _CFXRegistrationPost + 420 (CFNotificationCenter.c:163)
5   CoreFoundation                  0x00000001811c4440 ___CFXNotificationPost_block_invoke + 60 (CFNotificationCenter.c:1060)
6   CoreFoundation                  0x0000000181241e24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408 (CFXNotificationRegistrar.m:163)
7   CoreFoundation                  0x00000001810fad60 _CFXNotificationPost + 380 (CFNotificationCenter.c:1057)
8   Foundation                      0x0000000181b27348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68 (NSNotification.m:543)
9   UIKit                           0x000000018ad28a20 +[UIScreen _FBSDisplayConfigurationConnected:andNotify:] + 280 (UIScreen.m:599)
10  UIKit                           0x000000018aa51060 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 292 (UIApplication.m:3094)
11  UIKit                           0x000000018ae66dbc -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 364 (UIApplicationSceneClientAgent.m:41)
12  FrontBoardServices              0x00000001838f61f0 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 364 (FBSSceneImpl.m:460)
13  FrontBoardServices              0x00000001838feaf8 __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 224 (FBSWorkspace.m:606)
14  libdispatch.dylib               0x0000000180bb2a14 _dispatch_client_callout + 16 (object.m:502)
15  libdispatch.dylib               0x0000000180bba200 _dispatch_block_invoke_direct$VARIANT$mp + 288 (queue.c:3025)
16  FrontBoardServices              0x000000018392a7f8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36 (FBSSerialQueue.m:164)
17  FrontBoardServices              0x000000018392a49c -[FBSSerialQueue _performNext] + 404 (FBSSerialQueue.m:196)
18  FrontBoardServices              0x000000018392aa38 -[FBSSerialQueue _performNextFromRunLoopSource] + 56 (FBSSerialQueue.m:232)
19  CoreFoundation                  0x00000001811db77c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 (CFRunLoop.c:1982)
20  CoreFoundation                  0x00000001811db6fc __CFRunLoopDoSource0 + 88 (CFRunLoop.c:2017)
21  CoreFoundation                  0x00000001811daf84 __CFRunLoopDoSources0 + 204 (CFRunLoop.c:2053)
22  CoreFoundation                  0x00000001811d8b5c __CFRunLoopRun + 1048 (CFRunLoop.c:2920)
23  CoreFoundation                  0x00000001810f8c58 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3245)
24  GraphicsServices                0x0000000182fa4f84 GSEventRunModal + 100 (GSEvent.c:2245)
25  UIKit                           0x000000018a8515c4 UIApplicationMain + 236 (UIApplication.m:3956)
26  ournewappname                   0x0000000100645980 0x100640000 + 22912
27  libdyld.dylib                   0x0000000180c1856c start + 4

Thread 1:
0   libsystem_pthread.dylib         0x0000000180e5ab68 start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib         0x0000000180e5ab68 start_wqthread + 0

Thread 3 name:  Dispatch queue: com.apple.frontboardservices.workspace.client
Thread 3:
0   CoreFoundation                  0x00000001810f3d6c CFDataGetBytePtr + 88 (CFInternal.h:714)
1   Foundation                      0x0000000181b3296c bytesInEncoding + 200 (NSStringEncodings.m:155)
2   Foundation                      0x0000000181b3296c bytesInEncoding + 200 (NSStringEncodings.m:155)
3   CoreFoundation                  0x0000000181104f6c -[__NSCFString UTF8String] + 80 (CFObject.m:228)
4   BaseBoard                       0x0000000183703ee8 BSSerializeStringToXPCDictionaryWithKey + 44 (BSXPCSerialization.m:171)
5   BaseBoard                       0x0000000183703ce8 BSSerializeBSXPCEncodableObjectToXPCDictionary + 52 (BSXPCSerialization.m:86)
6   BaseBoard                       0x0000000183703ca4 BSCreateSerializedBSXPCEncodableObject + 56 (BSXPCSerialization.m:51)
7   BaseBoard                       0x0000000183703d88 BSSerializeBSXPCEncodableObjectToXPCDictionaryWithKey + 40 (BSXPCSerialization.m:59)
8   FrontBoardServices              0x00000001838f929c -[FBSWorkspaceSceneClientSettingsChangedEvent encodeWithXPCDictionary:] + 84 (FBSWorkspaceSceneClientSettingsChangedEvent.m:52)
9   BaseBoard                       0x0000000183703ce8 BSSerializeBSXPCEncodableObjectToXPCDictionary + 52 (BSXPCSerialization.m:86)
10  BaseBoard                       0x0000000183703ca4 BSCreateSerializedBSXPCEncodableObject + 56 (BSXPCSerialization.m:51)
11  BaseBoard                       0x0000000183703d88 BSSerializeBSXPCEncodableObjectToXPCDictionaryWithKey + 40 (BSXPCSerialization.m:59)
12  BaseBoard                       0x0000000183720a30 +[BSXPCMessage messageWithPacker:] + 96 (BSXPCMessage.m:33)
13  BaseBoard                       0x000000018371db08 -[BSBaseXPCClient _sendMessage:withReplyHandler:waitForReply:waitDuration:] + 132 (BSBaseXPCClient.m:187)
14  FrontBoardServices              0x0000000183918710 -[FBSWorkspaceClient _queue_sendMessage:withEvent:withResponseEvent:ofType:] + 144 (FBSWorkspaceClient.m:300)
15  libdispatch.dylib               0x0000000180bb2a54 _dispatch_call_block_and_release + 24 (init.c:994)
16  libdispatch.dylib               0x0000000180bb2a14 _dispatch_client_callout + 16 (object.m:502)
17  libdispatch.dylib               0x0000000180bbc96c _dispatch_queue_serial_drain$VARIANT$mp + 528 (inline_internal.h:2500)
18  libdispatch.dylib               0x0000000180bbd2fc _dispatch_queue_invoke$VARIANT$mp + 340 (queue.c:5302)
19  libdispatch.dylib               0x0000000180bbdd20 _dispatch_root_queue_drain_deferred_wlh$VARIANT$mp + 404 (queue.c:5920)
20  libdispatch.dylib               0x0000000180bc603c _dispatch_workloop_worker_thread$VARIANT$mp + 644 (source.c:2529)
21  libsystem_pthread.dylib         0x0000000180e5af1c _pthread_wqthread + 932 (pthread.c:2207)
22  libsystem_pthread.dylib         0x0000000180e5ab6c start_wqthread + 4

Thread 4:
0   libsystem_pthread.dylib         0x0000000180e5ab68 start_wqthread + 0

Thread 5 name:  com.apple.uikit.eventfetch-thread
Thread 5:
0   libsystem_kernel.dylib          0x0000000180d27568 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x0000000180d273e0 mach_msg + 72 (mach_msg.c:103)
2   CoreFoundation                  0x00000001811db108 __CFRunLoopServiceMachPort + 196 (CFRunLoop.c:2613)
3   CoreFoundation                  0x00000001811d8cd4 __CFRunLoopRun + 1424 (CFRunLoop.c:2969)
4   CoreFoundation                  0x00000001810f8c58 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3245)
5   Foundation                      0x0000000181b2d594 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 (NSRunLoop.m:367)
6   Foundation                      0x0000000181b4c9ac -[NSRunLoop(NSRunLoop) runUntilDate:] + 96 (NSRunLoop.m:411)
7   UIKit                           0x000000018b3bb7a8 -[UIEventFetcher threadMain] + 136 (UIEventFetcher.m:437)
8   Foundation                      0x0000000181c2f0f4 __NSThread__start__ + 996 (NSThread.m:1181)
9   libsystem_pthread.dylib         0x0000000180e5c2b4 _pthread_body + 308 (pthread.c:740)
10  libsystem_pthread.dylib         0x0000000180e5c180 _pthread_start + 312 (pthread.c:799)
11  libsystem_pthread.dylib         0x0000000180e5ab74 thread_start + 4

Thread 6:
0   libsystem_pthread.dylib         0x0000000180e5ab68 start_wqthread + 0

Thread 7 name:  GC Finalizer
Thread 7:
0   libsystem_kernel.dylib          0x0000000180d480f0 __psynch_cvwait + 8
1   libsystem_pthread.dylib         0x0000000180e5ece4 _pthread_cond_wait$VARIANT$mp + 640 (pthread_cond.c:579)
2   ournewappname                   0x00000001012e86a8 0x100640000 + 13272744
3   ournewappname                   0x00000001012cd658 0x100640000 + 13162072
4   ournewappname                   0x00000001012e5400 0x100640000 + 13259776
5   ournewappname                   0x00000001012e8df0 0x100640000 + 13274608
6   libsystem_pthread.dylib         0x0000000180e5c2b4 _pthread_body + 308 (pthread.c:740)
7   libsystem_pthread.dylib         0x0000000180e5c180 _pthread_start + 312 (pthread.c:799)
8   libsystem_pthread.dylib         0x0000000180e5ab74 thread_start + 4

Thread 8 name:  BatchDeleteObjects
Thread 8:
0   libsystem_kernel.dylib          0x0000000180d275a4 semaphore_wait_trap + 8
1   libdispatch.dylib               0x0000000180bb4f04 _dispatch_sema4_wait$VARIANT$mp + 24 (lock.c:134)
2   libdispatch.dylib               0x0000000180bb58b4 _dispatch_semaphore_wait_slow + 140 (semaphore.c:143)
3   ournewappname                   0x0000000100d546b8 0x100640000 + 7423672
4   ournewappname                   0x0000000100cd40dc 0x100640000 + 6897884
5   ournewappname                   0x0000000100d53c8c 0x100640000 + 7421068
6   libsystem_pthread.dylib         0x0000000180e5c2b4 _pthread_body + 308 (pthread.c:740)
7   libsystem_pthread.dylib         0x0000000180e5c180 _pthread_start + 312 (pthread.c:799)
8   libsystem_pthread.dylib         0x0000000180e5ab74 thread_start + 4

Thread 9 name:  AsyncReadManager
Thread 9:
0   libsystem_kernel.dylib          0x0000000180d275a4 semaphore_wait_trap + 8
1   libdispatch.dylib               0x0000000180bb4f04 _dispatch_sema4_wait$VARIANT$mp + 24 (lock.c:134)
2   libdispatch.dylib               0x0000000180bb58b4 _dispatch_semaphore_wait_slow + 140 (semaphore.c:143)
3   ournewappname                   0x0000000100c3c530 0x100640000 + 6276400
4   ournewappname                   0x0000000100c3c074 0x100640000 + 6275188
5   ournewappname                   0x0000000100d53c8c 0x100640000 + 7421068
6   libsystem_pthread.dylib         0x0000000180e5c2b4 _pthread_body + 308 (pthread.c:740)
7   libsystem_pthread.dylib         0x0000000180e5c180 _pthread_start + 312 (pthread.c:799)
8   libsystem_pthread.dylib         0x0000000180e5ab74 thread_start + 4

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000048   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x0000000101f8b03c
    x4: 0x0000000000000010   x5: 0x0000000000000001   x6: 0x0000000000000000   x7: 0x0000000000000403
    x8: 0x0000000101f8fa40   x9: 0x0000000000000001  x10: 0x0000000101f8ad60  x11: 0x0000000113d15730
   x12: 0x0000000101f8adb8  x13: 0x0000000000000002  x14: 0x0000000113e01680  x15: 0x016b5c01016b5cc0
   x16: 0x0000000180e51c60  x17: 0x0000000181b31d38  x18: 0xfffffff01210d25c  x19: 0x0000000000000002
   x20: 0x000000016f7bdc38  x21: 0x0000000101f8a000  x22: 0x0000000000000002  x23: 0x0000000000000000
   x24: 0x0000000000000002  x25: 0x000000016f7bdc38  x26: 0x0000000000000001  x27: 0x00000001b2373650
   x28: 0x0000000000000001   fp: 0x000000016f7bdb60   lr: 0x0000000100b3e9d8
    sp: 0x000000016f7bd9f0   pc: 0x0000000100b3e9d8 cpsr: 0x60000000

由于我们无法重现崩溃,因此很难修复。 在这个崩溃日志中,有一些关于 SplashScreenController 的内容,所以以防万一我们删除了启动画面,并将 Unity 版本更改为 2017.3.1 并重新提交应用程序...

任何帮助都将不胜感激,也许我们在崩溃日志中遗漏了一些有用的信息?

【问题讨论】:

第二次提交没有启动画面和统一 2017.3.1 以同样的原因被拒绝。但有不同的崩溃日志。关于: 终止说明: SPRINGBOARD,场景创建看门狗违规:fr.ourCompanyName.ourProjectName 用尽真实(挂钟)时间允许 10.00 秒 | | ProcessVisibility:前景 |进程状态:正在运行 | WatchdogEvent: 场景创建 |看门狗可见性:前景 | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 25.530 (user 25.530, system 0.000), 79% CPU", | "Elapsed application CPU time 由于最后的日志似乎与加载时间过长和应用程序被系统杀死有关,我们添加了异步加载并减小了纹理大小以缩短加载时间。 该应用再次被拒绝,出于同样的原因,现在苹果没有给我们 CrashLog。我们真的被困住了:(苹果仍然没有明确的答案。 接下来我们将尝试使用旧版本的 Unity / Vuforia / Xcode。希望它会工作...... 昨晚我收到了来自 Apple 的同样拒绝,要求我更新使用 2017.30f3 和 Xcode 9.2 构建的应用程序。我不使用 Vuforia,所以这似乎不是问题。我怀疑 Unity IAP 插件可能是罪魁祸首,尽管我还没有看到其他有这个问题的人提到他们正在使用它。我相信我最近的几次更新都是使用相同的 Unity 和 Xcode 版本提交的,所以看起来他们不会有错。如果我学到其他任何东西,我会发布更新。 【参考方案1】:

我们遇到了同样的问题(同样的异常和应用商店拒绝)。我们遇到了这个似乎是罪魁祸首的 Unity 错误。

https://issuetracker.unity3d.com/issues/ios-11-build-crashes-on-remotear-unityupdatedisplaylist-when-launching-app-from-url-with-airplay-connected

当用户流式传输他们的设备屏幕(AirPlay 等)时,存在导致此崩溃的错误。我假设测试人员有时会使用 AirPlay,导致崩溃,而开发人员并没有发现任何问题。

幸运的是,这个错误已在 Unity 中得到纠正,并已被移植到多个 Unity 补丁版本:

固定在: 2018.1.0b1

向后移植到: 2017.3.0p2 2017.2.1p2 2017.1.3p1

从 2017.2.1 更新到 2017.2.1p2 后,我们的应用程序被接受了。

【讨论】:

【参考方案2】:

上周五,我们因同样的原因拒绝了一款 AR 应用。我们使用 Unity 2017.3.0f3 与原生 Vuforia 集成和 Xcode 9.2;我们也在使用 Native Share。

我们从 Apple 收到的崩溃日志看起来和你的@Jeff 非常相似;崩溃线程上显示的异常类型和方法相同。

我会尝试您降级到不同版本 Unity 的方法,并将分享我的结果。

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000088
VM Region Info: 0x88 is not in any region.  Bytes before following region: 4377919352
  REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
  UNUSED SPACE AT START
--->  
  __TEXT                 0000000104f1c000-0000000104f20000 [   16K] r-x/r-x SM=COW  .../OurApp]

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   OurApp                      0x0000000105463334 0x104f1c000 + 5534516
1   OurApp                      0x0000000104f2f130 0x104f1c000 + 78128
2   OurApp                      0x0000000104f2f4d4 0x104f1c000 + 79060
3   CoreFoundation                  0x0000000184bd113c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20 (CFNotificationCenter.c:661)
4   CoreFoundation                  0x0000000184bd06dc _CFXRegistrationPost + 420 (CFNotificationCenter.c:163)
5   CoreFoundation                  0x0000000184bd0440 ___CFXNotificationPost_block_invoke + 60 (CFNotificationCenter.c:1060)
6   CoreFoundation                  0x0000000184c4de24 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1408 (CFXNotificationRegistrar.m:163)
7   CoreFoundation                  0x0000000184b06d60 _CFXNotificationPost + 380 (CFNotificationCenter.c:1057)
8   Foundation                      0x0000000185533348 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68 (NSNotification.m:543)
9   UIKit                           0x000000018e734a20 +[UIScreen _FBSDisplayConfigurationConnected:andNotify:] + 280 (UIScreen.m:599)
10  UIKit                           0x000000018e45d060 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 292 (UIApplication.m:3094)
11  UIKit                           0x000000018e872dbc -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] +                     364 (UIApplicationSceneClientAgent.m:41)
12  FrontBoardServices              0x00000001873021f0 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 364 (FBSSceneImpl.m:460)
13  FrontBoardServices              0x000000018730aaf8 __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 224 (FBSWorkspace.m:606)
14  libdispatch.dylib               0x00000001845bea14 _dispatch_client_callout + 16 (object.m:502)
15  libdispatch.dylib               0x00000001845c6200 _dispatch_block_invoke_direct$VARIANT$mp + 288 (queue.c:3025)
16  FrontBoardServices              0x00000001873367f8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36 (FBSSerialQueue.m:164)
17  FrontBoardServices              0x000000018733649c -[FBSSerialQueue _performNext] + 404 (FBSSerialQueue.m:196)
18  FrontBoardServices              0x0000000187336a38 -[FBSSerialQueue _performNextFromRunLoopSource] + 56 (FBSSerialQueue.m:232)
19  CoreFoundation                  0x0000000184be777c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 (CFRunLoop.c:1982)
20  CoreFoundation                  0x0000000184be76fc __CFRunLoopDoSource0 + 88 (CFRunLoop.c:2017)
21  CoreFoundation                  0x0000000184be6f84 __CFRunLoopDoSources0 + 204 (CFRunLoop.c:2053)
22  CoreFoundation                  0x0000000184be4b5c __CFRunLoopRun + 1048 (CFRunLoop.c:2920)
23  CoreFoundation                  0x0000000184b04c58 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3245)
24  GraphicsServices                0x00000001869b0f84 GSEventRunModal + 100 (GSEvent.c:2245)
25  UIKit                           0x000000018e25d5c4 UIApplicationMain + 236 (UIApplication.m:3956)
26  OurApp                      0x0000000104f21880 0x104f1c000 + 22656
27  libdyld.dylib                   0x000000018462456c start + 4

【讨论】:

我们的应用使用 XCode 9.0 而不是 Xcode 9.2 又被拒绝了一次。 您成功降级到不同版本的 Unity 了吗? 我的应用目前正在审核中。对于这个构建,我使用了 Unity 2017.1.2f1、Xcode 9.2 和 Vuforia Legacy Unity 包;这是最后一个获得批准的应用程序所使用的设置。收到 Apple 的回复后,我会在这里分享!【参考方案3】:

今天,App 审核小组的人终于检查了我们的案例并验证了我们的应用,尽管它之前被标记为被拒绝。

该应用连续 5 次被拒绝,始终显示相同的消息,并且最近两次没有崩溃日志。

我们在 4 天前联系了应用审核团队,通过以下表单对应用拒绝提出上诉:https://developer.apple.com/contact/app-store/?topic=appeal

我认为 Apple 测试程序严重依赖自动测试,在某些情况下这并不可靠,他们的“机器人”拒绝了我们的应用程序,尽管它运行良好。

Apple 似乎忽略了,我们花了不眠之夜竭尽全力寻找解决方案,以便我们的客户准时收到他的应用程序......

祝所有遇到此问题的人好运,我只能建议您通过各种方式与 Apple 取得联系,以便有人会查看您的应用程序。

【讨论】:

【参考方案4】:

自上周以来,我们也因类似原因被拒绝了我们的申请。 然后,我查看了@HidingGlass 的帖子并应用了Unity的补丁。 因此,我们的应用程序通过了 Apple 的审核。

我会分享结果。

拒绝:ver.2017.2.1f1 接受:ver.2017.2.1p2

【讨论】:

【参考方案5】:

有趣的是,我们在这里遇到了完全相同的问题。直到几天前,我们一直在将 Apple 构建发送给审查,并且他们都在他们的设备上工作(仅因一些小问题而被拒绝)。由于这次“崩溃”,他们拒绝了我们的两个构建,尽管它们在我们的测试设备上运行良好。

这件事的奇怪之处在于,他们对我们提交的两份意见都有相同的看法:

“在我们审核期间,您的应用在运行 iOS 11.2.5 并连接到 IPv6 网络的 iPad 或 iPhone 上崩溃。”

不仅如此,他们提供的崩溃日志也反映了和你一样的问题。

Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000088 VM Region Info: 0x88 is not in any region.

目前,我们将发送一个正在审核中的先前版本,看看他们对此有何评论。

【讨论】:

感谢您的分享,有趣的是,我们并不是唯一面临这个问题的人。我开始认为问题出在 Apple...@RPGamer,您是否使用过 Vuforia 增强现实? 仍然没有得到苹果的答复。我觉得我被一个愚蠢的机器人困住了。这让我和我的客户无法按时为他们的活动获取他们的应用程序,这让他们非常沮丧。【参考方案6】:

正如我在对您的问题的评论中提到的,通过关闭 iPhone 7 上的 wifi,我偶尔能够在本地重现此崩溃。经过更多挖掘后,我发现有人将此问题添加到 Unity 问题跟踪器中2 月底,但该问题的网页似乎在今天或昨天都无法访问。

问题跟踪器网页最初可在此处访问: https://issuetracker.unity3d.com/issues/unitywebrequest-ios-2017-dot-3-player-crashes-at-job-executeunitywebrequest-when-switching-to-airplane-mode

不过,Google 仍将其缓存在这里: http://webcache.googleusercontent.com/search?q=cache:TcQczK0adjMJ:https://issuetracker.unity3d.com/issues/unitywebrequest-ios-2017-dot-3-player-crashes-at-job-executeunitywebrequest-when-switching-to-airplane-mode&num=1&hl=en&gl=us&strip=0&vwsrc=0

网页无法在缓存的 URL 上正确呈现,但我可以通过查看源代码并将其保存到我机器上的 html 文件中来查看它。这是它的截图:

问题中的堆栈跟踪与我在本地重现问题时看到的一致。有趣的是,对该问题的评论提到这会导致使用 Vuforia 的应用程序崩溃。我不使用 Vuforia,但显然我的堆栈中的其他东西(可能是 GVR SDK)正在发送导致我崩溃的网络请求。

更新 1: 按照页面评论中的建议,我降级到Unity 2017.2.1f,发现崩溃不再发生。所以,我将提交我的应用程序的这个版本,看看会发生什么。正如您所说,您已经在使用该版本的 Unity,也许这实际上与您遇到的问题不同。

更新 2: 我的应用更新刚刚获得 Apple 的批准。

【讨论】:

感谢您的反馈,是的,我在 Unity 2017.2.1f 上,我卸载了我们的应用程序,并使用 testflight 进行了正确安装。然后我启用了飞行模式,启动了应用程序,它照常工作,无法重现 Apple Review Team 似乎发生的崩溃。我尝试在应用程序运行时多次启用/禁用飞行模式,并在不同的条件下退出/启动应用程序,它始终有效,在 6 个不同的设备上以相同的程序进行了测试。我不认为有任何随机崩溃。 我的应用仍然被拒绝,你有任何更新吗,杰夫【参考方案7】:

在我们的案例中,我们在 1 月份的最后几次应用更新中一直使用 Unity 5.6.3p4,并且很快就获得了批准(从提交到批准不到 1 天)。然而,一周前,该应用程序处于“审查中”状态 3 天,然后由于与此处描述的相同的崩溃问题而被拒绝,而我们没有更改 Unity 版本,也没有添加任何新的外部框架 - 因此,通过阅读此处所有其他回复,我怀疑 Apple 最近一定在他们的审查测试机器人中更改了某些内容(例如开始使用 AirPlay),由于休眠的 Unity 错误而触发了这些问题。

有趣的是,Unity 问题跟踪器正在积极讨论这个问题,Unity 工程师刚刚在 DisplayManager.mm 代码中发布了一个解决方法,而且他们刚刚将修复程序向后移植到 5.6.5p3: https://issuetracker.unity3d.com/issues/ios-11-build-crashes-on-remotear-unityupdatedisplaylist-when-launching-app-from-url-with-airplay-connected?page=1#comments

至于我们,我们升级到 2017.1.3p2 并重新提交,但又被拒绝了 - 但这次是不同的崩溃报告:

Termination Description: SPRINGBOARD, scene-create watchdog transgression: com.ourComany.ourApp exhausted real (wall clock) time allowance of 10.00 seconds

这似乎是从昨天开始在这里讨论的一些全新问题:

https://forum.unity.com/threads/ios-crash-on-startup-unity-2017-1-3p2.521666/#post-3424784

【讨论】:

以上是关于无法重现 iOS App Review 团队崩​​溃。使用 Vuforia 的 Unity 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Facebook App Review iOS - 无法选择“从 Apple App Store 下载”

无法重现苹果应用商店审核团队报告的问题

In App Purchase 订阅在测试/试飞中对我有用,但不适用于 App Review 团队

iOS 10.3 改进后的App Review机制

iOS 10.3 改进后的App Review机制

SwiftUI超便捷在iOS16中弹出App用户评价(Review)小窗口