ZGApk_String.m 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // ZGApk_String.m
  3. // UUTUtils
  4. //
  5. // Created by zhuge on 2017/12/28.
  6. // Copyright © 2017年 zhuge. All rights reserved.
  7. //
  8. #import "ZGApk_String.h"
  9. #import "ZGApk.h"
  10. #define key_item_umengKey @"um_key"
  11. #define key_item_umengChannel @"um_channel"
  12. #define key_item_facebook_app_id @"facebook_app_id"
  13. @implementation ZGApk_String
  14. -(id)initWithApk:(ZGApk *)apk {
  15. self.apk = apk;
  16. self.path = [NSString stringWithFormat:@"%@/res/Values/strings.xml", self.apk.path];
  17. return self;
  18. }
  19. - (void)save {
  20. [[self.doc XMLData] writeToFile:self.path atomically:YES];
  21. }
  22. #pragma mark setter
  23. - (void)setAppName:(NSString *)appName {
  24. [self setStringValue:appName forKey:self.apk.manifest.appNameName];
  25. }
  26. - (void)setUmengKey:(NSString *)umengKey {
  27. [self setStringValue:umengKey forKey:key_item_umengKey];
  28. }
  29. - (void)setUmengChannel:(NSString *)umengChannel {
  30. [self setStringValue:umengChannel forKey:key_item_umengChannel];
  31. }
  32. - (void)setFacebookAppId:(NSString *)facebookAppId {
  33. [self setStringValue:facebookAppId forKey:key_item_facebook_app_id];
  34. }
  35. - (void)setStringValue:(NSString*)value forKey:(NSString*) key {
  36. NSArray *arr_strings = [self.root elementsForName:@"string"];
  37. for (GDataXMLElement *stringElement in arr_strings) {
  38. if ([key isEqualToString:[stringElement attributeForName:@"name"].stringValue]) {
  39. stringElement.stringValue = value;
  40. }
  41. }
  42. }
  43. #pragma mark getter
  44. - (GDataXMLDocument *)doc {
  45. if (_doc) {
  46. return _doc;
  47. } else {
  48. NSData *xmlData = [NSData dataWithContentsOfFile:self.path];
  49. self.doc = [[GDataXMLDocument alloc] initWithData:xmlData error:nil];
  50. return _doc;
  51. }
  52. }
  53. - (GDataXMLElement *)root {
  54. if (_root) {
  55. return _root;
  56. } else {
  57. return self.doc.rootElement;
  58. }
  59. }
  60. @end