@rock-js/platform-ios 0.8.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # @rock-js/platform-ios
2
+
3
+ iOS platform integration for Rock (Rock). This package is part of the Rock ecosystem and provides iOS-specific build and development tools.
4
+
5
+ ## Documentation
6
+
7
+ For detailed documentation about Rock and its tools, visit [Rock Documentation](https://rockjs.dev)
@@ -0,0 +1 @@
1
+ export * from './lib/platformIOS.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './lib/platformIOS.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PluginApi } from '@rock-js/config';
2
+ export type SignFlags = {
3
+ app: string;
4
+ output?: string;
5
+ identity?: string;
6
+ buildJsbundle?: boolean;
7
+ jsbundle?: string;
8
+ noHermes?: boolean;
9
+ };
10
+ export declare const registerSignCommand: (api: PluginApi) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signIos.d.ts","sourceRoot":"","sources":["../../../../src/lib/commands/signIos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAqCF,eAAO,MAAM,mBAAmB,QAAS,SAAS,SA4BjD,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { modifyApp, modifyIpa } from '@rock-js/platform-apple-helpers';
2
+ const ARGUMENTS = [
3
+ {
4
+ name: 'binaryPath',
5
+ description: 'Path to the IPA or APP file.',
6
+ },
7
+ ];
8
+ const OPTIONS = [
9
+ {
10
+ name: '--app',
11
+ description: 'Modify APP file (directory) instead of IPA file. No signing is done.',
12
+ },
13
+ {
14
+ name: '--identity <string>',
15
+ description: 'Certificate Identity name to use for code signing, e.g. "Apple Distribution: Your Team (HFJASKHDDS)".',
16
+ },
17
+ {
18
+ name: '--output <string>',
19
+ description: 'Path to the output IPA file.',
20
+ },
21
+ {
22
+ name: '--build-jsbundle',
23
+ description: 'Build the JS bundle before signing.',
24
+ },
25
+ {
26
+ name: '--jsbundle <string>',
27
+ description: 'Path to the JS bundle to apply before signing.',
28
+ },
29
+ {
30
+ name: '--no-hermes',
31
+ description: 'Do not use Hermes to build the JS bundle.',
32
+ },
33
+ ];
34
+ export const registerSignCommand = (api) => {
35
+ api.registerCommand({
36
+ name: 'sign:ios',
37
+ description: 'Sign the iOS app (IPA or APP file) with modified JS bundle.',
38
+ args: ARGUMENTS,
39
+ options: OPTIONS,
40
+ action: async (binaryPath, flags) => {
41
+ if (flags.app) {
42
+ await modifyApp({
43
+ appPath: binaryPath,
44
+ outputPath: flags.output,
45
+ buildJsBundle: flags.buildJsbundle,
46
+ jsBundlePath: flags.jsbundle,
47
+ useHermes: !flags.noHermes,
48
+ });
49
+ }
50
+ else {
51
+ await modifyIpa({
52
+ platformName: 'ios',
53
+ ipaPath: binaryPath,
54
+ identity: flags.identity,
55
+ outputPath: flags.output,
56
+ buildJsBundle: flags.buildJsbundle,
57
+ jsBundlePath: flags.jsbundle,
58
+ useHermes: !flags.noHermes,
59
+ });
60
+ }
61
+ },
62
+ });
63
+ };
64
+ //# sourceMappingURL=signIos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signIos.js","sourceRoot":"","sources":["../../../../src/lib/commands/signIos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAWvE,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8BAA8B;KAC5C;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EACT,sEAAsE;KACzE;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,uGAAuG;KAC1G;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,8BAA8B;KAC5C;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qCAAqC;KACnD;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2CAA2C;KACzD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAc,EAAE,EAAE;IACpD,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,6DAA6D;QAC1E,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAgB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC;oBACd,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,YAAY,EAAE,KAAK,CAAC,QAAQ;oBAC5B,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ;iBAC3B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,CAAC;oBACd,YAAY,EAAE,KAAK;oBACnB,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,YAAY,EAAE,KAAK,CAAC,QAAQ;oBAC5B,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { IOSProjectConfig } from '@react-native-community/cli-types';
2
+ import type { PlatformOutput, PluginApi } from '@rock-js/config';
3
+ export declare const platformIOS: (pluginConfig?: Partial<IOSProjectConfig>) => (api: PluginApi) => PlatformOutput;
4
+ export default platformIOS;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformIOS.d.ts","sourceRoot":"","sources":["../../../src/lib/platformIOS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAe9D,eAAO,MAAM,WAAW,kBACN,gBAAgB,WAC1B,SAAS,KAAG,cAoEjB,CAAC;AAEJ,eAAe,WAAW,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { createBuild, createRun, getBuildOptions, getRunOptions, getValidProjectConfig, } from '@rock-js/platform-apple-helpers';
2
+ import { intro, outro } from '@rock-js/tools';
3
+ import { registerSignCommand } from './commands/signIos.js';
4
+ const buildOptions = getBuildOptions({ platformName: 'ios' });
5
+ const runOptions = getRunOptions({ platformName: 'ios' });
6
+ export const platformIOS = (pluginConfig) => (api) => {
7
+ api.registerCommand({
8
+ name: 'build:ios',
9
+ description: 'Build iOS app.',
10
+ action: async (args) => {
11
+ intro('Building iOS app');
12
+ const projectRoot = api.getProjectRoot();
13
+ const iosConfig = getValidProjectConfig('ios', projectRoot, pluginConfig);
14
+ await createBuild({
15
+ platformName: 'ios',
16
+ projectConfig: iosConfig,
17
+ args: args,
18
+ projectRoot,
19
+ reactNativePath: api.getReactNativePath(),
20
+ fingerprintOptions: api.getFingerprintOptions(),
21
+ remoteCacheProvider: await api.getRemoteCacheProvider(),
22
+ });
23
+ outro('Success 🎉.');
24
+ },
25
+ options: buildOptions,
26
+ });
27
+ api.registerCommand({
28
+ name: 'run:ios',
29
+ description: 'Run iOS app.',
30
+ action: async (args) => {
31
+ intro('Running iOS app');
32
+ const projectRoot = api.getProjectRoot();
33
+ const iosConfig = getValidProjectConfig('ios', projectRoot, pluginConfig);
34
+ await createRun({
35
+ platformName: 'ios',
36
+ projectConfig: iosConfig,
37
+ args: args,
38
+ projectRoot,
39
+ remoteCacheProvider: await api.getRemoteCacheProvider(),
40
+ fingerprintOptions: api.getFingerprintOptions(),
41
+ reactNativePath: api.getReactNativePath(),
42
+ });
43
+ outro('Success 🎉.');
44
+ },
45
+ // @ts-expect-error: fix `simulator` is not defined in `RunFlags`
46
+ options: runOptions,
47
+ });
48
+ registerSignCommand(api);
49
+ return {
50
+ name: '@rock-js/platform-ios',
51
+ description: 'Rock plugin for everything iOS.',
52
+ autolinkingConfig: {
53
+ get project() {
54
+ const iosConfig = getValidProjectConfig('ios', api.getProjectRoot(), pluginConfig);
55
+ return { ...iosConfig };
56
+ },
57
+ },
58
+ };
59
+ };
60
+ export default platformIOS;
61
+ //# sourceMappingURL=platformIOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformIOS.js","sourceRoot":"","sources":["../../../src/lib/platformIOS.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,YAAwC,EAAE,EAAE,CAC7C,CAAC,GAAc,EAAkB,EAAE;IACjC,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gBAAgB;QAC7B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,qBAAqB,CACrC,KAAK,EACL,WAAW,EACX,YAAY,CACb,CAAC;YACF,MAAM,WAAW,CAAC;gBAChB,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,SAAS;gBACxB,IAAI,EAAE,IAAkB;gBACxB,WAAW;gBACX,eAAe,EAAE,GAAG,CAAC,kBAAkB,EAAE;gBACzC,kBAAkB,EAAE,GAAG,CAAC,qBAAqB,EAAE;gBAC/C,mBAAmB,EAAE,MAAM,GAAG,CAAC,sBAAsB,EAAE;aACxD,CAAC,CAAC;YACH,KAAK,CAAC,aAAa,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,CAAC;QAClB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,qBAAqB,CACrC,KAAK,EACL,WAAW,EACX,YAAY,CACb,CAAC;YACF,MAAM,SAAS,CAAC;gBACd,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,SAAS;gBACxB,IAAI,EAAE,IAAgB;gBACtB,WAAW;gBACX,mBAAmB,EAAE,MAAM,GAAG,CAAC,sBAAsB,EAAE;gBACvD,kBAAkB,EAAE,GAAG,CAAC,qBAAqB,EAAE;gBAC/C,eAAe,EAAE,GAAG,CAAC,kBAAkB,EAAE;aAC1C,CAAC,CAAC;YACH,KAAK,CAAC,aAAa,CAAC,CAAC;QACvB,CAAC;QACD,iEAAiE;QACjE,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,iCAAiC;QAC9C,iBAAiB,EAAE;YACjB,IAAI,OAAO;gBACT,MAAM,SAAS,GAAG,qBAAqB,CACrC,KAAK,EACL,GAAG,CAAC,cAAc,EAAE,EACpB,YAAY,CACb,CAAC;gBACF,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;YAC1B,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEJ,eAAe,WAAW,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@rock-js/platform-ios",
3
+ "version": "0.8.13",
4
+ "type": "module",
5
+ "types": "./dist/src/index.d.ts",
6
+ "exports": {
7
+ "types": "./dist/src/index.d.ts",
8
+ "default": "./dist/src/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "template",
13
+ "react-native.config.ts"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc -p tsconfig.lib.json",
17
+ "dev": "tsc -p tsconfig.lib.json --watch",
18
+ "publish:npm": "npm publish --access public",
19
+ "publish:verdaccio": "npm publish --registry http://localhost:4873 --userconfig ../../.npmrc"
20
+ },
21
+ "dependencies": {
22
+ "@react-native-community/cli-config-apple": "^19.1.0",
23
+ "@react-native-community/cli-types": "^19.1.0",
24
+ "@rock-js/platform-apple-helpers": "^0.8.13",
25
+ "@rock-js/tools": "^0.8.13",
26
+ "tslib": "^2.3.0"
27
+ },
28
+ "devDependencies": {
29
+ "@rock-js/config": "^0.8.13"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ }
34
+ }
@@ -0,0 +1,13 @@
1
+ import {
2
+ getDependencyConfig,
3
+ getProjectConfig,
4
+ } from '@react-native-community/cli-config-apple';
5
+
6
+ export default {
7
+ platforms: {
8
+ ios: {
9
+ projectConfig: getProjectConfig({ platformName: 'ios' }),
10
+ dependencyConfig: getDependencyConfig({ platformName: 'ios' }),
11
+ },
12
+ },
13
+ };
@@ -0,0 +1,67 @@
1
+ name: Remote Build iOS
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - '**'
10
+
11
+ concurrency:
12
+ group: remote-build-ios-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ build-device:
17
+ runs-on: macos-latest
18
+
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
22
+
23
+ - name: Setup Node
24
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
25
+ with:
26
+ node-version: '20'
27
+ cache: 'npm'
28
+
29
+ - name: Install dependencies
30
+ run: npm install
31
+
32
+ - name: Rock Remote Build - iOS device
33
+ uses: callstackincubator/ios@v2
34
+ with:
35
+ destination: device
36
+ github-token: ${{ secrets.GITHUB_TOKEN }}
37
+ scheme: SCHEME_FOR_DEVICES # replace with preferred scheme
38
+ configuration: Release # replace with preferred configuration
39
+ certificate-base64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
40
+ certificate-password: ${{ secrets.APPLE_BUILD_CERTIFICATE_PASSWORD }}
41
+ provisioning-profile-base64: ${{ secrets.APPLE_BUILD_PROVISIONING_PROFILE_BASE64 }}
42
+ provisioning-profile-name: 'PROVISIONING_PROFILE_NAME' # replace with actual profile name
43
+ keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
44
+
45
+ build-simulator:
46
+ runs-on: macos-latest
47
+
48
+ steps:
49
+ - name: Checkout repository
50
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
51
+
52
+ - name: Setup Node
53
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
54
+ with:
55
+ node-version: '20'
56
+ cache: 'npm'
57
+
58
+ - name: Install dependencies
59
+ run: npm install
60
+
61
+ - name: Rock Remote Build - iOS simulator
62
+ uses: callstackincubator/ios@v2
63
+ with:
64
+ destination: simulator
65
+ github-token: ${{ secrets.GITHUB_TOKEN }}
66
+ scheme: SCHEME_FOR_SIMULATORS # replace with preferred scheme
67
+ configuration: Debug # replace with preferred configuration
@@ -0,0 +1,11 @@
1
+ # This `.xcode.env` file is versioned and is used to source the environment
2
+ # used when running script phases inside Xcode.
3
+ # To customize your local environment, you can create an `.xcode.env.local`
4
+ # file that is not versioned.
5
+
6
+ # NODE_BINARY variable contains the PATH to the node executable.
7
+ #
8
+ # Customize the NODE_BINARY variable here.
9
+ # For example, to use nvm with brew, add the following line
10
+ # . "$(brew --prefix nvm)/nvm.sh" --no-use
11
+ export NODE_BINARY=$(command -v node)
@@ -0,0 +1,48 @@
1
+ import UIKit
2
+ import React
3
+ import React_RCTAppDelegate
4
+ import ReactAppDependencyProvider
5
+
6
+ @main
7
+ class AppDelegate: UIResponder, UIApplicationDelegate {
8
+ var window: UIWindow?
9
+
10
+ var reactNativeDelegate: ReactNativeDelegate?
11
+ var reactNativeFactory: RCTReactNativeFactory?
12
+
13
+ func application(
14
+ _ application: UIApplication,
15
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
16
+ ) -> Bool {
17
+ let delegate = ReactNativeDelegate()
18
+ let factory = RCTReactNativeFactory(delegate: delegate)
19
+ delegate.dependencyProvider = RCTAppDependencyProvider()
20
+
21
+ reactNativeDelegate = delegate
22
+ reactNativeFactory = factory
23
+
24
+ window = UIWindow(frame: UIScreen.main.bounds)
25
+
26
+ factory.startReactNative(
27
+ withModuleName: "HelloWorld",
28
+ in: window,
29
+ launchOptions: launchOptions
30
+ )
31
+
32
+ return true
33
+ }
34
+ }
35
+
36
+ class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate {
37
+ override func sourceURL(for bridge: RCTBridge) -> URL? {
38
+ self.bundleURL()
39
+ }
40
+
41
+ override func bundleURL() -> URL? {
42
+ #if DEBUG
43
+ RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
44
+ #else
45
+ Bundle.main.url(forResource: "main", withExtension: "jsbundle")
46
+ #endif
47
+ }
48
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "iphone",
5
+ "scale" : "2x",
6
+ "size" : "20x20"
7
+ },
8
+ {
9
+ "idiom" : "iphone",
10
+ "scale" : "3x",
11
+ "size" : "20x20"
12
+ },
13
+ {
14
+ "idiom" : "iphone",
15
+ "scale" : "2x",
16
+ "size" : "29x29"
17
+ },
18
+ {
19
+ "idiom" : "iphone",
20
+ "scale" : "3x",
21
+ "size" : "29x29"
22
+ },
23
+ {
24
+ "idiom" : "iphone",
25
+ "scale" : "2x",
26
+ "size" : "40x40"
27
+ },
28
+ {
29
+ "idiom" : "iphone",
30
+ "scale" : "3x",
31
+ "size" : "40x40"
32
+ },
33
+ {
34
+ "idiom" : "iphone",
35
+ "scale" : "2x",
36
+ "size" : "60x60"
37
+ },
38
+ {
39
+ "idiom" : "iphone",
40
+ "scale" : "3x",
41
+ "size" : "60x60"
42
+ },
43
+ {
44
+ "idiom" : "ios-marketing",
45
+ "scale" : "1x",
46
+ "size" : "1024x1024"
47
+ }
48
+ ],
49
+ "info" : {
50
+ "author" : "xcode",
51
+ "version" : 1
52
+ }
53
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "info" : {
3
+ "version" : 1,
4
+ "author" : "xcode"
5
+ }
6
+ }
@@ -0,0 +1,52 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string>HelloWorld</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>$(MARKETING_VERSION)</string>
21
+ <key>CFBundleSignature</key>
22
+ <string>????</string>
23
+ <key>CFBundleVersion</key>
24
+ <string>$(CURRENT_PROJECT_VERSION)</string>
25
+ <key>LSRequiresIPhoneOS</key>
26
+ <true/>
27
+ <key>NSAppTransportSecurity</key>
28
+ <dict>
29
+ <!-- Do not change NSAllowsArbitraryLoads to true, or you will risk app rejection! -->
30
+ <key>NSAllowsArbitraryLoads</key>
31
+ <false/>
32
+ <key>NSAllowsLocalNetworking</key>
33
+ <true/>
34
+ </dict>
35
+ <key>NSLocationWhenInUseUsageDescription</key>
36
+ <string></string>
37
+ <key>UILaunchStoryboardName</key>
38
+ <string>LaunchScreen</string>
39
+ <key>UIRequiredDeviceCapabilities</key>
40
+ <array>
41
+ <string>arm64</string>
42
+ </array>
43
+ <key>UISupportedInterfaceOrientations</key>
44
+ <array>
45
+ <string>UIInterfaceOrientationPortrait</string>
46
+ <string>UIInterfaceOrientationLandscapeLeft</string>
47
+ <string>UIInterfaceOrientationLandscapeRight</string>
48
+ </array>
49
+ <key>UIViewControllerBasedStatusBarAppearance</key>
50
+ <false/>
51
+ </dict>
52
+ </plist>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
3
+ <device id="retina4_7" orientation="portrait" appearance="light"/>
4
+ <dependencies>
5
+ <deployment identifier="iOS"/>
6
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
7
+ <capability name="Safe area layout guides" minToolsVersion="9.0"/>
8
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9
+ </dependencies>
10
+ <scenes>
11
+ <!--View Controller-->
12
+ <scene sceneID="EHf-IW-A2E">
13
+ <objects>
14
+ <viewController id="01J-lp-oVM" sceneMemberID="viewController">
15
+ <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
16
+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
17
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
+ <subviews>
19
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="HelloWorld" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
20
+ <rect key="frame" x="0.0" y="202" width="375" height="43"/>
21
+ <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
22
+ <nil key="highlightedColor"/>
23
+ </label>
24
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-I3-ftu">
25
+ <rect key="frame" x="0.0" y="626" width="375" height="21"/>
26
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
27
+ <nil key="highlightedColor"/>
28
+ </label>
29
+ </subviews>
30
+ <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
31
+ <constraints>
32
+ <constraint firstItem="Bcu-3y-fUS" firstAttribute="bottom" secondItem="MN2-I3-ftu" secondAttribute="bottom" constant="20" id="OZV-Vh-mqD"/>
33
+ <constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
34
+ <constraint firstItem="MN2-I3-ftu" firstAttribute="centerX" secondItem="Bcu-3y-fUS" secondAttribute="centerX" id="akx-eg-2ui"/>
35
+ <constraint firstItem="MN2-I3-ftu" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="i1E-0Y-4RG"/>
36
+ <constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
37
+ <constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/>
38
+ </constraints>
39
+ <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
40
+ </view>
41
+ </viewController>
42
+ <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
43
+ </objects>
44
+ <point key="canvasLocation" x="52.173913043478265" y="375"/>
45
+ </scene>
46
+ </scenes>
47
+ </document>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>NSPrivacyAccessedAPITypes</key>
6
+ <array>
7
+ <dict>
8
+ <key>NSPrivacyAccessedAPIType</key>
9
+ <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
10
+ <key>NSPrivacyAccessedAPITypeReasons</key>
11
+ <array>
12
+ <string>C617.1</string>
13
+ </array>
14
+ </dict>
15
+ <dict>
16
+ <key>NSPrivacyAccessedAPIType</key>
17
+ <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
18
+ <key>NSPrivacyAccessedAPITypeReasons</key>
19
+ <array>
20
+ <string>CA92.1</string>
21
+ </array>
22
+ </dict>
23
+ <dict>
24
+ <key>NSPrivacyAccessedAPIType</key>
25
+ <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
26
+ <key>NSPrivacyAccessedAPITypeReasons</key>
27
+ <array>
28
+ <string>35F9.1</string>
29
+ </array>
30
+ </dict>
31
+ </array>
32
+ <key>NSPrivacyCollectedDataTypes</key>
33
+ <array/>
34
+ <key>NSPrivacyTracking</key>
35
+ <false/>
36
+ </dict>
37
+ </plist>
@@ -0,0 +1,471 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 54;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 0C80B921A6F3F58F76C31292 /* libPods-HelloWorld.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */; };
11
+ 13B07FBC1A68108700A75B9A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.swift */; };
12
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
14
+ /* End PBXBuildFile section */
15
+
16
+ /* Begin PBXFileReference section */
17
+ 13B07F961A680F5B00A75B9A /* HelloWorld.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = BUILT_PRODUCTS_DIR; };
18
+ 13B07FB01A68108700A75B9A /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = HelloWorld/AppDelegate.swift; sourceTree = "<group>"; };
19
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = "<group>"; };
20
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = HelloWorld/Info.plist; sourceTree = "<group>"; };
21
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
22
+ 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.debug.xcconfig"; sourceTree = "<group>"; };
23
+ 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.release.xcconfig"; sourceTree = "<group>"; };
24
+ 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld.a"; sourceTree = BUILT_PRODUCTS_DIR; };
25
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HelloWorld/LaunchScreen.storyboard; sourceTree = "<group>"; };
26
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
27
+ /* End PBXFileReference section */
28
+
29
+ /* Begin PBXFrameworksBuildPhase section */
30
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
31
+ isa = PBXFrameworksBuildPhase;
32
+ buildActionMask = 2147483647;
33
+ files = (
34
+ 0C80B921A6F3F58F76C31292 /* libPods-HelloWorld.a in Frameworks */,
35
+ );
36
+ runOnlyForDeploymentPostprocessing = 0;
37
+ };
38
+ /* End PBXFrameworksBuildPhase section */
39
+
40
+ /* Begin PBXGroup section */
41
+ 13B07FAE1A68108700A75B9A /* HelloWorld */ = {
42
+ isa = PBXGroup;
43
+ children = (
44
+ 13B07FB01A68108700A75B9A /* AppDelegate.swift */,
45
+ 13B07FB51A68108700A75B9A /* Images.xcassets */,
46
+ 13B07FB61A68108700A75B9A /* Info.plist */,
47
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
48
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
49
+ );
50
+ name = HelloWorld;
51
+ sourceTree = "<group>";
52
+ };
53
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
54
+ isa = PBXGroup;
55
+ children = (
56
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
57
+ 5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */,
58
+ );
59
+ name = Frameworks;
60
+ sourceTree = "<group>";
61
+ };
62
+ 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
63
+ isa = PBXGroup;
64
+ children = (
65
+ );
66
+ name = Libraries;
67
+ sourceTree = "<group>";
68
+ };
69
+ 83CBB9F61A601CBA00E9B192 = {
70
+ isa = PBXGroup;
71
+ children = (
72
+ 13B07FAE1A68108700A75B9A /* HelloWorld */,
73
+ 832341AE1AAA6A7D00B99B32 /* Libraries */,
74
+ 83CBBA001A601CBA00E9B192 /* Products */,
75
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */,
76
+ BBD78D7AC51CEA395F1C20DB /* Pods */,
77
+ );
78
+ indentWidth = 2;
79
+ sourceTree = "<group>";
80
+ tabWidth = 2;
81
+ usesTabs = 0;
82
+ };
83
+ 83CBBA001A601CBA00E9B192 /* Products */ = {
84
+ isa = PBXGroup;
85
+ children = (
86
+ 13B07F961A680F5B00A75B9A /* HelloWorld.app */,
87
+ );
88
+ name = Products;
89
+ sourceTree = "<group>";
90
+ };
91
+ BBD78D7AC51CEA395F1C20DB /* Pods */ = {
92
+ isa = PBXGroup;
93
+ children = (
94
+ 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */,
95
+ 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */,
96
+ );
97
+ path = Pods;
98
+ sourceTree = "<group>";
99
+ };
100
+ /* End PBXGroup section */
101
+
102
+ /* Begin PBXNativeTarget section */
103
+ 13B07F861A680F5B00A75B9A /* HelloWorld */ = {
104
+ isa = PBXNativeTarget;
105
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "HelloWorld" */;
106
+ buildPhases = (
107
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
108
+ 13B07F871A680F5B00A75B9A /* Sources */,
109
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */,
110
+ 13B07F8E1A680F5B00A75B9A /* Resources */,
111
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
112
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
113
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
114
+ );
115
+ buildRules = (
116
+ );
117
+ dependencies = (
118
+ );
119
+ name = HelloWorld;
120
+ productName = HelloWorld;
121
+ productReference = 13B07F961A680F5B00A75B9A /* HelloWorld.app */;
122
+ productType = "com.apple.product-type.application";
123
+ };
124
+ /* End PBXNativeTarget section */
125
+
126
+ /* Begin PBXProject section */
127
+ 83CBB9F71A601CBA00E9B192 /* Project object */ = {
128
+ isa = PBXProject;
129
+ attributes = {
130
+ LastUpgradeCheck = 1210;
131
+ TargetAttributes = {
132
+ 13B07F861A680F5B00A75B9A = {
133
+ LastSwiftMigration = 1120;
134
+ };
135
+ };
136
+ };
137
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "HelloWorld" */;
138
+ compatibilityVersion = "Xcode 12.0";
139
+ developmentRegion = en;
140
+ hasScannedForEncodings = 0;
141
+ knownRegions = (
142
+ en,
143
+ Base,
144
+ );
145
+ mainGroup = 83CBB9F61A601CBA00E9B192;
146
+ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
147
+ projectDirPath = "";
148
+ projectRoot = "";
149
+ targets = (
150
+ 13B07F861A680F5B00A75B9A /* HelloWorld */,
151
+ );
152
+ };
153
+ /* End PBXProject section */
154
+
155
+ /* Begin PBXResourcesBuildPhase section */
156
+ 13B07F8E1A680F5B00A75B9A /* Resources */ = {
157
+ isa = PBXResourcesBuildPhase;
158
+ buildActionMask = 2147483647;
159
+ files = (
160
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
161
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
162
+ );
163
+ runOnlyForDeploymentPostprocessing = 0;
164
+ };
165
+ /* End PBXResourcesBuildPhase section */
166
+
167
+ /* Begin PBXShellScriptBuildPhase section */
168
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
169
+ isa = PBXShellScriptBuildPhase;
170
+ buildActionMask = 2147483647;
171
+ files = (
172
+ );
173
+ inputPaths = (
174
+ "$(SRCROOT)/.xcode.env.local",
175
+ "$(SRCROOT)/.xcode.env",
176
+ );
177
+ name = "Bundle React Native code and images";
178
+ outputPaths = (
179
+ );
180
+ runOnlyForDeploymentPostprocessing = 0;
181
+ shellPath = /bin/sh;
182
+ shellScript = "set -e\nif [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\nsource \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\nsource \"$PODS_ROOT/../.xcode.env.local\"\nfi\nexport CONFIG_CMD=\"dummy-workaround-value\"\nexport CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('rock/package.json')) + '/dist/src/bin.js'\")\"\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
183
+ };
184
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
185
+ isa = PBXShellScriptBuildPhase;
186
+ buildActionMask = 2147483647;
187
+ files = (
188
+ );
189
+ inputFileListPaths = (
190
+ "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks-${CONFIGURATION}-input-files.xcfilelist",
191
+ );
192
+ name = "[CP] Embed Pods Frameworks";
193
+ outputFileListPaths = (
194
+ "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks-${CONFIGURATION}-output-files.xcfilelist",
195
+ );
196
+ runOnlyForDeploymentPostprocessing = 0;
197
+ shellPath = /bin/sh;
198
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-frameworks.sh\"\n";
199
+ showEnvVarsInLog = 0;
200
+ };
201
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
202
+ isa = PBXShellScriptBuildPhase;
203
+ buildActionMask = 2147483647;
204
+ files = (
205
+ );
206
+ inputFileListPaths = (
207
+ );
208
+ inputPaths = (
209
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
210
+ "${PODS_ROOT}/Manifest.lock",
211
+ );
212
+ name = "[CP] Check Pods Manifest.lock";
213
+ outputFileListPaths = (
214
+ );
215
+ outputPaths = (
216
+ "$(DERIVED_FILE_DIR)/Pods-HelloWorld-checkManifestLockResult.txt",
217
+ );
218
+ runOnlyForDeploymentPostprocessing = 0;
219
+ shellPath = /bin/sh;
220
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
221
+ showEnvVarsInLog = 0;
222
+ };
223
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
224
+ isa = PBXShellScriptBuildPhase;
225
+ buildActionMask = 2147483647;
226
+ files = (
227
+ );
228
+ inputFileListPaths = (
229
+ "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources-${CONFIGURATION}-input-files.xcfilelist",
230
+ );
231
+ name = "[CP] Copy Pods Resources";
232
+ outputFileListPaths = (
233
+ "${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources-${CONFIGURATION}-output-files.xcfilelist",
234
+ );
235
+ runOnlyForDeploymentPostprocessing = 0;
236
+ shellPath = /bin/sh;
237
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HelloWorld/Pods-HelloWorld-resources.sh\"\n";
238
+ showEnvVarsInLog = 0;
239
+ };
240
+ /* End PBXShellScriptBuildPhase section */
241
+
242
+ /* Begin PBXSourcesBuildPhase section */
243
+ 13B07F871A680F5B00A75B9A /* Sources */ = {
244
+ isa = PBXSourcesBuildPhase;
245
+ buildActionMask = 2147483647;
246
+ files = (
247
+ 13B07FBC1A68108700A75B9A /* AppDelegate.swift in Sources */,
248
+ );
249
+ runOnlyForDeploymentPostprocessing = 0;
250
+ };
251
+ /* End PBXSourcesBuildPhase section */
252
+
253
+ /* Begin XCBuildConfiguration section */
254
+ 13B07F941A680F5B00A75B9A /* Debug */ = {
255
+ isa = XCBuildConfiguration;
256
+ baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */;
257
+ buildSettings = {
258
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
259
+ CLANG_ENABLE_MODULES = YES;
260
+ CURRENT_PROJECT_VERSION = 1;
261
+ ENABLE_BITCODE = NO;
262
+ INFOPLIST_FILE = HelloWorld/Info.plist;
263
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
264
+ LD_RUNPATH_SEARCH_PATHS = (
265
+ "$(inherited)",
266
+ "@executable_path/Frameworks",
267
+ );
268
+ MARKETING_VERSION = 1.0;
269
+ OTHER_LDFLAGS = (
270
+ "$(inherited)",
271
+ "-ObjC",
272
+ "-lc++",
273
+ );
274
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
275
+ PRODUCT_NAME = HelloWorld;
276
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
277
+ SWIFT_VERSION = 5.0;
278
+ VERSIONING_SYSTEM = "apple-generic";
279
+ };
280
+ name = Debug;
281
+ };
282
+ 13B07F951A680F5B00A75B9A /* Release */ = {
283
+ isa = XCBuildConfiguration;
284
+ baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */;
285
+ buildSettings = {
286
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
287
+ CLANG_ENABLE_MODULES = YES;
288
+ CURRENT_PROJECT_VERSION = 1;
289
+ INFOPLIST_FILE = HelloWorld/Info.plist;
290
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
291
+ LD_RUNPATH_SEARCH_PATHS = (
292
+ "$(inherited)",
293
+ "@executable_path/Frameworks",
294
+ );
295
+ MARKETING_VERSION = 1.0;
296
+ OTHER_LDFLAGS = (
297
+ "$(inherited)",
298
+ "-ObjC",
299
+ "-lc++",
300
+ );
301
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
302
+ PRODUCT_NAME = HelloWorld;
303
+ SWIFT_VERSION = 5.0;
304
+ VERSIONING_SYSTEM = "apple-generic";
305
+ };
306
+ name = Release;
307
+ };
308
+ 83CBBA201A601CBA00E9B192 /* Debug */ = {
309
+ isa = XCBuildConfiguration;
310
+ buildSettings = {
311
+ ALWAYS_SEARCH_USER_PATHS = NO;
312
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
313
+ CLANG_CXX_LANGUAGE_STANDARD = "c++20";
314
+ CLANG_CXX_LIBRARY = "libc++";
315
+ CLANG_ENABLE_MODULES = YES;
316
+ CLANG_ENABLE_OBJC_ARC = YES;
317
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
318
+ CLANG_WARN_BOOL_CONVERSION = YES;
319
+ CLANG_WARN_COMMA = YES;
320
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
321
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
322
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
323
+ CLANG_WARN_EMPTY_BODY = YES;
324
+ CLANG_WARN_ENUM_CONVERSION = YES;
325
+ CLANG_WARN_INFINITE_RECURSION = YES;
326
+ CLANG_WARN_INT_CONVERSION = YES;
327
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
328
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
329
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
330
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
331
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
332
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
333
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
334
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
335
+ CLANG_WARN_UNREACHABLE_CODE = YES;
336
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
337
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
338
+ COPY_PHASE_STRIP = NO;
339
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
340
+ ENABLE_TESTABILITY = YES;
341
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
342
+ GCC_C_LANGUAGE_STANDARD = gnu99;
343
+ GCC_DYNAMIC_NO_PIC = NO;
344
+ GCC_NO_COMMON_BLOCKS = YES;
345
+ GCC_OPTIMIZATION_LEVEL = 0;
346
+ GCC_PREPROCESSOR_DEFINITIONS = (
347
+ "DEBUG=1",
348
+ "$(inherited)",
349
+ );
350
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
351
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
352
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
353
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
354
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
355
+ GCC_WARN_UNUSED_FUNCTION = YES;
356
+ GCC_WARN_UNUSED_VARIABLE = YES;
357
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
358
+ LD_RUNPATH_SEARCH_PATHS = (
359
+ /usr/lib/swift,
360
+ "$(inherited)",
361
+ );
362
+ LIBRARY_SEARCH_PATHS = (
363
+ "\"$(SDKROOT)/usr/lib/swift\"",
364
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
365
+ "\"$(inherited)\"",
366
+ );
367
+ MTL_ENABLE_DEBUG_INFO = YES;
368
+ ONLY_ACTIVE_ARCH = YES;
369
+ OTHER_CPLUSPLUSFLAGS = (
370
+ "$(OTHER_CFLAGS)",
371
+ "-DFOLLY_NO_CONFIG",
372
+ "-DFOLLY_MOBILE=1",
373
+ "-DFOLLY_USE_LIBCPP=1",
374
+ "-DFOLLY_CFG_NO_COROUTINES=1",
375
+ "-DFOLLY_HAVE_CLOCK_GETTIME=1",
376
+ );
377
+ SDKROOT = iphoneos;
378
+ };
379
+ name = Debug;
380
+ };
381
+ 83CBBA211A601CBA00E9B192 /* Release */ = {
382
+ isa = XCBuildConfiguration;
383
+ buildSettings = {
384
+ ALWAYS_SEARCH_USER_PATHS = NO;
385
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
386
+ CLANG_CXX_LANGUAGE_STANDARD = "c++20";
387
+ CLANG_CXX_LIBRARY = "libc++";
388
+ CLANG_ENABLE_MODULES = YES;
389
+ CLANG_ENABLE_OBJC_ARC = YES;
390
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
391
+ CLANG_WARN_BOOL_CONVERSION = YES;
392
+ CLANG_WARN_COMMA = YES;
393
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
394
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
395
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
396
+ CLANG_WARN_EMPTY_BODY = YES;
397
+ CLANG_WARN_ENUM_CONVERSION = YES;
398
+ CLANG_WARN_INFINITE_RECURSION = YES;
399
+ CLANG_WARN_INT_CONVERSION = YES;
400
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
401
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
402
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
403
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
404
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
405
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
406
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
407
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
408
+ CLANG_WARN_UNREACHABLE_CODE = YES;
409
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
410
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
411
+ COPY_PHASE_STRIP = YES;
412
+ ENABLE_NS_ASSERTIONS = NO;
413
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
414
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
415
+ GCC_C_LANGUAGE_STANDARD = gnu99;
416
+ GCC_NO_COMMON_BLOCKS = YES;
417
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
418
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
419
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
420
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
421
+ GCC_WARN_UNUSED_FUNCTION = YES;
422
+ GCC_WARN_UNUSED_VARIABLE = YES;
423
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
424
+ LD_RUNPATH_SEARCH_PATHS = (
425
+ /usr/lib/swift,
426
+ "$(inherited)",
427
+ );
428
+ LIBRARY_SEARCH_PATHS = (
429
+ "\"$(SDKROOT)/usr/lib/swift\"",
430
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
431
+ "\"$(inherited)\"",
432
+ );
433
+ MTL_ENABLE_DEBUG_INFO = NO;
434
+ OTHER_CPLUSPLUSFLAGS = (
435
+ "$(OTHER_CFLAGS)",
436
+ "-DFOLLY_NO_CONFIG",
437
+ "-DFOLLY_MOBILE=1",
438
+ "-DFOLLY_USE_LIBCPP=1",
439
+ "-DFOLLY_CFG_NO_COROUTINES=1",
440
+ "-DFOLLY_HAVE_CLOCK_GETTIME=1",
441
+ );
442
+ SDKROOT = iphoneos;
443
+ VALIDATE_PRODUCT = YES;
444
+ };
445
+ name = Release;
446
+ };
447
+ /* End XCBuildConfiguration section */
448
+
449
+ /* Begin XCConfigurationList section */
450
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "HelloWorld" */ = {
451
+ isa = XCConfigurationList;
452
+ buildConfigurations = (
453
+ 13B07F941A680F5B00A75B9A /* Debug */,
454
+ 13B07F951A680F5B00A75B9A /* Release */,
455
+ );
456
+ defaultConfigurationIsVisible = 0;
457
+ defaultConfigurationName = Release;
458
+ };
459
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "HelloWorld" */ = {
460
+ isa = XCConfigurationList;
461
+ buildConfigurations = (
462
+ 83CBBA201A601CBA00E9B192 /* Debug */,
463
+ 83CBBA211A601CBA00E9B192 /* Release */,
464
+ );
465
+ defaultConfigurationIsVisible = 0;
466
+ defaultConfigurationName = Release;
467
+ };
468
+ /* End XCConfigurationList section */
469
+ };
470
+ rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
471
+ }
@@ -0,0 +1,70 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ LastUpgradeVersion = "1210"
4
+ version = "1.3">
5
+ <BuildAction
6
+ parallelizeBuildables = "YES"
7
+ buildImplicitDependencies = "YES">
8
+ <BuildActionEntries>
9
+ <BuildActionEntry
10
+ buildForTesting = "YES"
11
+ buildForRunning = "YES"
12
+ buildForProfiling = "YES"
13
+ buildForArchiving = "YES"
14
+ buildForAnalyzing = "YES">
15
+ <BuildableReference
16
+ BuildableIdentifier = "primary"
17
+ BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
18
+ BuildableName = "HelloWorld.app"
19
+ BlueprintName = "HelloWorld"
20
+ ReferencedContainer = "container:HelloWorld.xcodeproj">
21
+ </BuildableReference>
22
+ </BuildActionEntry>
23
+ </BuildActionEntries>
24
+ </BuildAction>
25
+ <LaunchAction
26
+ buildConfiguration = "Debug"
27
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+ launchStyle = "0"
30
+ useCustomWorkingDirectory = "NO"
31
+ ignoresPersistentStateOnLaunch = "NO"
32
+ debugDocumentVersioning = "YES"
33
+ debugServiceExtension = "internal"
34
+ allowLocationSimulation = "YES">
35
+ <BuildableProductRunnable
36
+ runnableDebuggingMode = "0">
37
+ <BuildableReference
38
+ BuildableIdentifier = "primary"
39
+ BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
40
+ BuildableName = "HelloWorld.app"
41
+ BlueprintName = "HelloWorld"
42
+ ReferencedContainer = "container:HelloWorld.xcodeproj">
43
+ </BuildableReference>
44
+ </BuildableProductRunnable>
45
+ </LaunchAction>
46
+ <ProfileAction
47
+ buildConfiguration = "Release"
48
+ shouldUseLaunchSchemeArgsEnv = "YES"
49
+ savedToolIdentifier = ""
50
+ useCustomWorkingDirectory = "NO"
51
+ debugDocumentVersioning = "YES">
52
+ <BuildableProductRunnable
53
+ runnableDebuggingMode = "0">
54
+ <BuildableReference
55
+ BuildableIdentifier = "primary"
56
+ BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
57
+ BuildableName = "HelloWorld.app"
58
+ BlueprintName = "HelloWorld"
59
+ ReferencedContainer = "container:HelloWorld.xcodeproj">
60
+ </BuildableReference>
61
+ </BuildableProductRunnable>
62
+ </ProfileAction>
63
+ <AnalyzeAction
64
+ buildConfiguration = "Debug">
65
+ </AnalyzeAction>
66
+ <ArchiveAction
67
+ buildConfiguration = "Release"
68
+ revealArchiveInOrganizer = "YES">
69
+ </ArchiveAction>
70
+ </Scheme>
@@ -0,0 +1,35 @@
1
+ # Resolve react_native_pods.rb with node to allow for hoisting
2
+ require Pod::Executable.execute_command('node', ['-p',
3
+ 'require.resolve(
4
+ "react-native/scripts/react_native_pods.rb",
5
+ {paths: [process.argv[1]]},
6
+ )', __dir__]).strip
7
+
8
+ platform :ios, min_ios_version_supported
9
+ prepare_react_native_project!
10
+
11
+ linkage = ENV['USE_FRAMEWORKS']
12
+ if linkage != nil
13
+ Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
14
+ use_frameworks! :linkage => linkage.to_sym
15
+ end
16
+
17
+ target 'HelloWorld' do
18
+ config = use_native_modules!(['npx', 'rock', 'config', '-p', 'ios'])
19
+
20
+ use_react_native!(
21
+ :path => config[:reactNativePath],
22
+ # An absolute path to your application root.
23
+ :app_path => "#{Pod::Config.instance.installation_root}/.."
24
+ )
25
+
26
+ post_install do |installer|
27
+ # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
28
+ react_native_post_install(
29
+ installer,
30
+ config[:reactNativePath],
31
+ :mac_catalyst_enabled => false,
32
+ # :ccache_enabled => true
33
+ )
34
+ end
35
+ end
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "rock-platform-ios-template",
3
+ "scripts": {
4
+ "ios": "rock run:ios"
5
+ },
6
+ "devDependencies": {
7
+ "@rock-js/platform-ios": "^0.8.13"
8
+ }
9
+ }