├── 效果图.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 | 
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 |
--------------------------------------------------------------------------------