Mac Catalyst应用在其他Mac上崩溃,但从Xcode运行时可以正常工作

时间:2020-03-10 11:31:54

标签: ios objective-c macos catalyst mac-catalyst

我将Mac催化剂应用程序分发给测试人员时遇到问题,尽管它可以在我的计算机上正常运行,但是在其他计算机上启动后却立即崩溃,而没有任何人类可理解的崩溃报告。

此外,当我们使用Xcode在该Mac上运行它时,它可以正常工作,并在将其运送到我的Mac时崩溃。 在这里,我所做的是-我正在使用Xcode 11.3.1,该应用程序已自动签名,在发货前我已对它进行了公证。

有人知道它为什么崩溃吗?

// get the element position
function getOffset (el) {
  var _x = 0;
  var _y = 0;
  while (el && !isNaN( el.offsetLeft) && !isNaN(el.offsetTop)) {
    _x += el.offsetLeft - el.scrollLeft;
    _y += el.offsetTop - el.scrollTop;
    el = el.offsetParent;
  }
  return { top: _y, left: _x };
}


// validate the form
function validateForm () {
  var forms = document.getElementsByClassName('needs-validation')
  var validation = Array.prototype.filter.call(forms, function(form) {
    if (form.checkValidity() === false) {
      event.preventDefault()
      event.stopPropagation()

      // get the "first" invalid field
      var errorElements = document.querySelectorAll('.form-control:invalid,.custom-select:invalid,.custom-control-input:invalid')

      // scroll the user to the invalid field
      window.scrollTo(0, getOffset(errorElements[0]).top - 30)

    }
    form.classList.add('was-validated')
  })
}

1 个答案:

答案 0 :(得分:1)

好的,经过长时间的研究,我发现了这个问题。我们在应用程序中使用了自定义字体,导致崩溃的原因似乎是苹果的bug,因为这些字体已正确链接并已添加到Info.plist中。同样在安装了字体的计算机上,应用程序也不会崩溃。将字体更改为苹果提供的类似字体后,该应用程序可以完美运行。