关于ios调用lua,目前大部分有两种办法:Wax和Corona,前者为开源,
Wax安装教程:
1.在GitHub下载Wax :https://github.com/probablycorey/wax
2.打开xCode,点击 Create a new Xcode Project,新建一个ios工程,将工程的Architectures设为armv7
3.在GitHub上下到的Wax的zip,得到一个名为wax-master的目录
在ios工程目录下创建一个名为wax的目录
然后执行以下操作:
1、将wax-master下bin和lib文件夹拷贝到刚刚建立的wax目录下
2、将wax-master\xcode-template下的Classes和scripts目录拷贝到 ****.xcodeproj 同一级目录下
3、删除wax\extensions下的SQLite目录、CGAffine目录、CGContext目录
4、将wax.framework拷贝到 *****.xcodeproj 同一级目录下(wax.framework通过编译wax-master/examples/IBExample可以获得,注意打开IBExample后先设置工程的Architectures为armv7,Valid Architectures为armv7),添加wax、Classes、scripts三个目录拖到Xcode中的项目下(注意不要改变了别的目录结构),不要勾选Copy选项,点击Finish
好了,到此,我们已经把一个能用的Wax假装加到我们的Project中了。
说假装是因为还不能用。不信你试试?
好了,可以冷静点了,我们现在就让它能用起来
首先,因为Wax的作者写Wax并维护的那个年代,还没有ARC这回事儿,我们需要禁用掉工程的ARC功能。
如果你是大神,将Wax重新拿回来改改改,Update到可以支持ARC的话,请一定一定联系我一起学习交流一下:[发邮件给我]
禁用ARC的方法如下:点击我们的工程,然后选择Build Setting,找到ARC,禁用掉
是不是感觉有点复杂,没事儿,我会上图的:
不管你信不信,我反正就当你已经改好了。
点一下Run,你会发现Error少了一堆。
然后使用默认的休整方式,添加一个base class
好了,可以运行了。
你可以自由发挥你在Lua上的优势了。
不过,到此我们都还没有使用过Lua不是么?
好了现在开始。
首先,由于SingleView的主体界面是Main.storyboard,我们把它阉掉先:
好了,阉掉了。现在Main.storyboard和我们这个Project已经没关系了。
顺便一提,LaunchScreen.xib有没有无所谓,载入界面嘛,影响不大。
从项目里面删除AppDelegrate.h以及AppDelegate.m
然后我们要将Lua用起来了。
首先找到main.m,把内容改为:
- // Wax并不使用nib文件来装入主视图,一切在WoodyPlusWax.lua文件里面完成
- #import <UIKit/UIKit.h>
- #import "wax.h"
- #import "wax_http.h"
- #import "wax_json.h"
- #import "wax_xml.h"
- int main(int argc, charchar *argv[])
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- wax_start("WoodyPlusWax", luaopen_wax_http, luaopen_wax_json, luaopen_wax_xml, nil);
- int retVal = UIApplicationMain(argc, argv, nil, @"WoodyPlusWax");
- [pool release];
- return retVal;
- }
然后将我们需要的二进制加入工程
添加脚本配置(如果编译提示lua目录出错,请在这里修改错误的部分)
+选择 New Run Script Phase
加入:
设置一下wax.framework的导入地址( $(PROJECT_DIR )
以及xml的头文件地址( $(SDK_ROOT)/usr/include/libxml2 )
(上面有几张图不当心加了水印。。要是看不清抱歉抱歉)
WoodyPlusWax.lua
内容如下(可自行发挥):
- Lua代码:
- waxClass{"WoodyPlusWax", protocols = {"UIApplicationDelegate"}}
- function applicationDidFinishLaunching(self, application)
- local frame = UIScreen:mainScreen():bounds()
- self.window = UIWindow:initWithFrame(frame)
- self.window:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.0, 1, 1))
- local label = UILabel:initWithFrame(CGRect(0, 100, 320, 35))
- label:setFont(UIFont:boldSystemFontOfSize(30))
- label:setColor(UIColor:whiteColor())
- label:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.3, 1, 1))
- label:setText("前方高能:")
- label:setTextAlignment(UITextAlignmentCenter)
- local label1 = UILabel:initWithFrame(CGRect(0, 135, 320, 35))
- label1:setFont(UIFont:boldSystemFontOfSize(25))
- label1:setColor(UIColor:whiteColor())
- label1:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.3, 1, 1))
- label1:setText("WoodyPlus正在调用Lua")
- label1:setTextAlignment(UITextAlignmentCenter)
- self.window:addSubview(label)
- self.window:addSubview(label1)
- self.window:makeKeyAndVisible()
- puts("")
- puts("-------------------------------------------------")
- puts("- You can print stuff to the console like this! -")
- puts("-------------------------------------------------")
- end
至此,点击Run应该就可以出现如下效果:
相关推荐
在iOS应用开发中,WAX(Web Application eXtension)是一个开源框架,它允许开发者使用Lua语言来编写iOS应用程序的逻辑部分。Lua以其简洁、轻量级和易学的特性,成为游戏开发和嵌入式脚本的热门选择。本压缩包"基于...
总之,“XCode Lua高亮插件”为Lua开发者在XCode环境中提供了一种有效的解决方案,通过简单的安装步骤,即可享受定制化的代码编辑体验。尽管存在版本兼容性的问题,但随着技术的不断发展,相信未来会有更多适应各种...
安装完成后,当你在Xcode中新建或打开一个Lua项目时,你应该能看到Lua代码有了颜色区分,比如关键字是蓝色,字符串是绿色,注释是灰色等。你可以根据个人喜好调整这些颜色设置,以达到最佳的阅读效果。 总的来说,...
Swift-Wax是一个独特的框架,它允许开发者使用Lua脚本语言来构建原生的iPhone应用程序。这一框架的独特之处在于,它将Lua的灵活性和简洁性与Swift或Objective-C的强大功能相结合,为iOS应用开发提供了一种高效且易于...
Lua-In-Xcode, 在Xcode中,用于添加Lua语法支持的shell script 和 xclanspec 对 Xcode 4 的支持下载这两个文件( 添加 lua,Lua.xclangspec )打开 Add-Lua.sh 并根据需要更改 DVTFOUNDATION_PATH 。 你可能不需要改变...
### Xcode安装与环境介绍 #### Xcode安装 Xcode是苹果公司提供的集成开发环境(IDE),主要用于开发iOS、macOS、watchOS以及tvOS的应用程序。为了顺利地进行开发工作,正确安装Xcode是非常重要的第一步。 - **...
xcode手动安装模拟器xcode手动安装模拟器xcode手动安装模拟器xcode手动安装模拟器xcode手动安装模拟器xcode手动安装模拟器
### Xcode安装与管理全解析 #### 一、Xcode简介与重要性 Xcode是苹果公司为开发者提供的集成开发环境(IDE),主要用于iOS、iPadOS、macOS、watchOS和tvOS应用的开发。它集成了源代码编辑器、调试工具、编译器以及...
安装BabeLua For 2017 V3.2.2.0.vsix文件后,开发者可以在Visual Studio或Visual Studio Code等支持VSIX扩展的环境中使用。该版本的BabeLua优化了与cocos2d-lua的集成,提升了稳定性,并提供了更丰富的调试信息,...
本文将详细阐述如何在苹果虚拟机上安装Xcode,特别是针对Xcode 7.2版本,使其能支持iOS 9.3设备的真机调试,并进一步扩展到对iOS 11.4的支持。 首先,我们需要了解的是,苹果虚拟机如Parallels Desktop或VMware ...
【描述】:描述中提到的“安装后在Xcode中能分辨lua代码颜色”,意味着用户可能已经安装了一个扩展或配置,使得Xcode能够支持Lua语言的语法高亮。这种方式提高了代码的可读性,避免了在纯黑色背景下阅读代码时可能...
ios13.2真机包直接下载 放入/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 就能运行了
《Xcode 12.1:深度解析与应用实践》 Xcode,作为Apple官方的集成开发环境(IDE),是iOS、macOS、watchOS和tvOS应用开发者的必备工具。Xcode 12.1作为Xcode 12系列的一个重要版本,引入了一系列更新和改进,对于...
本文将详细讲解如何创建和使用Xcode自定义模板,以"XCode自定义模板(支持Swift,OC)"为例,重点关注BaseViewController.xctemplate。 首先,我们需要了解Xcode模板的基本结构。一个Xcode模板通常包含以下几个部分...
在MacOS High Sierra(10.13.6)上本来最高只能安装到xcode10.1,通过以下方法可以成功安装xcode10.2.1,绝对能成功,但此方法不能适用于安装xcode11.
这个文件包含了设备的UDID(唯一设备标识符)和开发者证书,允许Xcode在非App Store分发模式下安装和运行未签名的应用程序。 6. **设备兼容性**: iOS 13.6可以运行在许多不同的iPhone和iPad型号上,但并不是所有...
本文将深入探讨如何在Qt项目中嵌入Objective-C(OC)代码,通过提供的"Xcode+qt (oc 嵌入到 qt demo)"来讲解这一技术。 首先,我们要理解为什么要将OC嵌入到Qt中。Objective-C是Apple的原生编程语言,对于iOS和...