diff --git a/ShadowsocksX-NG/Info.plist b/ShadowsocksX-NG/Info.plist
index 000c544..c74cb59 100644
--- a/ShadowsocksX-NG/Info.plist
+++ b/ShadowsocksX-NG/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.3.6-R8
+ 1.3.7-R8
CFBundleSignature
????
CFBundleURLTypes
@@ -48,7 +48,7 @@
CFBundleVersion
- 2
+ 1
LSApplicationCategoryType
public.app-category.utilities
LSMinimumSystemVersion
diff --git a/ShadowsocksX-NG/Utils.m b/ShadowsocksX-NG/Utils.m
index 468344b..c91e1da 100644
--- a/ShadowsocksX-NG/Utils.m
+++ b/ShadowsocksX-NG/Utils.m
@@ -137,7 +137,19 @@ NSDictionary* ParseSSURL(NSURL* url) {
}else if ([urlString hasPrefix:@"ssr://"]){
// ssr:// + base64(abc.xyz:12345:auth_sha1_v2:rc4-md5:tls1.2_ticket_auth:{base64(password)}/?obfsparam={base64(混淆参数(网址))}&remarks={base64(节点名称)})
+
+
urlString = [urlString stringByReplacingOccurrencesOfString:@"ssr://" withString:@"" options:NSAnchoredSearch range:NSMakeRange(0, urlString.length)];
+ urlString = [urlString stringByReplacingOccurrencesOfString:@"-" withString:@"+"];
+ urlString = [urlString stringByReplacingOccurrencesOfString:@"_" withString:@"/"];
+ if ([urlString length]%4!=0) {
+ int n = 4 - [urlString length]%4;
+ if (1==n) {
+ urlString = [urlString stringByAppendingString:@"="];
+ } else if (2==n) {
+ urlString = [urlString stringByAppendingString:@"=="];
+ }
+ }
NSData *data = [[NSData alloc] initWithBase64EncodedString:urlString options:0];
NSString *decodedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
urlString = decodedString;
@@ -163,12 +175,12 @@ NSDictionary* ParseSSURL(NSURL* url) {
NSRange lastParamSplit = [toSplitString rangeOfString:@"="];
if (lastParamSplit.location != NSNotFound) {
NSString *key = [toSplitString substringToIndex:lastParamSplit.location];
- NSString *value = [[NSString alloc] initWithData:[[NSData alloc] initWithBase64EncodedString:[toSplitString substringFromIndex:lastParamSplit.location+1] options:0]encoding:NSUTF8StringEncoding];
+ NSString *value = [[NSString alloc] initWithData:[[NSData alloc] initWithBase64EncodedString:[[[toSplitString stringByReplacingOccurrencesOfString:@"-" withString:@"+"] stringByReplacingOccurrencesOfString:@"_" withString:@"/"]substringFromIndex:lastParamSplit.location+1] options:0]encoding:NSUTF8StringEncoding];
// NSString *value = [toSplitString substringFromIndex:lastParamSplit.location+1];
[parserLastParamDict setValue: value forKey: key];
}
}
- NSLog(@"parserLastParamDict is %@",parserLastParamDict);
+// NSLog(@"parserLastParamDict is %@",parserLastParamDict);
//后面已经parser完成,接下来需要解析到profile里面
//abc.xyz:12345:auth_sha1_v2:rc4-md5:tls1.2_ticket_auth:{base64(password)}
@@ -217,6 +229,7 @@ NSDictionary* ParseSSURL(NSURL* url) {
@"ssrObfsParam":ssrObfsParam,
@"ssrProtocol":ssrProtocol,
@"ssrProtocolParam":ssrProtocolParam,
+ @"Remark":remarks,
};
}
}