Fire: Building solution containing watchkit app


(marc hoffman) #21

I’ve also added e80000cf as ne known error to the list of errors we can display a message for.


(marc hoffman) #22

New build is up.


(JohnMoshakis) #23

I get this from running the external compiler

Unhandled Exception:
System.MissingMethodException: Method ‘RemObjects.Elements.RTL.Exception_Helpers.get_CallStack__$mapped’ not found.
[ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method ‘RemObjects.Elements.RTL.Exception_Helpers.get_CallStack__$mapped’ not found.


(marc hoffman) #24

hmm check for old Elements.dlls that might be around your system.


(marc hoffman) #25

also, can you post the full build log, and make sure it’s actually running .2226 of EBuild?

if that yields nothing, please set Fire to “extreme” build logging and post or send be the whole (huge) log. thanx!


(JohnMoshakis) #26

I ran uninstall.sh, deleted my elements folder and extracted the zip. That fixed it.

Now when I attempt to rebuild for the simulator or actual device I get

H: Local variable “newOffset” is assigned to but never read [/Users/JohnMoshakis/Documents/develop/Nougat/SailingLogIOS/Moshine.UI.UIKit/DateTimePicker.pas (199)]
W: ld: ObjC object file (/Users/JohnMoshakis/Documents/develop/Nougat/SailingLogIOS/SailingLogiOS/obj/Debug/Toffee-iOS/Device/arm64/SailingLogiOS.o) was compiled for iOS Simulator, but linking for MacOSX
E: ld: symbol(s) not found for architecture arm64
E: ld: symbol(s) not found for architecture x86_64
Project ‘SailingLogiOS’ failed to build.

SailingLogiOS is the iPhone app, if that helps.


(marc hoffman) #27

Hm, ok, any chance i could see the full build log? would be helful to see the full output from ld to see WHAT symbols aren’t found… (the linker warning is a known issue fwiw, and can be ignored)


(JohnMoshakis) #28

log.zip (7.0 MB)


(marc hoffman) #29

Probably time to turn Extreme off again…


(marc hoffman) #30

W: ld: ObjC object file (/Users/JohnMoshakis/Documents/develop/Nougat/SailingLogIOS/SailingLogiOS/obj/Debug/Toffee-iOS/Device/arm64/SailingLogiOS.o) was compiled for iOS Simulator, but linking for MacOSX
> Undefined symbols for architecture arm64:
> “OBJC_CLASS$___RemObjects_Elements_RTL_Foundation__ExtensionsNSObject”, referenced from:
> objc-class-ref in SailingLogiOS.o
E: ld: symbol(s) not found for architecture arm64
<- Phase Linking for Device failed.
-> Phase Linking for Simulator started.

looks like a mismatched Elements.fx. I can’t tell where it comes from coz the resolve wasn’t part of this incremental build… do a clean, rebuild, and check where it gets elements.fx from…


(JohnMoshakis) #31

It does appear to be pulling it out of the simulator folder. Its sort of hard to read because I have so many projects in the solution.

What is the least verbose mode that would give me that info ?


(marc hoffman) #32

Detailed or Diagnostic should both be fine. disable all other projects, do a clean and then a build (it will fail on the other refs, but it should show the resolve for all refs.

Note the problem is NOT a wrong arch; it’s a mismatched version of there fx. Else the error would be different.


(JohnMoshakis) #33

Does enable look at other projects ? I have a solution with 3 shared and 2 iOS applications and if I enable one of the iOS apps it enables all the shared projects.


(JohnMoshakis) #34

Even without using the external compiler I see stuff like this while doing a iOS Device and WatchOS device build.

                      Reference 'libElements' was resolved to '/Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../References/Toffee/iOS/libElements.fx' via XML for target 'Toffee-iOS'.
                      Reference 'libElements' was resolved to '/Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../References/Toffee/iOS/libElements.fx' for target 'Toffee-iOS' (Device).
                      Reference 'libElements' was resolved to '/Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../References/Toffee/iOS Simulator/libElements.fx' for target 'Toffee-iOS' (Simulator).

Is that correct ?


(marc hoffman) #35

Shared projects don’t get compiled. A shared project will show as Enabled in afire if one or more project that References it is enabled; actively enabling/disabling a shared project will enable/disable all projects that reference it.


(marc hoffman) #36

with the internal compiler, yeah, they should resolve to a reference inside Fire. With the external one they should resolve to the external reference where you installed that.


(JohnMoshakis) #37

It appears that the external compiler always picks the simulator folder. I switched back to xbuild and I see this

                            Looking for libElements.fx
                              for project path
                              for iOS User reference paths (0 folders)
                              for iOS internal reference paths (0 folders)
                              for iOS System reference paths (0 folders)
                              for User reference paths (0 folders)
                              for Internal reference paths (2 folders)
                                Looking in /Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../Data Abstract/References-Trial/Toffee
                                Looking in /Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../References/Toffee
                                Found as /Applications/Fire.app/Contents/Resources/Reference Paths with Data Abstract Trial/Toffee/../../References/Toffee/iOS/libElements.fx

(marc hoffman) #38

Can i see the log for that, per chance?


(JohnMoshakis) #39

external-to-iphone.zip (8.4 KB)

This is an external ebuild to my iphone


(marc hoffman) #40

Sigh. Ok. Let me get my laptop so I can look at the .zip file…