├── 效果图.png ├── EncryptApp ├── EncryptApp │ ├── Assets.xcassets │ │ ├── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── ViewController.h │ ├── AppDelegate.h │ ├── ViewController.m │ ├── main.m │ ├── AppDelegate.m │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ └── Info.plist ├── EncryptApp.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── project.pbxproj ├── EncryptAppTests │ ├── Info.plist │ └── EncryptAppTests.m └── EncryptAppUITests │ ├── Info.plist │ └── EncryptAppUITests.m ├── libAllFramework.framework ├── Info.plist ├── libAllFramework ├── Modules │ └── module.modulemap ├── Headers │ └── libAllFramework.h └── _CodeSignature │ └── CodeResources ├── libAllFramework ├── libAllFramework.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── project.pbxproj ├── libAllFramework │ ├── loadAll.h │ ├── libAllFramework.h │ ├── Info.plist │ └── loadAll.m └── libAllFrameworkTests │ ├── Info.plist │ └── libAllFrameworkTests.m ├── README.md └── .gitignore /效果图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dengbin9009/DecryptApp/HEAD/效果图.png -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /libAllFramework.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dengbin9009/DecryptApp/HEAD/libAllFramework.framework/Info.plist -------------------------------------------------------------------------------- /libAllFramework.framework/libAllFramework: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dengbin9009/DecryptApp/HEAD/libAllFramework.framework/libAllFramework -------------------------------------------------------------------------------- /libAllFramework.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module libAllFramework { 2 | umbrella header "libAllFramework.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // EncryptApp 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework/loadAll.h: -------------------------------------------------------------------------------- 1 | // 2 | // loadAll.h 3 | // libAllFramework 4 | // 5 | // Created by ppd-0202000710 on 2019/11/27. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface loadAll : NSObject 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // EncryptApp 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // EncryptApp 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view. 20 | } 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // EncryptApp 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | NSString * appDelegateClassName; 14 | @autoreleasepool { 15 | // Setup code that might create autoreleased objects goes here. 16 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 17 | } 18 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 19 | } 20 | -------------------------------------------------------------------------------- /libAllFramework.framework/Headers/libAllFramework.h: -------------------------------------------------------------------------------- 1 | // 2 | // libAllFramework.h 3 | // libAllFramework 4 | // 5 | // Created by ppd-0202000710 on 2019/11/27. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for libAllFramework. 12 | FOUNDATION_EXPORT double libAllFrameworkVersionNumber; 13 | 14 | //! Project version string for libAllFramework. 15 | FOUNDATION_EXPORT const unsigned char libAllFrameworkVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework/libAllFramework.h: -------------------------------------------------------------------------------- 1 | // 2 | // libAllFramework.h 3 | // libAllFramework 4 | // 5 | // Created by ppd-0202000710 on 2019/11/27. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for libAllFramework. 12 | FOUNDATION_EXPORT double libAllFrameworkVersionNumber; 13 | 14 | //! Project version string for libAllFramework. 15 | FOUNDATION_EXPORT const unsigned char libAllFrameworkVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /EncryptApp/EncryptAppTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /EncryptApp/EncryptAppUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /libAllFramework/libAllFrameworkTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // EncryptApp 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | self.window = [[UIWindow alloc] init]; 21 | self.window.frame = [UIScreen mainScreen].bounds; 22 | UIStoryboard* s = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 23 | id VC = [s instantiateInitialViewController]; 24 | self.window.rootViewController = VC; 25 | [self.window makeKeyAndVisible]; 26 | return YES; 27 | } 28 | 29 | 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DecryptApp 2 | 动态砸壳,主动加载所有动态库(framework,dylib) 3 | 4 | # 对应文章 5 | [iOS逆向(11)-砸壳原理剖析,主动加载所有framework](https://juejin.im/post/5dde5cb1e51d4542362f6e0e) 6 | 7 | 其中包含主动加载所有framework的framework,只需利用`DYLD_INSERT_LIBRARIES`注入即可,解决砸壳时,有部分动态库不启动的问题。 8 | 9 | # 使用方式: 10 | 1、下载本工程到本地 11 | 12 | 2、如果你的手机是arm64架构的,可以直接使用本工程下的libAllFramework.framework。如果不是,就需要xcode连接手机,Build后获取对应的framework 13 | 14 | 3、将libAllFramework.framework拷贝到候机的home目录下 15 | ``` 16 | > scp -r -P 12345 libAllFramework.framework root@localhost:~/ 17 | ``` 18 | 19 | 4、利用```DYLD_INSERT_LIBRARIES```执行```libAllFramework``` 20 | 21 | ``` 22 | // 后面的地址可以利用ps -ax | greh Facebook 的命令查询得到,前提是App已经正常启动 23 | > DYLD_INSERT_LIBRARIES=libAllFramework.framework/libAllFramework /var/containers/Bundle/Application/B4217EF2-9F16-453F-B1DE-9EC5D0E69B60/Facebook.app/Facebook 24 | ``` 25 | 26 | 27 | ![效果图](https://github.com/dengbin9009/DecryptApp/blob/master/%E6%95%88%E6%9E%9C%E5%9B%BE.png?raw=true) 28 | -------------------------------------------------------------------------------- /EncryptApp/EncryptAppTests/EncryptAppTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // EncryptAppTests.m 3 | // EncryptAppTests 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EncryptAppTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation EncryptAppTests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | } 20 | 21 | - (void)tearDown { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | - (void)testExample { 26 | // This is an example of a functional test case. 27 | // Use XCTAssert and related functions to verify your tests produce the correct results. 28 | } 29 | 30 | - (void)testPerformanceExample { 31 | // This is an example of a performance test case. 32 | [self measureBlock:^{ 33 | // Put the code you want to measure the time of here. 34 | }]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /libAllFramework/libAllFrameworkTests/libAllFrameworkTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // libAllFrameworkTests.m 3 | // libAllFrameworkTests 4 | // 5 | // Created by ppd-0202000710 on 2019/11/27. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface libAllFrameworkTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation libAllFrameworkTests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | } 20 | 21 | - (void)tearDown { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | - (void)testExample { 26 | // This is an example of a functional test case. 27 | // Use XCTAssert and related functions to verify your tests produce the correct results. 28 | } 29 | 30 | - (void)testPerformanceExample { 31 | // This is an example of a performance test case. 32 | [self measureBlock:^{ 33 | // Put the code you want to measure the time of here. 34 | }]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | # CocoaPods 32 | # 33 | # We recommend against adding the Pods directory to your .gitignore. However 34 | # you should judge for yourself, the pros and cons are mentioned at: 35 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 36 | # 37 | # Pods/ 38 | 39 | # Carthage 40 | # 41 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 42 | # Carthage/Checkouts 43 | 44 | Carthage/Build 45 | 46 | # fastlane 47 | # 48 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 49 | # screenshots whenever they are needed. 50 | # For more information about the recommended setup visit: 51 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 52 | 53 | fastlane/report.xml 54 | fastlane/Preview.html 55 | fastlane/screenshots/**/*.png 56 | fastlane/test_output 57 | 58 | # Code Injection 59 | # 60 | # After new code Injection tools there's a generated folder /iOSInjectionProject 61 | # https://github.com/johnno1962/injectionforxcode 62 | 63 | iOSInjectionProject/ 64 | -------------------------------------------------------------------------------- /EncryptApp/EncryptAppUITests/EncryptAppUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // EncryptAppUITests.m 3 | // EncryptAppUITests 4 | // 5 | // Created by ppd-0202000710 on 2019/11/26. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EncryptAppUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation EncryptAppUITests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | 20 | // In UI tests it is usually best to stop immediately when a failure occurs. 21 | self.continueAfterFailure = NO; 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | - (void)tearDown { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | } 29 | 30 | - (void)testExample { 31 | // UI tests must launch the application that they test. 32 | XCUIApplication *app = [[XCUIApplication alloc] init]; 33 | [app launch]; 34 | 35 | // Use recording to get started writing UI tests. 36 | // Use XCTAssert and related functions to verify your tests produce the correct results. 37 | } 38 | 39 | - (void)testLaunchPerformance { 40 | if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { 41 | // This measures how long it takes to launch your application. 42 | [self measureWithMetrics:@[XCTOSSignpostMetric.applicationLaunchMetric] block:^{ 43 | [[[XCUIApplication alloc] init] launch]; 44 | }]; 45 | } 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationSceneManifest 24 | 25 | UIApplicationSupportsMultipleScenes 26 | 27 | UISceneConfigurations 28 | 29 | UIWindowSceneSessionRoleApplication 30 | 31 | 32 | UISceneConfigurationName 33 | Default Configuration 34 | UISceneDelegateClassName 35 | SceneDelegate 36 | UISceneStoryboardFile 37 | Main 38 | 39 | 40 | 41 | 42 | UILaunchStoryboardName 43 | LaunchScreen 44 | UIMainStoryboardFile 45 | Main 46 | UIRequiredDeviceCapabilities 47 | 48 | armv7 49 | 50 | UISupportedInterfaceOrientations 51 | 52 | UIInterfaceOrientationPortrait 53 | UIInterfaceOrientationLandscapeLeft 54 | UIInterfaceOrientationLandscapeRight 55 | 56 | UISupportedInterfaceOrientations~ipad 57 | 58 | UIInterfaceOrientationPortrait 59 | UIInterfaceOrientationPortraitUpsideDown 60 | UIInterfaceOrientationLandscapeLeft 61 | UIInterfaceOrientationLandscapeRight 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /libAllFramework.framework/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Headers/libAllFramework.h 8 | 9 | IDCjTzBlRfZQgv9TT00/WwiiPXw= 10 | 11 | Info.plist 12 | 13 | azuDxcQlUE8DnZTX00uZ31Q0HQo= 14 | 15 | Modules/module.modulemap 16 | 17 | TXZuJJ8mr8a5bn4nJ23x8+LUNVc= 18 | 19 | 20 | files2 21 | 22 | Headers/libAllFramework.h 23 | 24 | hash 25 | 26 | IDCjTzBlRfZQgv9TT00/WwiiPXw= 27 | 28 | hash2 29 | 30 | PKp5WhZ/dhbNtQPhMp9yUHRaTxp5w6oGgkxJCil0q2A= 31 | 32 | 33 | Modules/module.modulemap 34 | 35 | hash 36 | 37 | TXZuJJ8mr8a5bn4nJ23x8+LUNVc= 38 | 39 | hash2 40 | 41 | YOnzea5xzn9JFJIxJmDuTOCx4EKkpMqu++ulxWc7BPQ= 42 | 43 | 44 | 45 | rules 46 | 47 | ^.* 48 | 49 | ^.*\.lproj/ 50 | 51 | optional 52 | 53 | weight 54 | 1000 55 | 56 | ^.*\.lproj/locversion.plist$ 57 | 58 | omit 59 | 60 | weight 61 | 1100 62 | 63 | ^Base\.lproj/ 64 | 65 | weight 66 | 1010 67 | 68 | ^version.plist$ 69 | 70 | 71 | rules2 72 | 73 | .*\.dSYM($|/) 74 | 75 | weight 76 | 11 77 | 78 | ^(.*/)?\.DS_Store$ 79 | 80 | omit 81 | 82 | weight 83 | 2000 84 | 85 | ^.* 86 | 87 | ^.*\.lproj/ 88 | 89 | optional 90 | 91 | weight 92 | 1000 93 | 94 | ^.*\.lproj/locversion.plist$ 95 | 96 | omit 97 | 98 | weight 99 | 1100 100 | 101 | ^Base\.lproj/ 102 | 103 | weight 104 | 1010 105 | 106 | ^Info\.plist$ 107 | 108 | omit 109 | 110 | weight 111 | 20 112 | 113 | ^PkgInfo$ 114 | 115 | omit 116 | 117 | weight 118 | 20 119 | 120 | ^embedded\.provisionprofile$ 121 | 122 | weight 123 | 20 124 | 125 | ^version\.plist$ 126 | 127 | weight 128 | 20 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework/loadAll.m: -------------------------------------------------------------------------------- 1 | // 2 | // loadAll.m 3 | // libAllFramework 4 | // 5 | // Created by ppd-0202000710 on 2019/11/27. 6 | // Copyright © 2019 FengYang. All rights reserved. 7 | // 8 | 9 | #import "loadAll.h" 10 | #import 11 | #import 12 | #import 13 | 14 | @implementation loadAll 15 | 16 | static NSDictionary *FYLoadLibsInDirectoryWithLoadedDylibPaths(NSString *directoryPath, NSArray *loadedDylibPaths) 17 | { 18 | NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; 19 | NSFileManager *fm = NSFileManager.defaultManager; 20 | for (NSString *fileName in [fm contentsOfDirectoryAtPath:directoryPath error:nil]) { 21 | NSString *filePath = [directoryPath stringByAppendingPathComponent:fileName]; 22 | if ([fileName hasSuffix:@".framework"]) { 23 | NSBundle *bundle = [NSBundle bundleWithPath:filePath]; 24 | if (bundle.isLoaded) { 25 | NSLog(@"loadFramework: : %@ load bundle success", fileName); 26 | } else { 27 | if ([bundle load]) { 28 | NSLog(@"loadFramework: : %@ load bundle success", fileName); 29 | } else { 30 | NSLog(@"loadFramework: : %@ load bundle failed", fileName); 31 | } 32 | } 33 | dic[fileName] = @""; 34 | } else if ([fileName hasSuffix:@".bundle"] || 35 | [fileName hasSuffix:@".momd"] || 36 | [fileName hasSuffix:@".strings"] || 37 | [fileName hasSuffix:@".appex"] || 38 | [fileName hasSuffix:@".app"] || 39 | [fileName hasSuffix:@".lproj"] || 40 | [fileName hasSuffix:@".storyboardc"]) { 41 | dic[fileName] = @""; 42 | } 43 | else { 44 | BOOL isDirectory; 45 | [fm fileExistsAtPath:filePath isDirectory:&isDirectory]; 46 | if (isDirectory) { 47 | dic[fileName] = FYLoadLibsInDirectoryWithLoadedDylibPaths(filePath, loadedDylibPaths); 48 | } else { 49 | if ([fileName hasSuffix:@".dylib"]) { 50 | if ([loadedDylibPaths containsObject:filePath]) { 51 | NSLog(@"loadFramework: : %@ load bundle success", fileName); 52 | } else { 53 | if (dlopen(filePath.UTF8String, RTLD_GLOBAL | RTLD_LAZY)) { 54 | NSLog(@"loadFramework: : %@ load bundle success", fileName); 55 | } else { 56 | NSLog(@"loadFramework: : %@ load bundle failed", fileName); 57 | } 58 | } 59 | } 60 | dic[fileName] = @""; 61 | } 62 | } 63 | } 64 | 65 | return dic; 66 | } 67 | 68 | + (void)load{ 69 | @autoreleasepool 70 | { 71 | NSString *appID = NSBundle.mainBundle.bundleIdentifier; 72 | if (!appID) { 73 | appID = NSProcessInfo.processInfo.processName;//A Fix By https://github.com/radj 74 | NSLog(@"loadFramework: : Process has no bundle ID, use process name instead: %@", appID); 75 | } 76 | NSLog(@"loadFramework: : %@ detected", appID); 77 | 78 | [NSBundle allFrameworks]; // 这句执行完所需framework应该都加载了 79 | 80 | NSMutableArray *loadedDylibPaths = [[NSMutableArray alloc] init]; 81 | NSString *appPath = NSBundle.mainBundle.bundlePath; 82 | uint32_t count = _dyld_image_count(); 83 | NSLog(@"loadFramework: : 一共有%d个image", count); 84 | for (uint32_t i = 0; i < count; i++) { 85 | NSString *dylibPath = @(_dyld_get_image_name(i)); 86 | if ([dylibPath hasPrefix:appPath]) { 87 | [loadedDylibPaths addObject:dylibPath]; 88 | } 89 | } 90 | NSDictionary *dic = FYLoadLibsInDirectoryWithLoadedDylibPaths(appPath, loadedDylibPaths); 91 | NSLog(@"loadFramework: : File list\n%@", [dic.description stringByReplacingOccurrencesOfString:@" = \"\"" withString:@""]); 92 | } 93 | } 94 | 95 | @end 96 | 97 | -------------------------------------------------------------------------------- /libAllFramework/libAllFramework.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 285895C2238E7DFB00DC8D24 /* libAllFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 285895B8238E7DFB00DC8D24 /* libAllFramework.framework */; }; 11 | 285895C7238E7DFB00DC8D24 /* libAllFrameworkTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 285895C6238E7DFB00DC8D24 /* libAllFrameworkTests.m */; }; 12 | 285895C9238E7DFB00DC8D24 /* libAllFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 285895BB238E7DFB00DC8D24 /* libAllFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 285895D4238E7E0600DC8D24 /* loadAll.h in Headers */ = {isa = PBXBuildFile; fileRef = 285895D2238E7E0600DC8D24 /* loadAll.h */; }; 14 | 285895D5238E7E0600DC8D24 /* loadAll.m in Sources */ = {isa = PBXBuildFile; fileRef = 285895D3238E7E0600DC8D24 /* loadAll.m */; }; 15 | /* End PBXBuildFile section */ 16 | 17 | /* Begin PBXContainerItemProxy section */ 18 | 285895C3238E7DFB00DC8D24 /* PBXContainerItemProxy */ = { 19 | isa = PBXContainerItemProxy; 20 | containerPortal = 285895AF238E7DFB00DC8D24 /* Project object */; 21 | proxyType = 1; 22 | remoteGlobalIDString = 285895B7238E7DFB00DC8D24; 23 | remoteInfo = libAllFramework; 24 | }; 25 | /* End PBXContainerItemProxy section */ 26 | 27 | /* Begin PBXFileReference section */ 28 | 285895B8238E7DFB00DC8D24 /* libAllFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libAllFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 29 | 285895BB238E7DFB00DC8D24 /* libAllFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libAllFramework.h; sourceTree = ""; }; 30 | 285895BC238E7DFB00DC8D24 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 31 | 285895C1238E7DFB00DC8D24 /* libAllFrameworkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = libAllFrameworkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 285895C6238E7DFB00DC8D24 /* libAllFrameworkTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = libAllFrameworkTests.m; sourceTree = ""; }; 33 | 285895C8238E7DFB00DC8D24 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 34 | 285895D2238E7E0600DC8D24 /* loadAll.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = loadAll.h; sourceTree = ""; }; 35 | 285895D3238E7E0600DC8D24 /* loadAll.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = loadAll.m; sourceTree = ""; }; 36 | /* End PBXFileReference section */ 37 | 38 | /* Begin PBXFrameworksBuildPhase section */ 39 | 285895B5238E7DFB00DC8D24 /* Frameworks */ = { 40 | isa = PBXFrameworksBuildPhase; 41 | buildActionMask = 2147483647; 42 | files = ( 43 | ); 44 | runOnlyForDeploymentPostprocessing = 0; 45 | }; 46 | 285895BE238E7DFB00DC8D24 /* Frameworks */ = { 47 | isa = PBXFrameworksBuildPhase; 48 | buildActionMask = 2147483647; 49 | files = ( 50 | 285895C2238E7DFB00DC8D24 /* libAllFramework.framework in Frameworks */, 51 | ); 52 | runOnlyForDeploymentPostprocessing = 0; 53 | }; 54 | /* End PBXFrameworksBuildPhase section */ 55 | 56 | /* Begin PBXGroup section */ 57 | 285895AE238E7DFB00DC8D24 = { 58 | isa = PBXGroup; 59 | children = ( 60 | 285895BA238E7DFB00DC8D24 /* libAllFramework */, 61 | 285895C5238E7DFB00DC8D24 /* libAllFrameworkTests */, 62 | 285895B9238E7DFB00DC8D24 /* Products */, 63 | ); 64 | sourceTree = ""; 65 | }; 66 | 285895B9238E7DFB00DC8D24 /* Products */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 285895B8238E7DFB00DC8D24 /* libAllFramework.framework */, 70 | 285895C1238E7DFB00DC8D24 /* libAllFrameworkTests.xctest */, 71 | ); 72 | name = Products; 73 | sourceTree = ""; 74 | }; 75 | 285895BA238E7DFB00DC8D24 /* libAllFramework */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 285895BB238E7DFB00DC8D24 /* libAllFramework.h */, 79 | 285895D2238E7E0600DC8D24 /* loadAll.h */, 80 | 285895D3238E7E0600DC8D24 /* loadAll.m */, 81 | 285895BC238E7DFB00DC8D24 /* Info.plist */, 82 | ); 83 | path = libAllFramework; 84 | sourceTree = ""; 85 | }; 86 | 285895C5238E7DFB00DC8D24 /* libAllFrameworkTests */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 285895C6238E7DFB00DC8D24 /* libAllFrameworkTests.m */, 90 | 285895C8238E7DFB00DC8D24 /* Info.plist */, 91 | ); 92 | path = libAllFrameworkTests; 93 | sourceTree = ""; 94 | }; 95 | /* End PBXGroup section */ 96 | 97 | /* Begin PBXHeadersBuildPhase section */ 98 | 285895B3238E7DFB00DC8D24 /* Headers */ = { 99 | isa = PBXHeadersBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | 285895D4238E7E0600DC8D24 /* loadAll.h in Headers */, 103 | 285895C9238E7DFB00DC8D24 /* libAllFramework.h in Headers */, 104 | ); 105 | runOnlyForDeploymentPostprocessing = 0; 106 | }; 107 | /* End PBXHeadersBuildPhase section */ 108 | 109 | /* Begin PBXNativeTarget section */ 110 | 285895B7238E7DFB00DC8D24 /* libAllFramework */ = { 111 | isa = PBXNativeTarget; 112 | buildConfigurationList = 285895CC238E7DFB00DC8D24 /* Build configuration list for PBXNativeTarget "libAllFramework" */; 113 | buildPhases = ( 114 | 285895B3238E7DFB00DC8D24 /* Headers */, 115 | 285895B4238E7DFB00DC8D24 /* Sources */, 116 | 285895B5238E7DFB00DC8D24 /* Frameworks */, 117 | 285895B6238E7DFB00DC8D24 /* Resources */, 118 | ); 119 | buildRules = ( 120 | ); 121 | dependencies = ( 122 | ); 123 | name = libAllFramework; 124 | productName = libAllFramework; 125 | productReference = 285895B8238E7DFB00DC8D24 /* libAllFramework.framework */; 126 | productType = "com.apple.product-type.framework"; 127 | }; 128 | 285895C0238E7DFB00DC8D24 /* libAllFrameworkTests */ = { 129 | isa = PBXNativeTarget; 130 | buildConfigurationList = 285895CF238E7DFB00DC8D24 /* Build configuration list for PBXNativeTarget "libAllFrameworkTests" */; 131 | buildPhases = ( 132 | 285895BD238E7DFB00DC8D24 /* Sources */, 133 | 285895BE238E7DFB00DC8D24 /* Frameworks */, 134 | 285895BF238E7DFB00DC8D24 /* Resources */, 135 | ); 136 | buildRules = ( 137 | ); 138 | dependencies = ( 139 | 285895C4238E7DFB00DC8D24 /* PBXTargetDependency */, 140 | ); 141 | name = libAllFrameworkTests; 142 | productName = libAllFrameworkTests; 143 | productReference = 285895C1238E7DFB00DC8D24 /* libAllFrameworkTests.xctest */; 144 | productType = "com.apple.product-type.bundle.unit-test"; 145 | }; 146 | /* End PBXNativeTarget section */ 147 | 148 | /* Begin PBXProject section */ 149 | 285895AF238E7DFB00DC8D24 /* Project object */ = { 150 | isa = PBXProject; 151 | attributes = { 152 | LastUpgradeCheck = 1120; 153 | ORGANIZATIONNAME = FengYang; 154 | TargetAttributes = { 155 | 285895B7238E7DFB00DC8D24 = { 156 | CreatedOnToolsVersion = 11.2.1; 157 | }; 158 | 285895C0238E7DFB00DC8D24 = { 159 | CreatedOnToolsVersion = 11.2.1; 160 | }; 161 | }; 162 | }; 163 | buildConfigurationList = 285895B2238E7DFB00DC8D24 /* Build configuration list for PBXProject "libAllFramework" */; 164 | compatibilityVersion = "Xcode 9.3"; 165 | developmentRegion = en; 166 | hasScannedForEncodings = 0; 167 | knownRegions = ( 168 | en, 169 | Base, 170 | ); 171 | mainGroup = 285895AE238E7DFB00DC8D24; 172 | productRefGroup = 285895B9238E7DFB00DC8D24 /* Products */; 173 | projectDirPath = ""; 174 | projectRoot = ""; 175 | targets = ( 176 | 285895B7238E7DFB00DC8D24 /* libAllFramework */, 177 | 285895C0238E7DFB00DC8D24 /* libAllFrameworkTests */, 178 | ); 179 | }; 180 | /* End PBXProject section */ 181 | 182 | /* Begin PBXResourcesBuildPhase section */ 183 | 285895B6238E7DFB00DC8D24 /* Resources */ = { 184 | isa = PBXResourcesBuildPhase; 185 | buildActionMask = 2147483647; 186 | files = ( 187 | ); 188 | runOnlyForDeploymentPostprocessing = 0; 189 | }; 190 | 285895BF238E7DFB00DC8D24 /* Resources */ = { 191 | isa = PBXResourcesBuildPhase; 192 | buildActionMask = 2147483647; 193 | files = ( 194 | ); 195 | runOnlyForDeploymentPostprocessing = 0; 196 | }; 197 | /* End PBXResourcesBuildPhase section */ 198 | 199 | /* Begin PBXSourcesBuildPhase section */ 200 | 285895B4238E7DFB00DC8D24 /* Sources */ = { 201 | isa = PBXSourcesBuildPhase; 202 | buildActionMask = 2147483647; 203 | files = ( 204 | 285895D5238E7E0600DC8D24 /* loadAll.m in Sources */, 205 | ); 206 | runOnlyForDeploymentPostprocessing = 0; 207 | }; 208 | 285895BD238E7DFB00DC8D24 /* Sources */ = { 209 | isa = PBXSourcesBuildPhase; 210 | buildActionMask = 2147483647; 211 | files = ( 212 | 285895C7238E7DFB00DC8D24 /* libAllFrameworkTests.m in Sources */, 213 | ); 214 | runOnlyForDeploymentPostprocessing = 0; 215 | }; 216 | /* End PBXSourcesBuildPhase section */ 217 | 218 | /* Begin PBXTargetDependency section */ 219 | 285895C4238E7DFB00DC8D24 /* PBXTargetDependency */ = { 220 | isa = PBXTargetDependency; 221 | target = 285895B7238E7DFB00DC8D24 /* libAllFramework */; 222 | targetProxy = 285895C3238E7DFB00DC8D24 /* PBXContainerItemProxy */; 223 | }; 224 | /* End PBXTargetDependency section */ 225 | 226 | /* Begin XCBuildConfiguration section */ 227 | 285895CA238E7DFB00DC8D24 /* Debug */ = { 228 | isa = XCBuildConfiguration; 229 | buildSettings = { 230 | ALWAYS_SEARCH_USER_PATHS = NO; 231 | CLANG_ANALYZER_NONNULL = YES; 232 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 233 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 234 | CLANG_CXX_LIBRARY = "libc++"; 235 | CLANG_ENABLE_MODULES = YES; 236 | CLANG_ENABLE_OBJC_ARC = YES; 237 | CLANG_ENABLE_OBJC_WEAK = YES; 238 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 239 | CLANG_WARN_BOOL_CONVERSION = YES; 240 | CLANG_WARN_COMMA = YES; 241 | CLANG_WARN_CONSTANT_CONVERSION = YES; 242 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 243 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 244 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 245 | CLANG_WARN_EMPTY_BODY = YES; 246 | CLANG_WARN_ENUM_CONVERSION = YES; 247 | CLANG_WARN_INFINITE_RECURSION = YES; 248 | CLANG_WARN_INT_CONVERSION = YES; 249 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 250 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 251 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 252 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 253 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 254 | CLANG_WARN_STRICT_PROTOTYPES = YES; 255 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 256 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 257 | CLANG_WARN_UNREACHABLE_CODE = YES; 258 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 259 | COPY_PHASE_STRIP = NO; 260 | CURRENT_PROJECT_VERSION = 1; 261 | DEBUG_INFORMATION_FORMAT = dwarf; 262 | ENABLE_STRICT_OBJC_MSGSEND = YES; 263 | ENABLE_TESTABILITY = YES; 264 | GCC_C_LANGUAGE_STANDARD = gnu11; 265 | GCC_DYNAMIC_NO_PIC = NO; 266 | GCC_NO_COMMON_BLOCKS = YES; 267 | GCC_OPTIMIZATION_LEVEL = 0; 268 | GCC_PREPROCESSOR_DEFINITIONS = ( 269 | "DEBUG=1", 270 | "$(inherited)", 271 | ); 272 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 273 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 274 | GCC_WARN_UNDECLARED_SELECTOR = YES; 275 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 276 | GCC_WARN_UNUSED_FUNCTION = YES; 277 | GCC_WARN_UNUSED_VARIABLE = YES; 278 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 279 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 280 | MTL_FAST_MATH = YES; 281 | ONLY_ACTIVE_ARCH = YES; 282 | SDKROOT = iphoneos; 283 | VERSIONING_SYSTEM = "apple-generic"; 284 | VERSION_INFO_PREFIX = ""; 285 | }; 286 | name = Debug; 287 | }; 288 | 285895CB238E7DFB00DC8D24 /* Release */ = { 289 | isa = XCBuildConfiguration; 290 | buildSettings = { 291 | ALWAYS_SEARCH_USER_PATHS = NO; 292 | CLANG_ANALYZER_NONNULL = YES; 293 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 294 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 295 | CLANG_CXX_LIBRARY = "libc++"; 296 | CLANG_ENABLE_MODULES = YES; 297 | CLANG_ENABLE_OBJC_ARC = YES; 298 | CLANG_ENABLE_OBJC_WEAK = YES; 299 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 300 | CLANG_WARN_BOOL_CONVERSION = YES; 301 | CLANG_WARN_COMMA = YES; 302 | CLANG_WARN_CONSTANT_CONVERSION = YES; 303 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 304 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 305 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 306 | CLANG_WARN_EMPTY_BODY = YES; 307 | CLANG_WARN_ENUM_CONVERSION = YES; 308 | CLANG_WARN_INFINITE_RECURSION = YES; 309 | CLANG_WARN_INT_CONVERSION = YES; 310 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 311 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 312 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 313 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 314 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 315 | CLANG_WARN_STRICT_PROTOTYPES = YES; 316 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 317 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 318 | CLANG_WARN_UNREACHABLE_CODE = YES; 319 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 320 | COPY_PHASE_STRIP = NO; 321 | CURRENT_PROJECT_VERSION = 1; 322 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 323 | ENABLE_NS_ASSERTIONS = NO; 324 | ENABLE_STRICT_OBJC_MSGSEND = YES; 325 | GCC_C_LANGUAGE_STANDARD = gnu11; 326 | GCC_NO_COMMON_BLOCKS = YES; 327 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 328 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 329 | GCC_WARN_UNDECLARED_SELECTOR = YES; 330 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 331 | GCC_WARN_UNUSED_FUNCTION = YES; 332 | GCC_WARN_UNUSED_VARIABLE = YES; 333 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 334 | MTL_ENABLE_DEBUG_INFO = NO; 335 | MTL_FAST_MATH = YES; 336 | SDKROOT = iphoneos; 337 | VALIDATE_PRODUCT = YES; 338 | VERSIONING_SYSTEM = "apple-generic"; 339 | VERSION_INFO_PREFIX = ""; 340 | }; 341 | name = Release; 342 | }; 343 | 285895CD238E7DFB00DC8D24 /* Debug */ = { 344 | isa = XCBuildConfiguration; 345 | buildSettings = { 346 | CODE_SIGN_STYLE = Automatic; 347 | DEFINES_MODULE = YES; 348 | DEVELOPMENT_TEAM = NXRGZY5DX4; 349 | DYLIB_COMPATIBILITY_VERSION = 1; 350 | DYLIB_CURRENT_VERSION = 1; 351 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 352 | INFOPLIST_FILE = libAllFramework/Info.plist; 353 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 354 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 355 | LD_RUNPATH_SEARCH_PATHS = ( 356 | "$(inherited)", 357 | "@executable_path/Frameworks", 358 | "@loader_path/Frameworks", 359 | ); 360 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.libAllFramework; 361 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 362 | SKIP_INSTALL = YES; 363 | TARGETED_DEVICE_FAMILY = "1,2"; 364 | }; 365 | name = Debug; 366 | }; 367 | 285895CE238E7DFB00DC8D24 /* Release */ = { 368 | isa = XCBuildConfiguration; 369 | buildSettings = { 370 | CODE_SIGN_STYLE = Automatic; 371 | DEFINES_MODULE = YES; 372 | DEVELOPMENT_TEAM = NXRGZY5DX4; 373 | DYLIB_COMPATIBILITY_VERSION = 1; 374 | DYLIB_CURRENT_VERSION = 1; 375 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 376 | INFOPLIST_FILE = libAllFramework/Info.plist; 377 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 378 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 379 | LD_RUNPATH_SEARCH_PATHS = ( 380 | "$(inherited)", 381 | "@executable_path/Frameworks", 382 | "@loader_path/Frameworks", 383 | ); 384 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.libAllFramework; 385 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 386 | SKIP_INSTALL = YES; 387 | TARGETED_DEVICE_FAMILY = "1,2"; 388 | }; 389 | name = Release; 390 | }; 391 | 285895D0238E7DFB00DC8D24 /* Debug */ = { 392 | isa = XCBuildConfiguration; 393 | buildSettings = { 394 | CODE_SIGN_STYLE = Automatic; 395 | DEVELOPMENT_TEAM = NXRGZY5DX4; 396 | INFOPLIST_FILE = libAllFrameworkTests/Info.plist; 397 | LD_RUNPATH_SEARCH_PATHS = ( 398 | "$(inherited)", 399 | "@executable_path/Frameworks", 400 | "@loader_path/Frameworks", 401 | ); 402 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.libAllFrameworkTests; 403 | PRODUCT_NAME = "$(TARGET_NAME)"; 404 | TARGETED_DEVICE_FAMILY = "1,2"; 405 | }; 406 | name = Debug; 407 | }; 408 | 285895D1238E7DFB00DC8D24 /* Release */ = { 409 | isa = XCBuildConfiguration; 410 | buildSettings = { 411 | CODE_SIGN_STYLE = Automatic; 412 | DEVELOPMENT_TEAM = NXRGZY5DX4; 413 | INFOPLIST_FILE = libAllFrameworkTests/Info.plist; 414 | LD_RUNPATH_SEARCH_PATHS = ( 415 | "$(inherited)", 416 | "@executable_path/Frameworks", 417 | "@loader_path/Frameworks", 418 | ); 419 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.libAllFrameworkTests; 420 | PRODUCT_NAME = "$(TARGET_NAME)"; 421 | TARGETED_DEVICE_FAMILY = "1,2"; 422 | }; 423 | name = Release; 424 | }; 425 | /* End XCBuildConfiguration section */ 426 | 427 | /* Begin XCConfigurationList section */ 428 | 285895B2238E7DFB00DC8D24 /* Build configuration list for PBXProject "libAllFramework" */ = { 429 | isa = XCConfigurationList; 430 | buildConfigurations = ( 431 | 285895CA238E7DFB00DC8D24 /* Debug */, 432 | 285895CB238E7DFB00DC8D24 /* Release */, 433 | ); 434 | defaultConfigurationIsVisible = 0; 435 | defaultConfigurationName = Release; 436 | }; 437 | 285895CC238E7DFB00DC8D24 /* Build configuration list for PBXNativeTarget "libAllFramework" */ = { 438 | isa = XCConfigurationList; 439 | buildConfigurations = ( 440 | 285895CD238E7DFB00DC8D24 /* Debug */, 441 | 285895CE238E7DFB00DC8D24 /* Release */, 442 | ); 443 | defaultConfigurationIsVisible = 0; 444 | defaultConfigurationName = Release; 445 | }; 446 | 285895CF238E7DFB00DC8D24 /* Build configuration list for PBXNativeTarget "libAllFrameworkTests" */ = { 447 | isa = XCConfigurationList; 448 | buildConfigurations = ( 449 | 285895D0238E7DFB00DC8D24 /* Debug */, 450 | 285895D1238E7DFB00DC8D24 /* Release */, 451 | ); 452 | defaultConfigurationIsVisible = 0; 453 | defaultConfigurationName = Release; 454 | }; 455 | /* End XCConfigurationList section */ 456 | }; 457 | rootObject = 285895AF238E7DFB00DC8D24 /* Project object */; 458 | } 459 | -------------------------------------------------------------------------------- /EncryptApp/EncryptApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 28F012BA238D0A7C005173F3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F012B9238D0A7C005173F3 /* AppDelegate.m */; }; 11 | 28F012C0238D0A7C005173F3 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F012BF238D0A7C005173F3 /* ViewController.m */; }; 12 | 28F012C3238D0A7C005173F3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 28F012C1238D0A7C005173F3 /* Main.storyboard */; }; 13 | 28F012C5238D0A7E005173F3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 28F012C4238D0A7E005173F3 /* Assets.xcassets */; }; 14 | 28F012C8238D0A7E005173F3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 28F012C6238D0A7E005173F3 /* LaunchScreen.storyboard */; }; 15 | 28F012CB238D0A7E005173F3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F012CA238D0A7E005173F3 /* main.m */; }; 16 | 28F012D5238D0A7E005173F3 /* EncryptAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F012D4238D0A7E005173F3 /* EncryptAppTests.m */; }; 17 | 28F012E0238D0A7E005173F3 /* EncryptAppUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F012DF238D0A7E005173F3 /* EncryptAppUITests.m */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 28F012D1238D0A7E005173F3 /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 28F012AD238D0A7C005173F3 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 28F012B4238D0A7C005173F3; 26 | remoteInfo = EncryptApp; 27 | }; 28 | 28F012DC238D0A7E005173F3 /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = 28F012AD238D0A7C005173F3 /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = 28F012B4238D0A7C005173F3; 33 | remoteInfo = EncryptApp; 34 | }; 35 | /* End PBXContainerItemProxy section */ 36 | 37 | /* Begin PBXFileReference section */ 38 | 28F012B5238D0A7C005173F3 /* EncryptApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = EncryptApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 28F012B8238D0A7C005173F3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 40 | 28F012B9238D0A7C005173F3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 41 | 28F012BE238D0A7C005173F3 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 42 | 28F012BF238D0A7C005173F3 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 43 | 28F012C2238D0A7C005173F3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 44 | 28F012C4238D0A7E005173F3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 45 | 28F012C7238D0A7E005173F3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 46 | 28F012C9238D0A7E005173F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 47 | 28F012CA238D0A7E005173F3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 48 | 28F012D0238D0A7E005173F3 /* EncryptAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EncryptAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 49 | 28F012D4238D0A7E005173F3 /* EncryptAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EncryptAppTests.m; sourceTree = ""; }; 50 | 28F012D6238D0A7E005173F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 51 | 28F012DB238D0A7E005173F3 /* EncryptAppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EncryptAppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 52 | 28F012DF238D0A7E005173F3 /* EncryptAppUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EncryptAppUITests.m; sourceTree = ""; }; 53 | 28F012E1238D0A7E005173F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 54 | /* End PBXFileReference section */ 55 | 56 | /* Begin PBXFrameworksBuildPhase section */ 57 | 28F012B2238D0A7C005173F3 /* Frameworks */ = { 58 | isa = PBXFrameworksBuildPhase; 59 | buildActionMask = 2147483647; 60 | files = ( 61 | ); 62 | runOnlyForDeploymentPostprocessing = 0; 63 | }; 64 | 28F012CD238D0A7E005173F3 /* Frameworks */ = { 65 | isa = PBXFrameworksBuildPhase; 66 | buildActionMask = 2147483647; 67 | files = ( 68 | ); 69 | runOnlyForDeploymentPostprocessing = 0; 70 | }; 71 | 28F012D8238D0A7E005173F3 /* Frameworks */ = { 72 | isa = PBXFrameworksBuildPhase; 73 | buildActionMask = 2147483647; 74 | files = ( 75 | ); 76 | runOnlyForDeploymentPostprocessing = 0; 77 | }; 78 | /* End PBXFrameworksBuildPhase section */ 79 | 80 | /* Begin PBXGroup section */ 81 | 28F012AC238D0A7C005173F3 = { 82 | isa = PBXGroup; 83 | children = ( 84 | 28F012B7238D0A7C005173F3 /* EncryptApp */, 85 | 28F012D3238D0A7E005173F3 /* EncryptAppTests */, 86 | 28F012DE238D0A7E005173F3 /* EncryptAppUITests */, 87 | 28F012B6238D0A7C005173F3 /* Products */, 88 | ); 89 | sourceTree = ""; 90 | }; 91 | 28F012B6238D0A7C005173F3 /* Products */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | 28F012B5238D0A7C005173F3 /* EncryptApp.app */, 95 | 28F012D0238D0A7E005173F3 /* EncryptAppTests.xctest */, 96 | 28F012DB238D0A7E005173F3 /* EncryptAppUITests.xctest */, 97 | ); 98 | name = Products; 99 | sourceTree = ""; 100 | }; 101 | 28F012B7238D0A7C005173F3 /* EncryptApp */ = { 102 | isa = PBXGroup; 103 | children = ( 104 | 28F012B8238D0A7C005173F3 /* AppDelegate.h */, 105 | 28F012B9238D0A7C005173F3 /* AppDelegate.m */, 106 | 28F012BE238D0A7C005173F3 /* ViewController.h */, 107 | 28F012BF238D0A7C005173F3 /* ViewController.m */, 108 | 28F012C1238D0A7C005173F3 /* Main.storyboard */, 109 | 28F012C4238D0A7E005173F3 /* Assets.xcassets */, 110 | 28F012C6238D0A7E005173F3 /* LaunchScreen.storyboard */, 111 | 28F012C9238D0A7E005173F3 /* Info.plist */, 112 | 28F012CA238D0A7E005173F3 /* main.m */, 113 | ); 114 | path = EncryptApp; 115 | sourceTree = ""; 116 | }; 117 | 28F012D3238D0A7E005173F3 /* EncryptAppTests */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 28F012D4238D0A7E005173F3 /* EncryptAppTests.m */, 121 | 28F012D6238D0A7E005173F3 /* Info.plist */, 122 | ); 123 | path = EncryptAppTests; 124 | sourceTree = ""; 125 | }; 126 | 28F012DE238D0A7E005173F3 /* EncryptAppUITests */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | 28F012DF238D0A7E005173F3 /* EncryptAppUITests.m */, 130 | 28F012E1238D0A7E005173F3 /* Info.plist */, 131 | ); 132 | path = EncryptAppUITests; 133 | sourceTree = ""; 134 | }; 135 | /* End PBXGroup section */ 136 | 137 | /* Begin PBXNativeTarget section */ 138 | 28F012B4238D0A7C005173F3 /* EncryptApp */ = { 139 | isa = PBXNativeTarget; 140 | buildConfigurationList = 28F012E4238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptApp" */; 141 | buildPhases = ( 142 | 28F012B1238D0A7C005173F3 /* Sources */, 143 | 28F012B2238D0A7C005173F3 /* Frameworks */, 144 | 28F012B3238D0A7C005173F3 /* Resources */, 145 | ); 146 | buildRules = ( 147 | ); 148 | dependencies = ( 149 | ); 150 | name = EncryptApp; 151 | productName = EncryptApp; 152 | productReference = 28F012B5238D0A7C005173F3 /* EncryptApp.app */; 153 | productType = "com.apple.product-type.application"; 154 | }; 155 | 28F012CF238D0A7E005173F3 /* EncryptAppTests */ = { 156 | isa = PBXNativeTarget; 157 | buildConfigurationList = 28F012E7238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptAppTests" */; 158 | buildPhases = ( 159 | 28F012CC238D0A7E005173F3 /* Sources */, 160 | 28F012CD238D0A7E005173F3 /* Frameworks */, 161 | 28F012CE238D0A7E005173F3 /* Resources */, 162 | ); 163 | buildRules = ( 164 | ); 165 | dependencies = ( 166 | 28F012D2238D0A7E005173F3 /* PBXTargetDependency */, 167 | ); 168 | name = EncryptAppTests; 169 | productName = EncryptAppTests; 170 | productReference = 28F012D0238D0A7E005173F3 /* EncryptAppTests.xctest */; 171 | productType = "com.apple.product-type.bundle.unit-test"; 172 | }; 173 | 28F012DA238D0A7E005173F3 /* EncryptAppUITests */ = { 174 | isa = PBXNativeTarget; 175 | buildConfigurationList = 28F012EA238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptAppUITests" */; 176 | buildPhases = ( 177 | 28F012D7238D0A7E005173F3 /* Sources */, 178 | 28F012D8238D0A7E005173F3 /* Frameworks */, 179 | 28F012D9238D0A7E005173F3 /* Resources */, 180 | ); 181 | buildRules = ( 182 | ); 183 | dependencies = ( 184 | 28F012DD238D0A7E005173F3 /* PBXTargetDependency */, 185 | ); 186 | name = EncryptAppUITests; 187 | productName = EncryptAppUITests; 188 | productReference = 28F012DB238D0A7E005173F3 /* EncryptAppUITests.xctest */; 189 | productType = "com.apple.product-type.bundle.ui-testing"; 190 | }; 191 | /* End PBXNativeTarget section */ 192 | 193 | /* Begin PBXProject section */ 194 | 28F012AD238D0A7C005173F3 /* Project object */ = { 195 | isa = PBXProject; 196 | attributes = { 197 | LastUpgradeCheck = 1120; 198 | ORGANIZATIONNAME = FengYang; 199 | TargetAttributes = { 200 | 28F012B4238D0A7C005173F3 = { 201 | CreatedOnToolsVersion = 11.2.1; 202 | }; 203 | 28F012CF238D0A7E005173F3 = { 204 | CreatedOnToolsVersion = 11.2.1; 205 | TestTargetID = 28F012B4238D0A7C005173F3; 206 | }; 207 | 28F012DA238D0A7E005173F3 = { 208 | CreatedOnToolsVersion = 11.2.1; 209 | TestTargetID = 28F012B4238D0A7C005173F3; 210 | }; 211 | }; 212 | }; 213 | buildConfigurationList = 28F012B0238D0A7C005173F3 /* Build configuration list for PBXProject "EncryptApp" */; 214 | compatibilityVersion = "Xcode 9.3"; 215 | developmentRegion = en; 216 | hasScannedForEncodings = 0; 217 | knownRegions = ( 218 | en, 219 | Base, 220 | ); 221 | mainGroup = 28F012AC238D0A7C005173F3; 222 | productRefGroup = 28F012B6238D0A7C005173F3 /* Products */; 223 | projectDirPath = ""; 224 | projectRoot = ""; 225 | targets = ( 226 | 28F012B4238D0A7C005173F3 /* EncryptApp */, 227 | 28F012CF238D0A7E005173F3 /* EncryptAppTests */, 228 | 28F012DA238D0A7E005173F3 /* EncryptAppUITests */, 229 | ); 230 | }; 231 | /* End PBXProject section */ 232 | 233 | /* Begin PBXResourcesBuildPhase section */ 234 | 28F012B3238D0A7C005173F3 /* Resources */ = { 235 | isa = PBXResourcesBuildPhase; 236 | buildActionMask = 2147483647; 237 | files = ( 238 | 28F012C8238D0A7E005173F3 /* LaunchScreen.storyboard in Resources */, 239 | 28F012C5238D0A7E005173F3 /* Assets.xcassets in Resources */, 240 | 28F012C3238D0A7C005173F3 /* Main.storyboard in Resources */, 241 | ); 242 | runOnlyForDeploymentPostprocessing = 0; 243 | }; 244 | 28F012CE238D0A7E005173F3 /* Resources */ = { 245 | isa = PBXResourcesBuildPhase; 246 | buildActionMask = 2147483647; 247 | files = ( 248 | ); 249 | runOnlyForDeploymentPostprocessing = 0; 250 | }; 251 | 28F012D9238D0A7E005173F3 /* Resources */ = { 252 | isa = PBXResourcesBuildPhase; 253 | buildActionMask = 2147483647; 254 | files = ( 255 | ); 256 | runOnlyForDeploymentPostprocessing = 0; 257 | }; 258 | /* End PBXResourcesBuildPhase section */ 259 | 260 | /* Begin PBXSourcesBuildPhase section */ 261 | 28F012B1238D0A7C005173F3 /* Sources */ = { 262 | isa = PBXSourcesBuildPhase; 263 | buildActionMask = 2147483647; 264 | files = ( 265 | 28F012C0238D0A7C005173F3 /* ViewController.m in Sources */, 266 | 28F012BA238D0A7C005173F3 /* AppDelegate.m in Sources */, 267 | 28F012CB238D0A7E005173F3 /* main.m in Sources */, 268 | ); 269 | runOnlyForDeploymentPostprocessing = 0; 270 | }; 271 | 28F012CC238D0A7E005173F3 /* Sources */ = { 272 | isa = PBXSourcesBuildPhase; 273 | buildActionMask = 2147483647; 274 | files = ( 275 | 28F012D5238D0A7E005173F3 /* EncryptAppTests.m in Sources */, 276 | ); 277 | runOnlyForDeploymentPostprocessing = 0; 278 | }; 279 | 28F012D7238D0A7E005173F3 /* Sources */ = { 280 | isa = PBXSourcesBuildPhase; 281 | buildActionMask = 2147483647; 282 | files = ( 283 | 28F012E0238D0A7E005173F3 /* EncryptAppUITests.m in Sources */, 284 | ); 285 | runOnlyForDeploymentPostprocessing = 0; 286 | }; 287 | /* End PBXSourcesBuildPhase section */ 288 | 289 | /* Begin PBXTargetDependency section */ 290 | 28F012D2238D0A7E005173F3 /* PBXTargetDependency */ = { 291 | isa = PBXTargetDependency; 292 | target = 28F012B4238D0A7C005173F3 /* EncryptApp */; 293 | targetProxy = 28F012D1238D0A7E005173F3 /* PBXContainerItemProxy */; 294 | }; 295 | 28F012DD238D0A7E005173F3 /* PBXTargetDependency */ = { 296 | isa = PBXTargetDependency; 297 | target = 28F012B4238D0A7C005173F3 /* EncryptApp */; 298 | targetProxy = 28F012DC238D0A7E005173F3 /* PBXContainerItemProxy */; 299 | }; 300 | /* End PBXTargetDependency section */ 301 | 302 | /* Begin PBXVariantGroup section */ 303 | 28F012C1238D0A7C005173F3 /* Main.storyboard */ = { 304 | isa = PBXVariantGroup; 305 | children = ( 306 | 28F012C2238D0A7C005173F3 /* Base */, 307 | ); 308 | name = Main.storyboard; 309 | sourceTree = ""; 310 | }; 311 | 28F012C6238D0A7E005173F3 /* LaunchScreen.storyboard */ = { 312 | isa = PBXVariantGroup; 313 | children = ( 314 | 28F012C7238D0A7E005173F3 /* Base */, 315 | ); 316 | name = LaunchScreen.storyboard; 317 | sourceTree = ""; 318 | }; 319 | /* End PBXVariantGroup section */ 320 | 321 | /* Begin XCBuildConfiguration section */ 322 | 28F012E2238D0A7E005173F3 /* Debug */ = { 323 | isa = XCBuildConfiguration; 324 | buildSettings = { 325 | ALWAYS_SEARCH_USER_PATHS = NO; 326 | CLANG_ANALYZER_NONNULL = YES; 327 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 328 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 329 | CLANG_CXX_LIBRARY = "libc++"; 330 | CLANG_ENABLE_MODULES = YES; 331 | CLANG_ENABLE_OBJC_ARC = YES; 332 | CLANG_ENABLE_OBJC_WEAK = YES; 333 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 334 | CLANG_WARN_BOOL_CONVERSION = YES; 335 | CLANG_WARN_COMMA = YES; 336 | CLANG_WARN_CONSTANT_CONVERSION = YES; 337 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 338 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 339 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 340 | CLANG_WARN_EMPTY_BODY = YES; 341 | CLANG_WARN_ENUM_CONVERSION = YES; 342 | CLANG_WARN_INFINITE_RECURSION = YES; 343 | CLANG_WARN_INT_CONVERSION = YES; 344 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 345 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 346 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 347 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 348 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 349 | CLANG_WARN_STRICT_PROTOTYPES = YES; 350 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 351 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 352 | CLANG_WARN_UNREACHABLE_CODE = YES; 353 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 354 | COPY_PHASE_STRIP = NO; 355 | DEBUG_INFORMATION_FORMAT = dwarf; 356 | ENABLE_STRICT_OBJC_MSGSEND = YES; 357 | ENABLE_TESTABILITY = YES; 358 | GCC_C_LANGUAGE_STANDARD = gnu11; 359 | GCC_DYNAMIC_NO_PIC = NO; 360 | GCC_NO_COMMON_BLOCKS = YES; 361 | GCC_OPTIMIZATION_LEVEL = 0; 362 | GCC_PREPROCESSOR_DEFINITIONS = ( 363 | "DEBUG=1", 364 | "$(inherited)", 365 | ); 366 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 367 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 368 | GCC_WARN_UNDECLARED_SELECTOR = YES; 369 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 370 | GCC_WARN_UNUSED_FUNCTION = YES; 371 | GCC_WARN_UNUSED_VARIABLE = YES; 372 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 373 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 374 | MTL_FAST_MATH = YES; 375 | ONLY_ACTIVE_ARCH = YES; 376 | SDKROOT = iphoneos; 377 | }; 378 | name = Debug; 379 | }; 380 | 28F012E3238D0A7E005173F3 /* Release */ = { 381 | isa = XCBuildConfiguration; 382 | buildSettings = { 383 | ALWAYS_SEARCH_USER_PATHS = NO; 384 | CLANG_ANALYZER_NONNULL = YES; 385 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 386 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 387 | CLANG_CXX_LIBRARY = "libc++"; 388 | CLANG_ENABLE_MODULES = YES; 389 | CLANG_ENABLE_OBJC_ARC = YES; 390 | CLANG_ENABLE_OBJC_WEAK = YES; 391 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 392 | CLANG_WARN_BOOL_CONVERSION = YES; 393 | CLANG_WARN_COMMA = YES; 394 | CLANG_WARN_CONSTANT_CONVERSION = YES; 395 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 396 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 397 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 398 | CLANG_WARN_EMPTY_BODY = YES; 399 | CLANG_WARN_ENUM_CONVERSION = YES; 400 | CLANG_WARN_INFINITE_RECURSION = YES; 401 | CLANG_WARN_INT_CONVERSION = YES; 402 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 403 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 404 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 405 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 406 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 407 | CLANG_WARN_STRICT_PROTOTYPES = YES; 408 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 409 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 410 | CLANG_WARN_UNREACHABLE_CODE = YES; 411 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 412 | COPY_PHASE_STRIP = NO; 413 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 414 | ENABLE_NS_ASSERTIONS = NO; 415 | ENABLE_STRICT_OBJC_MSGSEND = YES; 416 | GCC_C_LANGUAGE_STANDARD = gnu11; 417 | GCC_NO_COMMON_BLOCKS = YES; 418 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 419 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 420 | GCC_WARN_UNDECLARED_SELECTOR = YES; 421 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 422 | GCC_WARN_UNUSED_FUNCTION = YES; 423 | GCC_WARN_UNUSED_VARIABLE = YES; 424 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 425 | MTL_ENABLE_DEBUG_INFO = NO; 426 | MTL_FAST_MATH = YES; 427 | SDKROOT = iphoneos; 428 | VALIDATE_PRODUCT = YES; 429 | }; 430 | name = Release; 431 | }; 432 | 28F012E5238D0A7E005173F3 /* Debug */ = { 433 | isa = XCBuildConfiguration; 434 | buildSettings = { 435 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 436 | CODE_SIGN_STYLE = Automatic; 437 | DEVELOPMENT_TEAM = NXRGZY5DX4; 438 | INFOPLIST_FILE = EncryptApp/Info.plist; 439 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 440 | LD_RUNPATH_SEARCH_PATHS = ( 441 | "$(inherited)", 442 | "@executable_path/Frameworks", 443 | ); 444 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptApp; 445 | PRODUCT_NAME = "$(TARGET_NAME)"; 446 | TARGETED_DEVICE_FAMILY = "1,2"; 447 | }; 448 | name = Debug; 449 | }; 450 | 28F012E6238D0A7E005173F3 /* Release */ = { 451 | isa = XCBuildConfiguration; 452 | buildSettings = { 453 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 454 | CODE_SIGN_STYLE = Automatic; 455 | DEVELOPMENT_TEAM = NXRGZY5DX4; 456 | INFOPLIST_FILE = EncryptApp/Info.plist; 457 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 458 | LD_RUNPATH_SEARCH_PATHS = ( 459 | "$(inherited)", 460 | "@executable_path/Frameworks", 461 | ); 462 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptApp; 463 | PRODUCT_NAME = "$(TARGET_NAME)"; 464 | TARGETED_DEVICE_FAMILY = "1,2"; 465 | }; 466 | name = Release; 467 | }; 468 | 28F012E8238D0A7E005173F3 /* Debug */ = { 469 | isa = XCBuildConfiguration; 470 | buildSettings = { 471 | BUNDLE_LOADER = "$(TEST_HOST)"; 472 | CODE_SIGN_STYLE = Automatic; 473 | DEVELOPMENT_TEAM = NXRGZY5DX4; 474 | INFOPLIST_FILE = EncryptAppTests/Info.plist; 475 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 476 | LD_RUNPATH_SEARCH_PATHS = ( 477 | "$(inherited)", 478 | "@executable_path/Frameworks", 479 | "@loader_path/Frameworks", 480 | ); 481 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptAppTests; 482 | PRODUCT_NAME = "$(TARGET_NAME)"; 483 | TARGETED_DEVICE_FAMILY = "1,2"; 484 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/EncryptApp.app/EncryptApp"; 485 | }; 486 | name = Debug; 487 | }; 488 | 28F012E9238D0A7E005173F3 /* Release */ = { 489 | isa = XCBuildConfiguration; 490 | buildSettings = { 491 | BUNDLE_LOADER = "$(TEST_HOST)"; 492 | CODE_SIGN_STYLE = Automatic; 493 | DEVELOPMENT_TEAM = NXRGZY5DX4; 494 | INFOPLIST_FILE = EncryptAppTests/Info.plist; 495 | IPHONEOS_DEPLOYMENT_TARGET = 13.2; 496 | LD_RUNPATH_SEARCH_PATHS = ( 497 | "$(inherited)", 498 | "@executable_path/Frameworks", 499 | "@loader_path/Frameworks", 500 | ); 501 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptAppTests; 502 | PRODUCT_NAME = "$(TARGET_NAME)"; 503 | TARGETED_DEVICE_FAMILY = "1,2"; 504 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/EncryptApp.app/EncryptApp"; 505 | }; 506 | name = Release; 507 | }; 508 | 28F012EB238D0A7E005173F3 /* Debug */ = { 509 | isa = XCBuildConfiguration; 510 | buildSettings = { 511 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; 512 | CODE_SIGN_STYLE = Automatic; 513 | DEVELOPMENT_TEAM = NXRGZY5DX4; 514 | INFOPLIST_FILE = EncryptAppUITests/Info.plist; 515 | LD_RUNPATH_SEARCH_PATHS = ( 516 | "$(inherited)", 517 | "@executable_path/Frameworks", 518 | "@loader_path/Frameworks", 519 | ); 520 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptAppUITests; 521 | PRODUCT_NAME = "$(TARGET_NAME)"; 522 | TARGETED_DEVICE_FAMILY = "1,2"; 523 | TEST_TARGET_NAME = EncryptApp; 524 | }; 525 | name = Debug; 526 | }; 527 | 28F012EC238D0A7E005173F3 /* Release */ = { 528 | isa = XCBuildConfiguration; 529 | buildSettings = { 530 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; 531 | CODE_SIGN_STYLE = Automatic; 532 | DEVELOPMENT_TEAM = NXRGZY5DX4; 533 | INFOPLIST_FILE = EncryptAppUITests/Info.plist; 534 | LD_RUNPATH_SEARCH_PATHS = ( 535 | "$(inherited)", 536 | "@executable_path/Frameworks", 537 | "@loader_path/Frameworks", 538 | ); 539 | PRODUCT_BUNDLE_IDENTIFIER = com.fengyang.EncryptAppUITests; 540 | PRODUCT_NAME = "$(TARGET_NAME)"; 541 | TARGETED_DEVICE_FAMILY = "1,2"; 542 | TEST_TARGET_NAME = EncryptApp; 543 | }; 544 | name = Release; 545 | }; 546 | /* End XCBuildConfiguration section */ 547 | 548 | /* Begin XCConfigurationList section */ 549 | 28F012B0238D0A7C005173F3 /* Build configuration list for PBXProject "EncryptApp" */ = { 550 | isa = XCConfigurationList; 551 | buildConfigurations = ( 552 | 28F012E2238D0A7E005173F3 /* Debug */, 553 | 28F012E3238D0A7E005173F3 /* Release */, 554 | ); 555 | defaultConfigurationIsVisible = 0; 556 | defaultConfigurationName = Release; 557 | }; 558 | 28F012E4238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptApp" */ = { 559 | isa = XCConfigurationList; 560 | buildConfigurations = ( 561 | 28F012E5238D0A7E005173F3 /* Debug */, 562 | 28F012E6238D0A7E005173F3 /* Release */, 563 | ); 564 | defaultConfigurationIsVisible = 0; 565 | defaultConfigurationName = Release; 566 | }; 567 | 28F012E7238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptAppTests" */ = { 568 | isa = XCConfigurationList; 569 | buildConfigurations = ( 570 | 28F012E8238D0A7E005173F3 /* Debug */, 571 | 28F012E9238D0A7E005173F3 /* Release */, 572 | ); 573 | defaultConfigurationIsVisible = 0; 574 | defaultConfigurationName = Release; 575 | }; 576 | 28F012EA238D0A7E005173F3 /* Build configuration list for PBXNativeTarget "EncryptAppUITests" */ = { 577 | isa = XCConfigurationList; 578 | buildConfigurations = ( 579 | 28F012EB238D0A7E005173F3 /* Debug */, 580 | 28F012EC238D0A7E005173F3 /* Release */, 581 | ); 582 | defaultConfigurationIsVisible = 0; 583 | defaultConfigurationName = Release; 584 | }; 585 | /* End XCConfigurationList section */ 586 | }; 587 | rootObject = 28F012AD238D0A7C005173F3 /* Project object */; 588 | } 589 | --------------------------------------------------------------------------------