Using Third Party Libraries Using Pod in Fire

Hi,

May I know is there a way to import pod file as 3rd part libraries into Fire cocoa platform.

Thank You.

Best Regards,
tylim

In 8.4 you can import framework files. You need to generate the fx file and add it as a reference to your project.

In 8.3 you can do the same with static libraries. If the framework file contains a static library, then you can use whats inside the framework file.

Either approaches require you to generate an fx file.

https://docs.elementscompiler.com/Tools/FXGen/#q=train

Cheers,
John

2 Likes

Thanks for the answer. I will take a look on that.

Thank You!

Best Regards,
Thol Yong

Hi,

Im using 8.4, but when I open up the FXGen, the choices of library type has only static library(.a), the framework(.framework) library type is still greyed out. What is the problem?

Thank You.

Best Regards,
Thol Yong

I stopped using fxgen because I couldn’t save the scripts and reload.

I’m using train because I can run those from the commandline.

https://docs.elementscompiler.com/Tools/HeaderImporter/#q=headerimporter

headerimporter is what fxgen uses.

1 Like

FXGen needs and will get an overhaul, one fo these days,

I would be quite happy if it didnt get updated. I prefer using train. It would be nice if I could create, edit and run the scripts in Fire.

1 Like

Yeah, adding .train support in Fire is something i have been thinking about… That said, it’s not for everyone to have to stoop to that level, and a nicer FXGen would be good…

Thanks for answering. Looking forward to the overhauled FXGen. :slight_smile:

I just tried out the HeaderImport. But I got this error, may I know how can I solve it?

script(/Users/limtholyong/Software/HeaderImporter/realmFramework.train) {     
  include(generate.train) {     
    header importer: /Users/limtholyong/Software/HeaderImporter/HeaderImporter.exe
    Developer folder: /Applications/Xcode.app/Contents/Developer
    FX Base folder: /Applications/Fire.app/Contents/Resources/Toffee SDKs
    macOS version: 10.12
    iOS version: 10.0
    watchOS version: 3.0
    tvOS version: 10.0
  } include 
  function processiOSFramework([object Object]) {     
    function prepareFrameworkOptions([object Object]) { } : [object Object]
    function expandIncludeFXs(undefined, iOS) { }   
    shell.exec(/usr/bin/file /Users/limtholyong/Software/realm-swif...) { }   
    This is a real framework
    function processiOSLibrary([object Object]) {     
      function processiOSDeviceLibrary([object Object]) {     
        function sanityCheck() { }   
        function sanityCheckiOS() { }   
        function architecturesForiOSVersion(10.1) {     
          function compareVersions(10.1, 6.0) { } : 1
          function compareVersions(10.1, 7.0) { } : 1
        } function architecturesForiOSVersion: [object Object],[object Object],[object Object]
        function processLibrary([object Object]) {     
          function sanityCheck() { }   
          function clean(/Users/limtholyong/Software/TrainOutput/Re...) {     
            folder.remove(/Users/limtholyong/Software/TrainOutput/R...) { }   
          } function clean 
          function doProcessLibrary([object Object]) {     
            folder.create(/Users/limtholyong/Software/TrainOutput/R...) { }   
            function runHeaderImporterForLibrary([object Object],  ...) {     
              import --architecture=armv7-apple-ios -o "/Users/limtholyong/Software/TrainOutput/Realm/iOS/armv7-apple-ios" -f "/Users/limtholyong/Software/realm-swift-2.0.3/ios/swift-3.0" --importframework=Realm --type=ios  --prefix=Realm --fxpaths "/Applications/Fire.app/Contents/Resources/Toffee SDKs/iOS 10.1" --copyframework -q objc/NSObject.h:Foundation -q objc/NSObjCRuntime.h:Foundation
              shell.exec(/Users/limtholyong/Software/HeaderImporter...) {     
                Failed with error code: 255
                Output: 

Unhandled Exception:
System.TypeLoadException: Could not load type 'HeaderImporter.CodeGen' from assembly 'HeaderImporter, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null'.



                Error calling Process.Execute: Failed with error code: 255
System.Exception: Failed with error code: 255
  at RemObjects.Train.API.Shell.Exec (RemObjects.Script.EcmaScript.ExecutionContext ec, System.Object aSelf, System.Object[] args) [0x003b5] in <60a1706667114267a973f9baad127b03>:0 
              } shell.exec(/Users/limtholyong/Software/HeaderImporter/HeaderImporter.exe) 
            } function runHeaderImporterForLibrary 
          } function doProcessLibrary 
        } function processLibrary 
      } function processiOSDeviceLibrary 
    } function processiOSLibrary 
  } function processiOSFramework 
} script 

Thank You.

Best Regards,
Thol Yong

what build of Elements is this with?

Im using external HearderImporter extracted from FXGen 8.4.96.2045. The elements that im using is 8.4.96.2061.

can you retest with the latest, 9.0 or the 9.1 betas?