iOS ARKit Project Failed to Build

Bitrise Build Issue Report template

Description of the issue

Error building project on bitrise while same script working locally

Undefined symbols for architecture arm64

Symbol: OBJC_CLASS$_ARWorldTrackingConfiguration
Referenced from: objc-class-ref in ARSessionNative.o

Environment:

Tried Xcode 9.3.x macOS 10.13 and Xcode 9.2.x macOS 10.12 both failing

If on Bitrise.io: which stack? If not on Bitrise.io: on what operating system? (Plus any other information you can share)

xcode archive

Reproducibility

  • Does a “Rebuild” help? (You can trigger a rebuild from the Build’s page, by clicking the “Rebuild” button in the top right corner of a finished build) : NO
  • Does a rebuild without caches help? (You can remove the Cache:Pull and Cache:Push steps temporarily to not to use the cache, or you can delete all the caches on the Settings tab of the app. : YES/NO
  • Does the issue happen sporadically, or every time? :every time
  • Does upgrading the build Step to the latest version help? : NO

Local reproduction

it can’t be reproed locally with Xcode 9.2 and macOS 10.13

Build log

https://www.bitrise.io/build/62124e28cd612e48

Hi @jeffwithin,

Thanks for filling out the issue report!

From the log it seems it’s a compile flag / architecture issue, probably in one of your dependencies. See e.g. https://stackoverflow.com/questions/19213782/undefined-symbols-for-architecture-arm64

We’ll also try to dig deeper in this ASAP!

I guess what confuses me is that same script works correctly on my local machine

Hey @jeffwithin! :wave:

The last time I’ve seen this issue it was a linking issue in my project. Viktor is right, it is still linking issue, the reason why the project is working on your local PC and not on Bitrise is that you have linked libraries/files that are matching with your machine. So for example you might added a framework without copying in the project, so it is linked like /Users/myusername/…/…, and when you build the project on Bitrise, the framework is just not under the same path, can be because of the mismatching username in the path, or the file is in a location on your local PC that is not part of your git repo.

Please check the linked frameworks and so, I think you will find an issue somewhere there. Locally you can check it like creating another dummy user -> login to that user, clone the repo there, and try to build it. I think then it will point you to the right direction! :rocket:

Please let us know how it goes! :slight_smile:

1 Like

That makes sense but the symbol it says it’s missing _ARWorldTrackingConfiguration is part of the apple arkit framework which should be included with Xcode 9.2, there was a naming change for this class during some version of Xcode 9.2 beta, can you check if your build machines indeed have the latest Xcode 9.2 (9C40b)?

We have the final Xcode 9.2 installed on the Xcode 9.2.x stack - you can check this by running xcodebuild -version in a Script step, as well as it’s included in the Xcode Archive step’s log → at the start of the step’s log you can find the configs as well as some tool versions printed:

+------------------------------------------------------------------------------+
| (8) xcode-archive@2.4.6                                                      |
+------------------------------------------------------------------------------+
| id: xcode-archive                                                            |
| version: 2.4.6                                                               |
| collection: https://github.com/bitrise-io/bitrise-steplib.git                |
| toolkit: go                                                                  |
| time: 2018-02-16T14:54:08-08:00                                              |
+------------------------------------------------------------------------------+
|                                                                              |
...
e[34;1mstep determined configs:e[0m
- xcodebuildVersion: 9.2.0 (9C40b)
...

as well as we include the Xcode version in the stack’s system report too:

in case of Xcode 9.2.x stack: bitrise.io/osx-xcode-9.2.x.log at 410dd7fbe13b3ac935ac0ab5775b21d6cd5c9502 · bitrise-io/bitrise.io · GitHub

1 Like

I’m having the same issue.

How do I make sure the ARKIt library is included when using bitrise ?

Hello there!
As far as apple docs go, ARKit comes with Xcode 9 or up preinstalled.
for your issue, could you send me a build url or log please?