Giter Site home page Giter Site logo

swift-unity's Introduction

Integrating Unity Project into Xcode Swift Project

This repo contains a demo Xcode 9.1 iOS project (Swift 4.0) that builds a single view app with an embeded Unity scene (Unity 2017.2.0f3) with two-way communication between Unity and Swift. It contains automation script that could be easily re-used in existing Unity and Swift projects.

Demo Video

This would not be possible without tutorial by BLITZ and video by the-nerd Frederik Jacques. Several updates are applied to fit latest Xcode and Unity releases.

Compatibility

Unity

  • 2017.1.1
  • 2017.1.2
  • 2017.2.0
  • 2017.3.0
  • 2017.3.1
  • 2017.4.1
  • 2017.4.2

Xcode

  • Xcode 9.0
  • Xcode 9.1
  • Xcode 9.2

FAQ

Why did I create this

I like to automate things when I find myself doing the same thing several times, and potentially over and over again. If you are (like I am) tired of these tedious steps every time you export a new Unity build, you will love this automation. Once integrated, Swift project gets updated automatically everytime a new Unity build is exported.

How to run the demo

First open Unity project, open Demo scene, open Build Settings and switch to iOS platform, then hit Build. You can put output anywhere but better put it to some temporary folder such as /tmp.

Once build succeeded, open Xcode project, select target device (Unity does not support x86_64) and hit Build and then run. You might need to change bundle identifier if Xcode has problem creating provisioning profile.

How to use it in other projects

Unity

Copy this post build script to your Unity project's Assets folder. Put anywhere you like but since this is an editor script, Unity requires it to be under a folder named Editor.

Open the script and follow the instructions in the comments. You need to tell it the path to your Swift project and the name of your awesome product.

/// <summary>
/// Path to the root directory of Xcode project.
/// This should point to the directory of '${XcodeProjectName}.xcodeproj'.
/// It is recommended to use relative path here.
/// Current directory is the root directory of this Unity project, i.e. the directory of 'Assets' folder.
/// Sample value: "../xcode"
/// </summary>
private const string XcodeProjectRoot = <PROJECT PATH>;

/// <summary>
/// Name of the Xcode project.
/// This script looks for '${XcodeProjectName} + ".xcodeproj"' under '${XcodeProjectRoot}'.
/// Sample value: "DemoApp"
/// </summary>
private const string XcodeProjectName = <PROJECT NAME>;

You're done with Unity part!

Xcode

Xcode side requires a bit more one time effort.

  1. Copy entire Unity folder to the root of your Swift project and add it to Xcode source tree. Make sure all the .mm files are added to correct build target.

Xcode source tree

  1. Add following lines to the .gitignore file in the same directory of your .xcodeproj entry. If you don't have one there, create one or merge it to your higher level git ignore file with proper updates to the paths.
# This file is generated by Unity post build action
DemoApp/Unity/Exports.xcconfig

# Files under Libraries will be copied from Unity build during Xcode build
DemoApp/Unity/Libraries/

# Files under Classes will be copied from Unity build during Xcode build
DemoApp/Unity/Classes/
  1. Select Unity as project configuration file. If you already have your own, merge Unity/Unity.xcconfig to your own.

Unity configuration file

  1. If you don't have Objective-C bridging header file, you can skip this. Otherwise, merge Unity/Bridging-Header.h to your own bridging header and comment out following lines in Unity/Unity.xcconfig:
SWIFT_OBJC_BRIDGING_HEADER = $(PRODUCT_NAME)/Unity/Bridging-Header.h;
SWIFT_PRECOMPILE_BRIDGING_HEADER = YES;
  1. Add following build scripts to your Xcode build target. You can copy from DemoApp settings. Note the order. If your project name has space(s) in it, surround the $PRODUCT_NAME with double quote.
echo "Syncing code from $UNITY_IOS_EXPORT_PATH..."
rsync -rc --exclude-from="$PRODUCT_NAME"/Unity/rsync_exclude --delete $UNITY_IOS_EXPORT_PATH/Classes/ "$PRODUCT_NAME"/Unity/Classes/
rsync -rc --exclude-from="$PRODUCT_NAME"/Unity/rsync_exclude --delete $UNITY_IOS_EXPORT_PATH/Libraries/ "$PRODUCT_NAME"/Unity/Libraries/

Xcode build script 1

echo "Syncing data from $UNITY_IOS_EXPORT_PATH..."
rm -rf "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data"
cp -Rf "$UNITY_IOS_EXPORT_PATH/Data" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data"

Xcode build script 2

  1. Update AppDelegate.swift to initialize Unity during application start. Follow the sample AppDelegate code.

  2. Once Unity is loaded, a UnityReady notification will be triggered. Subscribe to that notification, grab Unity view or view controller and present them as you like. Follow the sample ViewController code.

// Get Unity View
UnityGetGLView()

// Get Unity View Controller
UnityGetGLViewController()

Now you should be good to go. Give it a try!

Note: Building the Unity project for the first time will modify Xcode project file a lot. It is safe to commit the change into source control as it only performs necessary updates going forward.

Updates

  • 02/19/2018 - Support Unity version 2017.3.1f3.
  • 12/22/2017 - Support Unity version 2017.3.0f3.
  • 11/15/2017 - Updated demo focusing on reusability. Updated README accordingly.
  • 11/2/2017 - Support Unity version from 2017.1.1f1 to 2017.2.0f3.
  • 10/25/2017 - Added FAQ about missing Exports.xcconfig file.
  • 10/6/2017 - Fix previous known issue that new files generated by Unity are not added to Xcode project automatically.
  • 9/26/2017 - Initial commit

swift-unity's People

Contributors

ahmetardal avatar capnmidnight avatar itinance avatar jiulongw avatar maiido avatar setoelkahfi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swift-unity's Issues

Unity - Swift communication

Hello,

Would you/someone like to improve this awesome guide by adding an example how to call Swift functions FROM Unity?

Thanks again for this great template.

GVRSDK : Unrecognised selector sent to instance

My project build and run well, but when I try to use VR on my Unity project with GVRSDK, I have a crash with 'Unrecognised selector error'

Does anybody already issue this kind of crash ?
2017-10-07 at 11 24 am

I've added a symbolic breakpoint and know that crash come on this line :

2017-10-07 at 12 19 pm

My project is in Swift 4, run on Xcode 9 and Unity 2017.1.1f1

ARKit classes build error

Hi @jiulongw. Thanks for the great solution for the swift-unity interface!

I tried adding the ARKit plugin to the demo project and built it to check whether I can use the ARKit features in the final app. I am getting the following error,

screen shot 2018-02-21 at 16 53 58

The error is on the ARSessionNative.mm file which is imported into Unity by the ARKit plugin. Will appreciate it, if you could have a look :)

Guide is hard to follow

I maybe asking too much but it seems complicated. If someone didn't check previous guides to integrate unity scene into native app they will be very confused. I wonder If you can create a guide that explains end2end integration of unity 2017.1.1f1 to xcode9 with every steps included?

Following error

Command /bin/sh failed with exit code 23,
Unity.xcconfig line 1: Unable to find included file "Exports.xcconfig"
iam getting following error when iam running your demo app

UI API called from the background thread

Hi!

Really amazing work! Works perfectly, except I get a warning during launch from the UnityAppController.h: "UI API called from the background thread: -[UIApplication delegate] must be used from main thread only"

screen shot 2018-03-02 at 16 38 59

Any idea how we could fix this?

Best

-[UIApplication delegate] must be used from main thread only

I typically receive this purple error when I'm not calling UI changes in the DispatchQueue.main.async. I am not sure if the UnityAppController contains changes to the UI without the main.async? I see spikes in the cpu when the application starts and ends.

SendMessage: object NATIVE_BRIDGE not found!

I'm getting the error 'SendMessage: object NATIVE_BRIDGE not found!' if I change the UISwitch state.

To make the app running I opened the project in folder ../unity with unity. I opened the build settings - iOS hit build and saved the result in ../unity/tmp.

Now the following is a bit unclear from the instructions: I was not sure to open the XCode project from ../unity/tmp or from ../demo. I decided to open ../demo. This app compiles, is running but I'm getting the error message from above.

Perhaps this relates: I do not see the cube in my app. Only the empty scene.

I'm using XCode 9.2 and Unity 2017.3.0f3

ios build error

您好,

我们照着您的教学操作下,在ios的build成过程中出现错误如图 想请问应该是哪里的步骤出错了呢?

谢谢
2

Xcode compile error when using .Net 4.6 backend in Unity

After i (successfully) build my Unity project, the demo project fails to compile:

/Users/ionutdobrinescu/Development/UnityIntegration/V2/iOSProject/DemoApp/Unity/Classes/Native/Bulk_System.Configuration_0.cpp:25861:85: error: no member named 'Configuration' in namespace 'il2cpp::icalls::System'
return ((InternalConfigurationHost_get_bundled_app_config_m1191888808_ftn)System::Configuration::System::Configuration::InternalConfigurationHost::get_bundled_app_config) ();

I have some external frameworks that i use and i tried to link them but this doesn't seem to be the problem.

screen shot 2017-12-20 at 18 45 29

Do you have any ideea how to solve this?

ProjectName-Swift.h errors

Hello and sorry for my English.

I want call my swift function from .mm files. When i add #import "ProjectName-Swift.h" to my UnityUtils.mm (or another .mm file), i get a lot of errors in the"ProjectName-Swift.h" file, example below, all errors are with third-party modules. Perhaps someone ran into this?

I use XCode 9, Swift 4 and CocoaPods.

screenshot at 03 17-20-38

screenshot at 03 17-19-14

screenshot at 03 18-16-55

Thank you!

splash screen error

Simply compiling the existing version gives me this:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x1c067bd00>) doesn't contain a view controller with identifier 'unitySplashStoryboard''

Unity with Vuforia integration

I followed the guide and it works for unity without vuforia, but it fails if vuforia is integrated in the unity project.
Any idea what I need to change to make it work with vuforia ?

I have a Crash when download the last release from the repo

Im using Unity 2017.3.1f1 and XCode 9.2 and I have a crash when I run on device. Any idea?

best

2018-02-09 17:19:25.063517 DemoApp[219:4872] [DYMTLInitPlatform] platform initialization successful
2018-02-09 17:19:25.612060 DemoApp[219:4699] -> registered mono modules 0x101247520
-> applicationDidFinishLaunching()
2018-02-09 17:19:25.735239 DemoApp[219:4699] Metal GPU Frame Capture Enabled
2018-02-09 17:19:25.736423 DemoApp[219:4699] Metal API Validation Enabled
2018-02-09 17:19:26.099599 DemoApp[219:4699] Uncaught exception: NSInvalidArgumentException: Storyboard (<UIStoryboard: 0x17027b8c0>) doesn't contain a view controller with identifier 'unitySplashStoryboard'
(
0 CoreFoundation 0x00000001860761d8 + 148
1 libobjc.A.dylib 0x0000000184ab055c objc_exception_throw + 56
2 UIKit 0x000000018c68a130 + 0
3 DemoApp 0x00000001007df6f4 _Z16ShowSplashScreenP8UIWindow + 332
4 DemoApp 0x00000001007e0d40 -[UnityAppController(ViewHandling) createUI] + 1600
5 DemoApp 0x00000001000ee9e8 -[UnityAppController application:didFinishLaunchingWithOptions:] + 1196
6 DemoApp 0x00000001008009c0 _T07DemoApp0B8DelegateC11applicationSbSo13UIApplicationC_s10DictionaryVySC0E16LaunchOptionsKeyVypGSg022didFinishLaunchingWithH0tF + 480
7 DemoApp 0x0000000100801004 _T07DemoApp0B8DelegateC11applicationSbSo13UIApplicationC_s10DictionaryVySC0E16LaunchOptionsKeyVypGSg022didFinishLaunchingWithH0tFTo + 216
8 UIKit 0x000000018bf43100 + 400
9 UIKit 0x000000018c153858 + 3524
10 UIKit 0x000000018c1595c8 + 1656
11 UIKit 0x000000018c16de60 + 48
12 UIKit 0x000000018c1565ac + 168
13 FrontBoardServices 0x0000000187c1d8bc + 36
14 FrontBoardServices 0x0000000187c1d728 + 176
15 FrontBoardServices 0x0000000187c1dad0 + 56
16 CoreFoundation 0x0000000186024278 + 24
17 CoreFoundation 0x0000000186023bc0 + 524
18 CoreFoundation 0x00000001860217c0 + 804
19 CoreFoundation 0x0000000185f50048 CFRunLoopRunSpecific + 444
20 UIKit 0x000000018bf3c2b0 + 608
21 UIKit 0x000000018bf37034 UIApplicationMain + 208
22 DemoApp 0x0000000100801e0c main + 76
23 libdyld.dylib 0x0000000184f345b8 + 4
)
2018-02-09 17:19:26.107848 DemoApp[219:4699] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x17027b8c0>) doesn't contain a view controller with identifier 'unitySplashStoryboard''
*** First throw call stack:
(0x1860761c0 0x184ab055c 0x18c68a130 0x1007df6f4 0x1007e0d40 0x1000ee9e8 0x1008009c0 0x100801004 0x18bf43100 0x18c153858 0x18c1595c8 0x18c16de60 0x18c1565ac 0x187c1d8bc 0x187c1d728 0x187c1dad0 0x186024278 0x186023bc0 0x1860217c0 0x185f50048 0x18bf3c2b0 0x18bf37034 0x100801e0c 0x184f345b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

Unity+Vuforia setup needs extra steps

Hi,

thanks for your effort to make swift with unity easier to make it work.

When using Vuforia, there is some extra work that needs to be done in order to work as expected. In my case ImageTarget was not working. Xcode error was Dataset 'XYZ' could not be loaded and cannot be activated.

Unity creates folder Data which is not copied by run scripts. I solved a problem by copying Data folder to project Unity folder and adding folder reference to Vuforia (Data/Raw/Vuforia) to my project.

I don't know if this is too specific problem to be solved by your script. If it is this issue can at least help someone who will needs to work with Vuforia.

ARKit Classes do not build

Hi jiulongw,

After adding ARKIT_USES_FACETRACKING=1 to the OTHER_CFLAGS, I am getting the following error. Could you please have a look and let me know what the issue is?
screen shot 2018-02-26 at 12 14 03

Use of undeclared type 'UnityAppController'

Hi man, after following your tutorial i get this errore when i try to build xCode:
Use of undeclared type 'UnityAppController' in AppDelegate.
What i've done wrong? :D
Unity build successfully, the Unity.xcconfig is created correctly..

Unity Roll-a-Ball Example not working

I've successfully compile the example unity include in this project. Thanks, works nicely.

I then tried to do the example Roll-a-Ball unity project. Getting a lot of compile time errors, see below. Assume I'm missing a library import of some sort.

Any ideas on how to resolve this.

Undefined symbols for architecture arm64:
  "_Array_ConvertAll_TisRuntimeObject_TisRuntimeObject_m3321581774_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_KeyValuePair_2_get_Key_m1037668384_AdjustorThunk", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_KeyValuePair_2_get_Value_m1296621885_AdjustorThunk", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_KeyValuePair_2_set_Value_m2488996089_AdjustorThunk", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_KeyValuePair_2__ctor_m3060645744_AdjustorThunk", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_KeyValuePair_2_ToString_m2866546625_AdjustorThunk", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_Generic_ICollectionU3CTU3E_get_IsReadOnly_m312368033_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_ICollection_get_IsSynchronized_m1460672296_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_get_IsFixedSize_m3435788546_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_get_Item_m3974008001_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_set_Item_m1595927366_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_get_Capacity_m2803649578_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_set_Capacity_m2351920727_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_set_Item_m781216631_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1__cctor_m1860346538_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_Generic_IEnumerableU3CTU3E_GetEnumerator_m987664677_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_ICollection_CopyTo_m4179649268_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IEnumerable_GetEnumerator_m3679191302_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_Add_m3528343619_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_Contains_m2578325748_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_System_Collections_IList_IndexOf_m1506526945_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o
  "_List_1_AddEnumerable_m94902487_gshared", referenced from:
      _g_Il2CppGenericMethodPointers in Il2CppGenericMethodPointerTable.o

list go on and on....

Undefined symbols for architecture arm64

Hello, I followed your instructions multiple times but i cant managed to build in xcode 9 project.
Xcode 9.
Unity 2017.2.0f3 (Finally try with sample unity placeholder code)
Unity Build for devices - universal with IL2CPP.

I still get the error (no code in swift, and no code in unity for test after many times).

Undefined symbols for architecture arm64:
"_MTAudioProcessingTapGetSourceAudio", referenced from:
AVFoundationVideoPlayback::PlayerPriv::ProcessAudioTap(opaqueMTAudioProcessingTap const*, long, unsigned int, AudioBufferList*, long*, unsigned int*) in libiPhone-lib.a(AVFoundationVideoPlayback.o)
"_MTAudioProcessingTapCreate", referenced from:
-[AVFoundationMediaLoader ConfigureAudioOutput] in libiPhone-lib.a(AVFoundationVideoPlayback.o)
"_MTAudioProcessingTapGetStorage", referenced from:
-[AVFoundationMediaLoader ConfigureAudioOutput] in libiPhone-lib.a(AVFoundationVideoPlayback.o)
AVFoundationVideoPlayback::PlayerPriv::PrepareAudioTap(opaqueMTAudioProcessingTap const*, long, AudioStreamBasicDescription const*) in libiPhone-lib.a(AVFoundationVideoPlayback.o)
AVFoundationVideoPlayback::PlayerPriv::ProcessAudioTap(opaqueMTAudioProcessingTap const*, long, unsigned int, AudioBufferList*, long*, unsigned int*) in libiPhone-lib.a(AVFoundationVideoPlayback.o)
AVFoundationVideoPlayback::PlayerPriv::FinalizeAudioTap(opaqueMTAudioProcessingTap const*) in libiPhone-lib.a(AVFoundationVideoPlayback.o)
-[AVFoundationMediaLoader StopOutput] in libiPhone-lib.a(AVFoundationVideoPlayback.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Thank you for help
Itzik

Player data archive not found at `.../App.app/Data/data.unity3d`

REPRODUCE

  1. add lines to ViewController's viewDidLoad() like
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // Start....
        let vc = UIViewController()
        self.addChildViewController(vc)
        print(vc.view) //<--- crash after running this line
        // End....
        
        UIApplication.shared.appdelegate.startUnity()
        
        NotificationCenter.default.addObserver(forName: NSNotification.Name("UnityReady"), object: nil, queue: nil) { (_) in
            // Ready
            print("Unity Ready")
            UnityPostMessage("SceneLoader", "Load", "Empty")
        }
}
  1. Run app, and get the error.

Several Linker issues like "Undefined symbols for architecture arm64": _UnityGetMetalDrawableCommandQueue

Thanks for this nice tutorial! But i have issues.

When compiling the demoapp for Device-SDK with copying over the Unity-stuff from a real working Unity-project i get the following linker issues at the end of the build process.

According to the build logs i can ensure that the copy-process took place the right way and that everything gots compiled as well.

But it seems that some symbols weren't exposed correctly in the lib*.a-Files from Unity.

Has someone stumbled upon the same issue and can provide a fix?

Versions:

XCode: 9.2
iOS-Build target: 10.0
Unity: 2017.3.0f3

screen shot 2018-01-12 at 14 17 09

> Ld /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Products/Debug-iphoneos/DemoApp.app/DemoApp normal arm64
>     cd /Users/hagen/workspace/test/unity/github/swift-unity/demo/xcode
>     export IPHONEOS_DEPLOYMENT_TARGET=10.3
>     export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
>     /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk -L/Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Products/Debug-iphoneos -LDemoApp/Unity/Libraries -LDemoApp/Unity/Libraries/libil2cpp/include -L/Users/hagen/workspace/test/unity/github/swift-unity/demo/xcode/DemoApp/Unity/Libraries -F/Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Products/Debug-iphoneos -filelist /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Intermediates.noindex/DemoApp.build/Debug-iphoneos/DemoApp.build/Objects-normal/arm64/DemoApp.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -miphoneos-version-min=10.3 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Intermediates.noindex/DemoApp.build/Debug-iphoneos/DemoApp.build/Objects-normal/arm64/DemoApp_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fembed-bitcode-marker -stdlib=libc++ -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -Xlinker -add_ast_path -Xlinker /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Intermediates.noindex/DemoApp.build/Debug-iphoneos/DemoApp.build/Objects-normal/arm64/DemoApp.swiftmodule -weak-lSystem -weak_framework CoreMotion -weak_framework GameKit -weak_framework iAd -framework AVFoundation -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework CoreMedia -framework CoreVideo -framework Foundation -framework MediaPlayer -framework MediaToolbox -framework Metal -framework OpenAL -framework OpenGLES -framework QuartzCore -framework SystemConfiguration -framework UIKit -liconv.2 -liPhone-lib -lil2cpp -Xlinker -dependency_info -Xlinker /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Intermediates.noindex/DemoApp.build/Debug-iphoneos/DemoApp.build/Objects-normal/arm64/DemoApp_dependency_info.dat -o /Users/hagen/Library/Developer/Xcode/DerivedData/DemoApp-evgharzuimweyeeyqnnnmsmksnxs/Build/Products/Debug-iphoneos/DemoApp.app/DemoApp
> 
> Undefined symbols for architecture arm64:
>   "_UnityGetMetalDrawableCommandQueue", referenced from:
>       MetalContext::PrepareCommandBufferIfNeeded() in libiPhone-lib.a(MetalContext.o)
>   "_UnityDeviceCPUCount", referenced from:
>       systeminfo::GetProcessorCount() in libiPhone-lib.a(TrampolineGlue.o)
>   "_OBJC_CLASS_$_UnityAppController", referenced from:
>       objc-class-ref in AppDelegate.o
>   "_UnityUpdateNoBackupFlag", referenced from:
>       iphone::SetFileFlags(char const*, unsigned int, unsigned int) in libiPhone-lib.a(iPhoneMisc.o)
>   "_UnityGetMetalBundle", referenced from:
>       MetalBundleImpl() in libiPhone-lib.a(PluginInterfaceGraphicsMetal.o)
>   "_UnityGetGLView", referenced from:
>       __T07DemoApp14ViewControllerC012showUnitySubC0yyF in ViewController.o
>   "_il2cpp_no_exceptions", referenced from:
>       ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) in libiPhone-lib.a(runtime_scripting_2.o)
>   "_UnityGetGLViewController", referenced from:
>       -[AchievementWrapper showAchievementsUI] in libiPhone-lib.a(GameCenter.o)
>       -[LeaderboardWrapper showLeaderboardUI:withTimeScope:] in libiPhone-lib.a(GameCenter.o)
>   "_UnityApplicationDir", referenced from:
>       _UnityInitRuntime in libiPhone-lib.a(LibEntryPoint.o)
>       LocalFileSystemiPhone::GetApplicationPath() const in libiPhone-lib.a(runtime_virtualfilesystem_0.o)
>   "_UnityLibraryDir", referenced from:
>       LocalFileSystemiPhone::GetUserAppDataFolder() const in libiPhone-lib.a(runtime_virtualfilesystem_0.o)
>   "_UnityDisplayManager_DisplayRenderingResolution", referenced from:
>       _UnityDisplayManager_GetDisplayDeviceAt in libiPhone-lib.a(LibEntryPoint.o)
>   "_UnityCachesDir", referenced from:
>       LocalFileSystemiPhone::GetUserAppCacheFolder() const in libiPhone-lib.a(runtime_virtualfilesystem_0.o)
>   "_UnityGetMetalCommandQueue", referenced from:
>       MetalContext::PrepareCommandBufferIfNeeded() in libiPhone-lib.a(MetalContext.o)
>   "UnityInitTrampoline()", referenced from:
>       _unity_init in UnityUtils.o
>   "RegisterMonoModules()", referenced from:
>       _unity_init in UnityUtils.o
>   "RegisterFeatures()", referenced from:
>       _unity_init in UnityUtils.o
> ld: symbol(s) not found for architecture arm64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> 

Xcode compilation errors for Unity 2017.2.0f3

Probably it is connected to the latest version of Unity or whatever.
I use Unity 2017.2.0f3 + Xcode 9.0.1

At first I got following error while compiling DemoApp in Xcode
UnityInitApplicationGraphics(UNITY_FORCE_DIRECT_RENDERING);
../DemoApp/Unity/Classes/UnityAppController.mm:121:5: No matching function for call to 'UnityInitApplicationGraphics'

And as we can see in UnityInterface.h, 41 line function signature is without arguments
void UnityInitApplicationGraphics();

So let's delete UNITY_FORCE_DIRECT_RENDERING argument and try.

After that I got following compilation errors in MetalHelper.mm

line 67
../DemoApp/Unity/Classes/Unity/MetalHelper.mm:67:30: Array type '__strong MTLTextureRef [3]' is not assignable
http://prntscr.com/h1yzb6

line 274
../DemoApp/Unity/Classes/Unity/MetalHelper.mm:274:40: Assigning to 'MTLTextureRef' (aka 'id') from incompatible type '__strong MTLTextureRef [3]'
http://prntscr.com/h1yzhu

Attempt to comment these lines out leads to runtime crash
-[MTLDebugRenderCommandEncoder setScissorRect:]:2566: failed assertion `(rect.y(150) + rect.height(1184))(1334) must be <= render pass height(1184)'

[Help] Unable to link Xcode 9.1 and Unity 2017.3.0f3 (2017.2.0f3 too)

For many days I'm trying different methods but still unable to make a working simple app with unity and xcode (latest versions both)

screen shot 2017-12-28 at 11 34 50 am
https://i.imgur.com/vf59LHh.png

From the image below we can see that the files are found, what I tried is to delete the folder path, then it works but this happens to all .cpp files, I tried but then the methods are not recognized, tried many different things, by commenting some functions then by including other files like "UnityInterface.h" etc... but I know that this isn't going to work.

One thing to add is that the Classes and Libraries folders are not being copied into the Xcode main project, I'm adding them manually because I get all of them red.

Could someone please help me, I have a stable project in swift 2.3 and unity 5.4.2 but want to upgrade to swift 3 or 4 (optionally).

Thank you.

UnityGfxDeviceWorker (18): EXC_BAD_ACCESS (code=1, address=0x1)

I know that this project is directly focused on integrating Unity and does not cover integrating Unity with Vuforia. Everything runs with no issues except after I run startUnity.

We are using Vuforia and the camera is used in the view. However I'm getting the error below that from my research it has to deal with Unity creating a texture for the camera. The Unity app runs by itself perfectly fine with the camera being used, but after integrating with my swift project I'm getting this issue.

I'm attaching an image of the error as it was difficult to add here with proper styling. The overall error is:

0x1033e81b0 <+44>: mov x19, x0 "This where the UnityGfxDeviceWorker (18): EXC_BAD_ACCESS (code=1, address=0x1) happens"

The console output ends with:
Setting up 1 worker threads for Enlighten.
Thread -> id: 16dbef000 -> priority: 1
UnloadTime: 2.160708 ms
Compiled for iOS
Vuforia.PlatformRuntimeInitialization:InitPlatform()
System.Collections.Generic.HashSet`1:GetEnumerator()

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

arm64 function not 4-byte aligned: ltmp0 from DemoApp/Unity/Libraries/libiPhone-lib.a(unwind_test_arm64.o)

My Unity Project has a Kudan AR library.. I added its Library Search path inside the Unity.xcconfig

LIBRARY_SEARCH_PATHS = $(inherited) "$(PRODUCT_NAME)/Unity/Libraries" "$(PRODUCT_NAME)/Unity/Libraries/KudanAR/Plugins/iOS" "$(PRODUCT_NAME)/Unity/Libraries/libil2cpp/include" ${PODS_LIBRARY_PATHS};

When I'm trying to compile this is what happens

ld: warning: arm64 function not 4-byte aligned: ltmp0 from DemoApp/Unity/Libraries/libiPhone-lib.a(unwind_test_arm64.o) ld: warning: arm64 function not 4-byte aligned: _unwind_tester from DemoApp/Unity/Libraries/libiPhone-lib.a(unwind_test_arm64.o) Undefined symbols for architecture arm64: "_unity_init", referenced from: __T09DemoApp11AppDelegateC11applicationSbSo13UIApplicationC_s10DictionaryVySC0E16LaunchOptionsKeyVypGSg022didFinishLaunchingWithH0tF in AppDelegate.o "_GetDetectedTrackable", referenced from: _Tracker_GetDetectedTrackable_m1926606016 in Bulk_Assembly-CSharp_0.o (maybe you meant: _TrackerBase_GetDetectedTrackablesAsArray_m3006935635, _Tracker_GetDetectedTrackable_m1926606016 , _TrackerBase_GetDetectedTrackablesAsArray_m3006935635_MetadataUsageId , _TrackerBase_GetDetectedTrackable_m4254437456 , _TrackerBase_GetDetectedTrackable_m4254437456_MetadataUsageId ) "_GetTrackerRate", referenced from: _Tracker_GetTrackerRate_m2227538395 in Bulk_Assembly-CSharp_0.o (maybe you meant: _Tracker_GetTrackerRate_m2227538395) "_EndTracking", referenced from:

This is the Libraries structure

image

How to unload Unity from the memory?

Hi,

When I exit the Unity application back to Swift, it works fine with an exception that the Unity project does not unload from the memory.

Any suggestions how to unload it (as my Unity project takes 400mb RAM, it is crucial)

Also, this issue prevents me re-opening Unity. It gets stuck in the loading screen.

UnityGfxDeviceWorker (18): EXC_BAD_ACCESS (code=1, address=0x1) (Unity 2017.3.0f3 & Vuforia 7.0.36)

I realize this project is strictly for Unity & iOS integration but I'm running into the same issues as #4 I made sure I included the right NSCameraUsageDescription in the plist file and tried following the advice in this reply but to no avail.

Everything works flawlessly when I run the demo app. But as soon as I drag a Vuforia ARCamera object into the Unity project and try to build I'm running into this error. This even happens with the DemoApp (drag ARCamera object onto scene and rebuild)

Stack trace

0x102d42414 <+40>:  bl     0x103f71f60               ; symbol stub for: objc_retain
0x102d42418 <+44>:  mov    x19, x0 UnityGfxDeviceWorker (14): EXC_BAD_ACCESS (code=1, address=0x1)

Console

System.Array:Resize(T[]&, Int32, Int32)
Vuforia.ITrackerManager:GetTracker()
Vuforia.ITrackerManager:GetTracker()
Vuforia.ITrackerManager:GetTracker()
 
**Debug Navigator**
(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

(lldb)

screen shot 2018-01-08 at 4 05 53 pm

Use Unity in an seperat ViewController

When I use the ViewController from the example as an initial view controller everything works as expected. But when I put the code from the example into another view controller the method handleUnityReady isn't called. I also tried to stop and start unity:

if let appDelegate = UIApplication.shared.delegate as? AppDelegate {
    appDelegate.stopUnity()
    appDelegate.startUnity()
            
    NotificationCenter.default.addObserver(self, selector: #selector(handleUnityReady), name: NSNotification.Name("UnityReady"), object: nil)
}

without any result. Do you have any idea why this is happening?

Build project failed

Hi @jiulongw ! First of all, thanks for creating this guide!
I have been trying to follow all the guide steps but without success. When is time to build I get some errors like:

Undefined symbols for architecture arm64:
"_UnityGetMetalDrawableCommandQueue", referenced from:
MetalContext::PrepareCommandBufferIfNeeded() in libiPhone-lib.a(MetalContext.o)
"_UnityDeviceCPUCount", referenced from:
systeminfo::GetProcessorCount() in libiPhone-lib.a(TrampolineGlue.o)

I´m running it on a device and not in a simulator.

The steps that I did are:

  1. Create a Unity project and build to iOS.
  2. Copy the script in the Assets folder of the Unity project and change the path of the Xcode project that Unity created (Is this okay? Or should be the path of the new project mentioned in the 4th step?).
  3. Open de Xcode project that Unity created and build.
  4. Create a new project and add the Unity folder that you give and add the .mm files to the target.
  5. Add the ´.gitignore´file with the given lines.
  6. Select Unity as project configuration file.
  7. Add the run scripts in the target.
  8. Build and run.

I know that could sound repetitive, but I´m not sure if understand all the steps of your guide (especially the first one, I don´t understand which project you start.

Copy entire Unity folder to the root of your Swift project and add it to Xcode source tree. Make sure all the .mm files are added to correct build target.).

Please let me know if I missing something or any of that steps that I´m doing are not necessary.
Thanks in advance!

screen shot 2018-01-19 at 12 17 17

Swift project with Cocoapods

Hello,

I have been trying to integrate a Unity project inside my Swift app. I am using some external libraries such as Facebook, RxSwift or SwiftyBeaver managed with Cocoapods.

Your example alone works fine, but when I try to follow your instructions to reproduce the integration inside my app, I face a problem with file Unity.xcconfig. I cannot integrate its contents inside the xcconfig file generated by Cocoapods, when I copy and paste Unity config file contents inside, the prefix.pch file throws an error. After some modifications to the variables, I found a dead end. Either the code of my app compiles, or the imported libraries compile, but I was not able to make both compile at the same time.

Do you have tested this approach with a Swift project that uses Cocoapods? Do you have any advice?

Thanks in advance,
Xavi

Unknown type name 'NSString'

Hello, and first of all, thanks for the amazing guide.

Following it step by step and trying to compile it, Xcode presents me these errors:

screen shot 2018-02-01 at 15 59 42

Looking for solutions on the web I managed to discover that often those errors are caused by .c and .cpp files in the project. And there are .cpp files in the project:

screen shot 2018-02-01 at 16 11 43

Il2CppOptions.cpp
RegisterFeatures.cpp
RegisterMonoModules.cpp

Naively trying to change their extension to .mm didn't work because they are generated during compilation.

What are possible causes / solutions to this issue?

Xcode version: 9.2 (9C40b)
Unity version: 2017.2.0f3

Xcode 9 - 2017.2.0f2 - Crash on Unity launch

I'm attempting to blend in a Unity-Vuforia project into an existing Swift project. So far everything builds, but as soon as I run the startUnity command the initialization only gets so far before crashing.

Here is the end of the console log:

-> applicationDidBecomeActive()
GfxDevice: creating device client; threaded=1
Initializing Metal device caps: Apple A10 GPU
Initialize engine version: 2017.2.0f2 (472de62575d5)
excaliburNYC was compiled with optimization - stepping may behave oddly; variables may not be available.
(lldb)

Thread Error:

0x105c61f44 <+20>: ldrb w8, [x19, #0x109]
Thread 1: EXC_BAD_ACCESS (code=1, address=0x109)

At the top of the thread error is says il2cpp::vm::Class::Init: and I have traced it back to this function below.

UnityInitApplicationGraphics();

Any help would be appreciated. Thank you.

Undefined symbols for architecture arm64

After follow the updates provided in this guide I'm down to one error. Not sure what this means.

Other developers say it's a result of missing libraries, but I'm including all the recommended files. Maybe I'm missing something. I would greatly appreciate the help.

Undefined symbols for architecture arm64: "_UnityStartWWWConnectionCustom", referenced from: TransportiPhone::DoRequest(core::basic_string<char, core::StringStorageDefault<char> > const&, unsigned long, UnityWebRequestMethod, core::basic_string<char, core::StringStorageDefault<char> > const&, bool, bool, HeaderHelper*, UploadHandler*, DownloadHandler*, ResponseHelper*, bool) in libiPhone-lib.a(TransportiPhone.o) "_UnitySendWWWConnection", referenced from: TransportiPhone::DoRequest(core::basic_string<char, core::StringStorageDefault<char> > const&, unsigned long, UnityWebRequestMethod, core::basic_string<char, core::StringStorageDefault<char> > const&, bool, bool, HeaderHelper*, UploadHandler*, DownloadHandler*, ResponseHelper*, bool) in libiPhone-lib.a(TransportiPhone.o) "_UnityBlockWWWConnectionUntilDone", referenced from: TransportiPhone::Finalize() in libiPhone-lib.a(TransportiPhone.o) TransportiPhone::PostRequest() in libiPhone-lib.a(TransportiPhone.o) "_UnityDestroyWWWConnection", referenced from: TransportiPhone::~TransportiPhone() in libiPhone-lib.a(TransportiPhone.o) TransportiPhone::Cleanup() in libiPhone-lib.a(TransportiPhone.o) "_UnityGetGLViewController", referenced from: -[AchievementWrapper showAchievementsUI] in libiPhone-lib.a(GameCenter.o) -[LeaderboardWrapper showLeaderboardUI:withTimeScope:] in libiPhone-lib.a(GameCenter.o) "_UnityShouldCancelWWW", referenced from: TransportiPhone::Abort() in libiPhone-lib.a(TransportiPhone.o) TransportiPhone::Finalize() in libiPhone-lib.a(TransportiPhone.o) "_UnityGetMetalBundle", referenced from: MetalBundleImpl() in libiPhone-lib.a(PluginInterfaceGraphicsMetal.o) "_UnityDocumentsDir", referenced from: systeminfo::GetPersistentDataPath() in libiPhone-lib.a(TrampolineGlue.o) "_UnityDeviceName", referenced from: systeminfo::GetDeviceName() in libiPhone-lib.a(TrampolineGlue.o) "_UnityDeviceModel", referenced from: systeminfo::GetDeviceModel() in libiPhone-lib.a(TrampolineGlue.o) "_UnityDeviceUniqueIdentifier", referenced from: systeminfo::GetDeviceUniqueIdentifier() in libiPhone-lib.a(TrampolineGlue.o) "_UnityDeviceCPUCount", referenced from: systeminfo::GetProcessorCount() in libiPhone-lib.a(TrampolineGlue.o) "LocationService::IsHeadingAvailable()", referenced from: UnityEngine::PlatformWrapper::GetSensorFlags() in libiPhone-lib.a(runtime_unityconnect.lump.o) "_OBJC_CLASS_$_UnityAppController", referenced from: objc-class-ref in AppDelegate.o "_UnityAdvertisingIdentifier", referenced from: AdsIdHandler::FetchAdsId() in libiPhone-lib.a(platformdependent_iphoneplayer.lump.o) "RegisterMonoModules()", referenced from: _unity_init in UnityUtils.o "_UnityCachesDir", referenced from: LocalFileSystemiPhone::GetUserAppCacheFolder() const in libiPhone-lib.a(runtime_virtualfilesystem.lump.o) systeminfo::GetTemporaryCachePath() in libiPhone-lib.a(TrampolineGlue.o) "_UnityLibraryDir", referenced from: LocalFileSystemiPhone::GetUserAppDataFolder() const in libiPhone-lib.a(runtime_virtualfilesystem.lump.o) "_UnityApplicationDir", referenced from: LocalFileSystemiPhone::GetApplicationPath() const in libiPhone-lib.a(runtime_virtualfilesystem.lump.o) "_UnitySystemLanguage", referenced from: iphone::GetSystemLanguage() in libiPhone-lib.a(iPhoneMisc.o) "_UnityDeviceIsStylusTouchSupported", referenced from: ____Z22IsStylusTouchSupportedv_block_invoke in libiPhone-lib.a(iPhoneInputImpl.o) "__ios91orNewer", referenced from: ____Z22IsStylusTouchSupportedv_block_invoke in libiPhone-lib.a(iPhoneInputImpl.o) "_UnityUpdateNoBackupFlag", referenced from: iphone::SetFileFlags(char const*, unsigned int, unsigned int) in libiPhone-lib.a(iPhoneMisc.o) "_UnityAdvertisingTrackingEnabled", referenced from: AdsIdHandler::FetchAdsId() in libiPhone-lib.a(platformdependent_iphoneplayer.lump.o) "_UnityDisplayManager_DisplayRenderingResolution", referenced from: _UnityDisplayManager_GetDisplayDeviceAt in libiPhone-lib.a(LibEntryPoint.o) "_il2cpp_no_exceptions", referenced from: ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) in libiPhone-lib.a(runtime_scripting2.lump.o) "_UnityIsGyroAvailable", referenced from: IsGyroAvailable() in libiPhone-lib.a(LibEntryPoint.o) "_OBJC_CLASS_$_FIRApp", referenced from: objc-class-ref in AppDelegate.o "_UnityGetGLView", referenced from: IsMultiTouchEnabled() in libiPhone-lib.a(iPhoneInputImpl.o) "_UnitySystemVersion", referenced from: systeminfo::GetDeviceSystemVersion() in libiPhone-lib.a(TrampolineGlue.o) "_UnitySystemName", referenced from: systeminfo::GetDeviceSystemName() in libiPhone-lib.a(TrampolineGlue.o) "__ios90orNewer", referenced from: ____Z21IsForceTouchSupportedv_block_invoke in libiPhone-lib.a(iPhoneInputImpl.o) "RegisterFeatures()", referenced from: _unity_init in UnityUtils.o "UnityInitTrampoline()", referenced from: _unity_init in UnityUtils.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Failed build Demo

When i build, i got this error, any help please, it's urgent

Syncing code from ...
rsync: link_stat "/Classes/." failed: No such file or directory (2)
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/main.c(996) [sender=2.6.9]
rsync: link_stat "/Libraries/." failed: No such file or directory (2)
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/main.c(996) [sender=2.6.9]
Command /bin/sh failed with exit code 23

Please help me
Thank you

ld: entry point (_main) undefined. for architecture arm64

Hi,

I am trying to use this and have built from a clean project. Once the postbuild step is included, the build fails with

ld: entry point (_main) undefined. for architecture arm64

I compared the log of the successful build vs. the failed build (that is one without the post build step and one with) and the only difference in the logs is the order of two pngs and two source files.

I would appreciate any ideas, cheers...

-DD

UnityUtils.mm build errors

Hi,

i had tried to use your method to implement unity with swift and i failed on build with these errors:

Use of undeclared identifier 'UnityInitRuntime'
Use of undeclared identifier 'NSLog'
Unknown type name 'NSString'

I double checked your tutorial and cant find anything i was doing wrong
snimek obrazovky 2018-02-22 v 16 09 07

Xcode 9.2 and Unity 2017.3.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.