Skip to content

Commit 34a7295

Browse files
author
敛心
committed
完全去除非标准语法支持
1 parent 729bb47 commit 34a7295

13 files changed

Lines changed: 79 additions & 340 deletions

File tree

IOS/SDK/LuaViewSDK/Classes/LView.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,6 @@
55

66
@implementation LView
77

8-
9-
-(BOOL) changeGrammar{
10-
return self.luaviewCore.changeGrammar;
11-
}
12-
13-
-(void) setChangeGrammar:(BOOL)changeGrammar{
14-
self.luaviewCore.changeGrammar = changeGrammar;
15-
}
16-
178
-(BOOL) checkDebugerServer{
189
return self.luaviewCore.checkDebugerServer;
1910
}

IOS/SDK/LuaViewSDK/Classes/LuaView.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,6 @@
9494
*/
9595
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName;
9696

97-
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName changeGrammar:(BOOL) changeGrammar;
98-
9997
/**
10098
* 加载签名的脚本文件,读取文件并调用lvL_loadbuffer
10199
*

IOS/SDK/LuaViewSDK/Classes/LuaView.m

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,6 @@ -(NSString*) runData:(NSData*) data fileName:(NSString*) fileName{
153153
return [self.luaviewCore runData:data fileName:fileName];
154154
}
155155

156-
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName changeGrammar:(BOOL) changeGrammar{
157-
return [self.luaviewCore runData:data fileName:fileName changeGrammar:changeGrammar];
158-
}
159-
160156
/**
161157
* 加载签名的脚本文件,读取文件并调用lvL_loadbuffer
162158
*

IOS/SDK/LuaViewSDK/Classes/LuaViewCore.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
/**
2828
* 是否需要语法转换(原先luaview语法和lua标准语法的区别是‘.’和':'互换了),默认是标准语法,使用非标准语法需要转换成标准语法才设置成true
2929
*/
30-
@property (nonatomic,assign) BOOL changeGrammar;
30+
//不再支持changeGrammer, 缺省只支持标准语法,不进行转换
31+
//@property (nonatomic,assign) BOOL changeGrammar;
3132

3233
//---------------------------------------------------------------------
3334
/**
@@ -119,8 +120,8 @@
119120
* @return 运行结果
120121
*/
121122
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName;
122-
123-
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName changeGrammar:(BOOL) changeGrammar;
123+
//
124+
//-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName changeGrammar:(BOOL) changeGrammar;
124125

125126
/**
126127
*

IOS/SDK/LuaViewSDK/Classes/LuaViewCore.m

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,7 @@ -(NSString*) runPackage:(NSString*) packageName args:(NSArray*) args{
137137
NSString *packagePath = [LVPkgManager rootDirectoryOfPackage:packageName];
138138
[self.bundle addScriptPath:packagePath];
139139
[self.bundle addResourcePath:packagePath];
140-
141-
self.changeGrammar = [[LVPkgManager changeGrammarOfPackage:packageName] isEqualToString:@"true"];
142-
140+
143141
NSString* fileName = @"main.lv";
144142
NSString* ret = [self runSignFile:fileName];
145143
lua_State* L = self.l;
@@ -182,16 +180,12 @@ -(NSString*) loadScript:(NSString *)script fileName:(NSString *)fileName{
182180
return [self loadData:[script dataUsingEncoding:NSUTF8StringEncoding] fileName:fileName];
183181
}
184182

185-
- (NSString*)loadData:(NSData *)data fileName:(NSString *)fileName {
186-
return [self loadData:data fileName:fileName changeGrammar:self.changeGrammar];
187-
}
188-
189183
#ifdef DEBUG
190184
extern char g_debug_lua[];
191185

192186
-(NSString*) loadDebugModel{
193187
NSData* data = [[NSData alloc] initWithBytes:g_debug_lua length:strlen(g_debug_lua)];
194-
return [self runData:data fileName:@"debug.lua" changeGrammar:NO];
188+
return [self runData:data fileName:@"debug.lua"];
195189
}
196190

197191
- (void) callLuaToExecuteServerCmd{
@@ -313,15 +307,18 @@ -(void) registerAllClass{
313307
}
314308

315309
-(NSString*) runData:(NSData *)data fileName:(NSString*)fileName{
316-
return [self runData:data fileName:fileName changeGrammar:self.changeGrammar];
310+
lua_State* L = self.l;
311+
NSString* ret = [self loadData:data fileName:fileName];
312+
if ( ret ) {
313+
return ret;
314+
} else {
315+
return lv_runFunction(L);
316+
}
317317
}
318318

319-
- (NSString*)loadData:(NSData *)data fileName:(NSString *)fileName changeGrammar:(BOOL)changeGrammar{
319+
- (NSString*)loadData:(NSData *)data fileName:(NSString *)fileName{
320320
fileName = [fileName stringByReplacingOccurrencesOfString:@"//" withString:@"/"];
321321

322-
if( changeGrammar ) {
323-
data = lv_toStandLuaGrammar(data);
324-
}
325322
lua_State* L = self.l;
326323
if( L==NULL ){
327324
LVError( @"Lua State is released !!!");
@@ -355,16 +352,6 @@ - (NSString*)loadData:(NSData *)data fileName:(NSString *)fileName changeGrammar
355352
}
356353
}
357354

358-
-(NSString*) runData:(NSData*) data fileName:(NSString*) fileName changeGrammar:(BOOL) changeGrammar{
359-
lua_State* L = self.l;
360-
NSString* ret = [self loadData:data fileName:fileName changeGrammar:changeGrammar];
361-
if ( ret ) {
362-
return ret;
363-
} else {
364-
return lv_runFunction(L);
365-
}
366-
}
367-
368355
-(int) globalNumber:(const char*) globalName{
369356
lua_State* L = self.l;
370357
if ( L ==nil ){

IOS/SDK/LuaViewSDK/Classes/PKG/LVPkgInfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
@property(nonatomic,copy) NSString* url; // 下载地址
2727
@property(nonatomic,copy) NSString* sha256; // sha256
2828
@property(nonatomic,copy) NSString* timestamp; // 版本对比时间戳
29-
@property(nonatomic,assign) BOOL changeGrammar; // 是否需要语法转换(‘:’和'.'互换)
29+
//@property(nonatomic,assign) BOOL changeGrammar; // 是否需要语法转换(‘:’和'.'互换)
3030
@property(nonatomic,copy) NSString* package; // sha256
3131

3232
/*

IOS/SDK/LuaViewSDK/Classes/PKG/LVPkgInfo.m

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,22 @@ @implementation LVPkgInfo
1414
-(instancetype) init:(NSDictionary*) dic{
1515
self = [super init];
1616
if( self ) {
17-
NSString* url = nil;
18-
NSString* sha = nil;
17+
NSString* url = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SURL];
18+
19+
if (!url){
20+
url = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_URL];
21+
}
22+
NSString* sha = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SSHA key2:LV_PKGINFO_SSHA256];
23+
24+
if (!sha){
25+
sha = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SHA key2:LV_PKGINFO_SHA256];
26+
}
1927

20-
url = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SURL];
21-
sha = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SSHA key2:LV_PKGINFO_SSHA256];
2228
if( url && sha ) {
2329
self.url = url;
2430
self.sha256 = sha;
25-
self.changeGrammar = NO;
26-
} else {
27-
self.url = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_URL key2:LV_PKGINFO_URL2];
28-
self.sha256 = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_SHA key2:LV_PKGINFO_SHA256];
29-
self.changeGrammar = YES;
30-
// 检查后缀名, 如果是.szip, 说明是标准语法格式, 不需要转换(兼容安卓)
31-
if( [self.url hasSuffix:@".szip"] ) {
32-
self.changeGrammar = NO;
33-
}
3431
}
32+
3533
self.url = [self stringByDecodingURLFormat:self.url]; // 下载地址可能需要解码
3634
self.url = [self addHttpPrefix:self.url];// 下载地址可能需要加https前缀
3735
self.package = [LVPkgInfo safe_string:dic forKey:LV_PKGINFO_PACKAGE];
@@ -64,15 +62,9 @@ - (NSString *)stringByDecodingURLFormat:(NSString*) str
6462

6563
- (NSDictionary*) dictionaryInfo{
6664
if( self.url && self.sha256 && self.package ) {
67-
if( self.changeGrammar ) {
68-
return @{LV_PKGINFO_URL:self.url,
69-
LV_PKGINFO_SHA:self.sha256,
70-
LV_PKGINFO_PACKAGE:self.package};
71-
} else {
72-
return @{LV_PKGINFO_SURL:self.url ,
73-
LV_PKGINFO_SSHA:self.sha256,
74-
LV_PKGINFO_PACKAGE:self.package};
75-
}
65+
return @{LV_PKGINFO_SURL:self.url ,
66+
LV_PKGINFO_SSHA:self.sha256,
67+
LV_PKGINFO_PACKAGE:self.package};
7668
}
7769
return nil;
7870
}

IOS/SDK/LuaViewSDK/Classes/PKG/LVPkgManager.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ typedef void(^LVDownloadCallback)(NSDictionary* info, NSString* error, LVDownloa
3434
+ (NSString *)pathForFileName:(NSString *)fileName package:(NSString *)packageName;
3535

3636
// 解压失败是-1, 无需解压本地更加新是0, 解压成功是1
37-
+(int) unpackageFile:(NSString*) fileName packageName:(NSString*) packageName changeGrammar:(BOOL) changeGrammar;
38-
+(int) unpackageData:(NSData*) data packageName:(NSString*) packageName changeGrammar:(BOOL) changeGrammar;
37+
+(int) unpackageFile:(NSString*) fileName packageName:(NSString*) packageName;
38+
+(int) unpackageData:(NSData*) data packageName:(NSString*) packageName;
3939

4040
// 返回值说明 0:本地和线上版本一样; 1:即将去下载; -1:错误
4141
+(NSInteger) downloadPackage:(NSString*)packageName withInfo:(NSDictionary*) info;
4242
// 返回值说明 0:本地和线上版本一样; 1:即将去下载; -1:错误
4343
+(NSInteger) downloadPackage:(NSString*)packageName withInfo:(NSDictionary*) info callback:(LVDownloadCallback) callback;
44+
+(NSInteger) unpackageData:(NSData*)data packageName:(NSString*)packageName withInfo:(LVPkgInfo*) info callback:(LVDownloadCallback) callback;
45+
4446

4547
+(NSData*) readLuaFile:(NSString*) fileName rsa:(LVRSA*) rsa;
4648
// download url
@@ -49,9 +51,6 @@ typedef void(^LVDownloadCallback)(NSDictionary* info, NSString* error, LVDownloa
4951
// timestamp
5052
+(NSString*) timestampOfPackage:(NSString*)packageName;
5153
+(BOOL) setPackage:(NSString*)packageName timestamp:(NSString*) time;
52-
// changeGrammar
53-
+(NSString*) changeGrammarOfPackage:(NSString*)packageName;
54-
+(BOOL) setPackage:(NSString*)packageName changeGrammar:(NSString*) timestamp;
5554

5655
// 返回值说明 0:本地和线上版本一样; -1:错误或者不相等
5756
+(int) compareDownloadUrlOfPackage:(NSString*)name withServerInfo:(NSDictionary*) info;

IOS/SDK/LuaViewSDK/Classes/PKG/LVPkgManager.m

Lines changed: 40 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
NSString * const LV_FILE_NAME_OF_PACKAGE_DOWNLOAD_URL = @"___download_url___";
1616
NSString * const LV_FILE_NAME_OF_PACKAGE_TIMESTAMP = @"___timestamp___";
17-
NSString * const LV_FILE_NAME_OF_CHANGE_GRAMMAR = @"___change_grammar___";
1817

1918
@implementation LVPkgManager
2019

@@ -52,9 +51,6 @@ +(NSString*) filePathOfPackageDownloadUrl:(NSString *)packageName {
5251
+(NSString*) filePathOfPackageTimestamp:(NSString *)packageName {
5352
return [self pathForFileName:LV_FILE_NAME_OF_PACKAGE_TIMESTAMP package:packageName];
5453
}
55-
+(NSString*) filePathOfChangeGrammar:(NSString *)packageName {
56-
return [self pathForFileName:LV_FILE_NAME_OF_CHANGE_GRAMMAR package:packageName];
57-
}
5854
//------------------------------------------------------------------------------------------
5955
+(BOOL) deleteFileOfPackageDownloadUrl:(NSString*) packageName{
6056
NSString* path = [self filePathOfPackageDownloadUrl:packageName];
@@ -93,29 +89,15 @@ +(BOOL) setPackage:(NSString*)packageName timestamp:(NSString*) timestamp{
9389
NSData* data = [timestamp dataUsingEncoding:NSUTF8StringEncoding];
9490
return [self writeFile:data packageName:packageName fileName:LV_FILE_NAME_OF_PACKAGE_TIMESTAMP];
9591
}
96-
//------------------------------------ read/write change grammar -----------------------------------
97-
+(NSString*) changeGrammarOfPackage:(NSString*)packageName {
98-
NSData* data = [self readFileFromPackage:packageName fileName:LV_FILE_NAME_OF_CHANGE_GRAMMAR];
99-
if( data ) {
100-
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
101-
} else {
102-
return nil;
103-
}
104-
}
10592

106-
+(BOOL) setPackage:(NSString*)packageName changeGrammar:(NSString*) timestamp{
107-
// time file
108-
NSData* data = [timestamp dataUsingEncoding:NSUTF8StringEncoding];
109-
return [self writeFile:data packageName:packageName fileName:LV_FILE_NAME_OF_CHANGE_GRAMMAR];
110-
}
11193

11294
//------------------------------------------------------------------------------------------
113-
+(int) unpackageFile:(NSString*) fileName packageName:(NSString*) packageName changeGrammar:(BOOL) changeGrammar{
95+
+(int) unpackageFile:(NSString*) fileName packageName:(NSString*) packageName{
11496
NSString *path = [LVUtil PathForBundle:nil relativePath:fileName];
11597

11698
if( [LVUtil exist:path] ){
11799
NSData* pkgData = [LVUtil dataReadFromFile:path];
118-
return [self unpackageData:pkgData packageName:packageName changeGrammar:changeGrammar];
100+
return [self unpackageData:pkgData packageName:packageName];
119101
}
120102
return -1;
121103
}
@@ -124,7 +106,7 @@ +(BOOL) checkUpdateWithNewTS:(NSString*)newTS oldTS:(NSString*) oldTS{
124106
return newTS.length>0 && oldTS.length>0 && [newTS compare:oldTS]==NSOrderedDescending;
125107
}
126108

127-
+(int) unpackageData:(NSData*) pkgData packageName:(NSString*) packageName changeGrammar:(BOOL) changeGrammar{
109+
+(int) unpackageData:(NSData*) pkgData packageName:(NSString*) packageName{
128110
NSString *path = [self rootDirectoryOfPackage:packageName];
129111
if( pkgData && [LVUtil createPath:path] ){
130112
LVZipArchive *archive = [LVZipArchive archiveWithData:pkgData];
@@ -136,7 +118,6 @@ +(int) unpackageData:(NSData*) pkgData packageName:(NSString*) packageName chang
136118
if( (newTS && oldTS==nil) || [self checkUpdateWithNewTS:newTS oldTS:oldTS] ){
137119
BOOL result = [archive unzipToDirectory:path];
138120
if( result ) {
139-
[self setPackage:packageName changeGrammar:(changeGrammar ? @"true":@"false") ];
140121
[self setPackage:packageName timestamp:newTS];
141122
return 1;
142123
}
@@ -176,8 +157,17 @@ +(NSInteger) downloadPackage:(NSString*)packageName withInfo:(NSDictionary*) inf
176157
[self doDownloadPackage:packageName withInfo:info callback:callback];
177158
return LV_DOWNLOAD_NET;
178159
}
160+
161+
if (callback){
162+
callback(info, nil, LV_DOWNLOAD_CACHE);
163+
}
179164
return LV_DOWNLOAD_CACHE;
180165
}
166+
167+
if (callback){
168+
callback(info, nil, LV_DOWNLOAD_ERROR);
169+
}
170+
181171
return LV_DOWNLOAD_ERROR;
182172
}
183173

@@ -198,36 +188,43 @@ +(BOOL) sha256Check:(NSData*) data ret:(NSString*) string{
198188
+(void) doDownloadPackage:(NSString*)pkgName withInfo:(NSDictionary*) info callback:(LVDownloadCallback) callback{
199189
LVPkgInfo* pkgInfo = [[LVPkgInfo alloc] init:info];
200190

201-
if ( callback == nil ){// 回调一定不是空
202-
callback = ^(NSDictionary* dic, NSString* erro , LVDownloadDataType dataType){
203-
};
204-
}
205-
191+
__weak typeof (self) weakSelf = self;
206192
if( pkgName.length>0 && pkgInfo.url.length>0 && pkgInfo.timestamp.length>0){
207193
[LVUtil download:pkgInfo.url callback:^(NSData *data) {
208194
// 解包过程放在主线程执行!!!!
209195
dispatch_async(dispatch_get_main_queue(), ^{
210-
if( data ){
211-
BOOL sha256OK = [self sha256Check:data ret:pkgInfo.sha256];
212-
if( sha256OK ){
213-
[self deleteFileOfPackageDownloadUrl:pkgName];// 开始解包, 删除时间戳文件
214-
if ( [self unpackageData:data packageName:pkgName changeGrammar:pkgInfo.changeGrammar]>=0 ) {
215-
// 解包成功
216-
if( [self setPackage:pkgName downloadUrl:pkgInfo.url] ){// 写标记成功
217-
callback(pkgInfo.originalDic, nil, LV_DOWNLOAD_NET);
218-
return ;
219-
}
220-
}
221-
}
222-
} else {
223-
LVError(@"[downloadPackage] error: url=%@",pkgInfo.url);
224-
}
225-
callback(pkgInfo.originalDic, @"error", LV_DOWNLOAD_ERROR);
196+
[weakSelf unpackageData:data packageName:pkgName withInfo:pkgInfo callback:callback];
226197
});
227198
}];
228199
}
229200
}
230201

202+
+(NSInteger) unpackageData:(NSData*)data packageName:(NSString*)pkgName withInfo:(LVPkgInfo*)pkgInfo callback:(LVDownloadCallback) callback{
203+
204+
if( data ){
205+
BOOL sha256OK = [self sha256Check:data ret:pkgInfo.sha256];
206+
if( sha256OK ){
207+
[self deleteFileOfPackageDownloadUrl:pkgName];// 开始解包, 删除时间戳文件
208+
209+
NSInteger result = [self unpackageData:data packageName:pkgName];
210+
if ( result >= 0 ) {
211+
// 解包成功
212+
if( [self setPackage:pkgName downloadUrl:pkgInfo.url] && callback){// 写标记成功
213+
callback(pkgInfo.originalDic, nil, LV_DOWNLOAD_NET);
214+
}
215+
216+
return result;
217+
}
218+
}
219+
} else {
220+
LVError(@"[downloadPackage] error: url=%@",pkgInfo.url);
221+
}
222+
223+
callback(pkgInfo.originalDic, @"error", LV_DOWNLOAD_ERROR);
224+
225+
return -1;
226+
}
227+
231228
+(NSData*) readLuaFile:(NSString*) fileName rsa:(LVRSA*)rsa{
232229
NSString* signfileName = [self signfileNameOfOriginFile:fileName];
233230
NSData* signData = [LVUtil dataReadFromFile:signfileName];

IOS/SDK/LuaViewSDK/Classes/lvsdk/LVGrammarChanger.h

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)