Compare commits

...
Author SHA1 Message Date
Eric Samelson cf823f7352 exclude src/types/xcode.d.ts from tslint 2020-10-02 19:04:38 -07:00
Brent Vatne 9219e7ca4f bump versions 2020-10-02 18:57:38 -07:00
Brent Vatne 4aec3d5ba7 Update CHANGELOG 2020-10-02 18:40:08 -07:00
Brent Vatne d2eb447ebc [android] update sdk39 tarball 2020-10-02 18:16:21 -07:00
Dominik Sokal f177cf4d7f update ios smoke tests recordings (#264) 2020-09-29 15:31:52 +02:00
Dominik Sokal 59a181dee0 update CHANGELOG 2020-09-23 12:16:02 +02:00
Dominik Sokal f4bf860a9a Release 0.18.1 2020-09-23 12:12:59 +02:00
Dominik Sokal 932958ad46 fix building expo sdk 39 with turtle-cli 2020-09-23 12:09:45 +02:00
Eric Samelson 2a54b4578a update CHANGELOG 2020-09-21 15:08:37 -07:00
9 changed files with 1038 additions and 161 deletions

No files matched your search

+5 -5
View File
@@ -164,7 +164,7 @@ commands:
default: ios
sdk_version:
type: string
default: sdk37
default: sdk39
steps:
- restore_cache:
key: "workingdir-v2-<< parameters.platform >>-<< parameters.sdk_version >>"
@@ -179,7 +179,7 @@ commands:
default: ios
sdk_version:
type: string
default: sdk37
default: sdk39
steps:
- save_cache:
key: "workingdir-v2-<< parameters.platform >>-<< parameters.sdk_version >>"
@@ -238,14 +238,14 @@ jobs:
- save_yarn_cache:
platform: darwin
- restore_workingdir_cache:
sdk_version: sdk37
sdk_version: sdk39
platform: ios
- run:
name: Run iOS smoke tests
command: SDK_VERSION=sdk37 ./scripts/tests/runIOSSmokeTestsCI.sh
command: SDK_VERSION=sdk39 ./scripts/tests/runIOSSmokeTestsCI.sh
- save_workingdir_cache:
workingdir: /Users/distiller/project/workingdir
sdk_version: sdk37
sdk_version: sdk39
platform: ios
android_smoke_tests:
+11
View File
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
- Updated SDK 39 Android tarball
- Update @expo/config and @expo/xdl. Temporarily bring in type definitions for color-string and xcode.
## [0.18.1] - 2020-09-22
### Fixed
- Fix building apps using SDK 39 for Android.
## [0.18.0] - 2020-09-21
### Added
- Added iOS and Android shell apps for SDK 39.
+4 -3
View File
@@ -1,6 +1,6 @@
{
"name": "turtle-cli",
"version": "0.18.0",
"version": "0.18.1",
"description": "The command-line tool for building standalone Expo apps",
"preferGlobal": true,
"scripts": {
@@ -68,6 +68,7 @@
},
"devDependencies": {
"@expo/babel-preset-cli": "^0.1.3",
"@types/color-string": "^1.5.0",
"@types/decompress": "^4.2.3",
"@types/fs-extra": "^5.0.4",
"@types/ioredis": "^4.16.6",
@@ -104,9 +105,9 @@
"typescript": "^3.9.5"
},
"dependencies": {
"@expo/config": "^3.2.14",
"@expo/config": "~3.3.9",
"@expo/spawn-async": "^1.4.2",
"@expo/xdl": "57.9.35",
"@expo/xdl": "58.0.12",
"@google-cloud/logging-bunyan": "^2.0.3",
"async-retry": "^1.2.1",
"aws-sdk": "^2.226.1",
+1 -1
View File
@@ -1 +1 @@
s3://exp-artifacts/android-shell-builder-29a8a376760deecc41efffc0d8ae420a63559654.tar.gz
s3://exp-artifacts/android-shell-builder-401ff3fb71a1350c00bd0886f7eb4fd462bdf0c0.tar.gz
+1 -1
View File
@@ -1 +1 @@
[{"scope":"https://sqs.us-west-2.amazonaws.com:443","method":"POST","path":"/","body":"Action=ReceiveMessage&MaxNumberOfMessages=1&QueueUrl=https%3A%2F%2Fsqs.us-west-2.amazonaws.com%2F274251141632%2Fturtle_jobs_local_dominik_ios_in.fifo&Version=2012-11-05&VisibilityTimeout=30","status":200,"response":"<?xml version=\"1.0\"?><ReceiveMessageResponse xmlns=\"http://queue.amazonaws.com/doc/2012-11-05/\"><ReceiveMessageResult><Message><MessageId>05cbd74e-0c64-486f-a7e4-607abc3aaf2a</MessageId><ReceiptHandle>AQEB+bslyZTn6YlgvfhEznBALIRLejznK2LRiyoEVQNtRiglGEQ1f8KWtEykEqCC49N3J2A9yQD2vPIsPz+2Ad2QuEqsQVnkrx3STeoqu6icQesfdDDtq89ma76A6qbTy74sp23yVb8J0N8acUCW5M9oHaqqeNjbC/OoyO7P3zDHXXkydub5Kn72NAzNtfFOwnxfNCwKuKR4MKlsSC96P2GSHfR7S0wcUtcLpwtLMrbprMxgzN00qVudMRFLzpG4AC1gpGHHjzWuyQ41eL0AQ73T82Gga5ZiPqZ/QD4n8MQ5El7gz/mMNUL+JiKM2KCU3Jx2</ReceiptHandle><MD5OfBody>c136cec4c14d07668b5975e69bcc3330</MD5OfBody><Body>{&quot;id&quot;:&quot;ffb51e07-7cde-4b8e-a293-a2232feab913&quot;,&quot;experienceId&quot;:&quot;dfddc5d4-1d2a-4106-bd45-cb476ffce76e&quot;,&quot;experienceName&quot;:&quot;@dsokal-local/turtle-cli-example&quot;,&quot;platform&quot;:&quot;ios&quot;,&quot;config&quot;:{&quot;releaseChannel&quot;:&quot;default&quot;,&quot;usesNonExemptEncryption&quot;:false,&quot;buildType&quot;:&quot;archive&quot;,&quot;bundleIdentifier&quot;:&quot;com.expo.turtle.cli.example&quot;},&quot;status&quot;:&quot;sent-to-queue&quot;,&quot;sdkVersion&quot;:&quot;37.0.0&quot;,&quot;accountId&quot;:&quot;fbd6360b-e85d-485e-bf20-ab66adfeea16&quot;,&quot;priority&quot;:&quot;normal&quot;,&quot;credentials&quot;:{&quot;teamId&quot;:&quot;QL76XYH73P&quot;,&quot;teamName&quot;:&quot;Alicja Warchał (Individual)&quot;,&quot;apnsKeyId&quot;:&quot;Z2J59NHNCT&quot;,&quot;apnsKeyP8&quot;:&quot;-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQguLC/A0xR+9Wl0iZu\\n3gI7vY7WdK43Gi/AmxaNd+ClqD+gCgYIKoZIzj0DAQehRANCAATo7Wnhxs2gr6mn\\nRUhOthWykpMudxrcVdfHmPDZBiP/W9gzhMso9vDJf8S7fJrYRV2V+DsZWL/hVll3\\net4AYU+X\\n-----END PRIVATE KEY-----&quot;,&quot;certP12&quot;:&quot;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 truncated
[{"scope":"https://sqs.us-west-2.amazonaws.com:443","method":"POST","path":"/","body":"Action=ReceiveMessage&MaxNumberOfMessages=1&QueueUrl=https%3A%2F%2Fsqs.us-west-2.amazonaws.com%2F274251141632%2Fturtle_jobs_local_dominik_ios_in.fifo&Version=2012-11-05&VisibilityTimeout=30","status":200,"response":"<?xml version=\"1.0\"?><ReceiveMessageResponse xmlns=\"http://queue.amazonaws.com/doc/2012-11-05/\"><ReceiveMessageResult><Message><MessageId>99e0e5ee-90ef-494e-a275-3c1d55b58d9c</MessageId><ReceiptHandle>AQEB73473140rmgRe58W4T81ev8RJFQ0PvS6vOcHcSVdAV9D+bmP66k8qIqGuc0LJqR4bE9GLWG+QnM7N8rRW1tjIB74Gt9Co3PD7KFwrdgjZ3eys3fjK9nMfOj7BI0DMIP2xWi3YC90300dr/tTgJhVxfDh+Y0nYWleN9qEmttJoRqlJdSMgokqBR5VBFbhAmoNfsbSQnLzwU7fe/g2gjarImBRaCYpNWHYmS9CLozP5RBGKCddzQLvaNxDwORZXzHbYPZha5eFIDfXa3ncBtK2XdbOiquCmEB1tMt9ziIEOObSt/Vu7CD+ANhRqdqEFL/x</ReceiptHandle><MD5OfBody>ebe1f299d094649b2f3857bbd6f380ec</MD5OfBody><Body>{&quot;id&quot;:&quot;883f68d1-398a-4327-83da-6de1f288456d&quot;,&quot;experienceId&quot;:&quot;2945b084-8989-4a02-b781-2a620034a172&quot;,&quot;experienceName&quot;:&quot;@dsokal/turtle-cli-example&quot;,&quot;platform&quot;:&quot;ios&quot;,&quot;config&quot;:{&quot;releaseChannel&quot;:&quot;default&quot;,&quot;usesNonExemptEncryption&quot;:false,&quot;buildType&quot;:&quot;archive&quot;,&quot;bundleIdentifier&quot;:&quot;com.expo.turtle.cli.example&quot;},&quot;status&quot;:&quot;sent-to-queue&quot;,&quot;sdkVersion&quot;:&quot;39.0.0&quot;,&quot;accountId&quot;:&quot;07eb1118-80a9-4769-a9b5-9f429cab29e2&quot;,&quot;priority&quot;:&quot;normal&quot;,&quot;credentials&quot;:{&quot;apnsKeyId&quot;:&quot;54G5NV49UY&quot;,&quot;apnsKeyP8&quot;:&quot;-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgBtkLIodAlsdUmV1L\\nxirn9Erof29278yzTaR/NNlvF0igCgYIKoZIzj0DAQehRANCAAS5jlfFX2KmTFi/\\ng+aohp77kCfYRZNYYmn4cgn4dKkXu5YOGbTJlzW6384xDpX6uWcXXytKD9cO00uN\\n8v9j4MT6\\n-----END PRIVATE KEY-----&quot;,&quot;teamId&quot;:&quot;QL76XYH73P&quot;,&quot;teamName&quot;:&quot;Alicja Warchał (Individual)&quot;,&quot;certP12&quot;:&quot;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 truncated
+1
View File
@@ -67,6 +67,7 @@ function _createEnvVars(androidSdkDir: string) {
return {
ANDROID_HOME: androidSdkDir,
ANDROID_SDK: androidSdkDir,
ANDROID_NDK_HOME: path.join(androidSdkDir, 'ndk/17.2.4988734'),
};
}
+472
View File
@@ -0,0 +1,472 @@
interface pbxFile {
basename: string;
lastKnownFileType?: string;
group?: string;
path?: string;
fileEncoding?: number;
defaultEncoding?: number;
sourceTree: string;
includeInIndex?: number;
explicitFileType?: unknown;
settings?: object;
uuid?: string;
fileRef: string;
target?: string;
}
declare module 'xcode' {
/**
* UUID that is a key to each fragment of PBXProject.
*/
type UUID = string;
/**
* if has following format `${UUID}_comment`
*/
type UUIDComment = string;
type XCObjectType =
| 'PBXBuildFile'
| 'PBXFileReference'
| 'PBXFrameworksBuildPhase'
| 'PBXGroup'
| 'PBXNativeTarget'
| 'PBXProject'
| 'PBXResourcesBuildPhase'
| 'PBXShellScriptBuildPhase'
| 'PBXSourcesBuildPhase'
| 'PBXVariantGroup'
| 'XCBuildConfiguration'
| 'XCConfigurationList';
type PBXFile = pbxFile;
interface PBXProject {
isa: 'PBXProject';
attributes: {
LastUpgradeCheck: number;
TargetAttributes: Record<
UUID,
{
CreatedOnToolsVersion?: string;
TestTargetID?: UUID;
LastSwiftMigration?: number;
ProvisioningStyle?: string;
} & Record<string, undefined | number | string>
>;
};
buildConfigurationList: UUID;
buildConfigurationList_comment: string;
compatibilityVersion: string;
developmentRegion: string;
hasScannedForEncodings: number;
knownRegions: string[];
mainGroup: UUID;
productRefGroup: UUID;
productRefGroup_comment: string;
projectDirPath: string;
projectRoot: string;
targets: Array<{
value: UUID;
comment: string;
}>;
}
interface PBXNativeTarget {
isa: 'PBXNativeTarget';
buildConfigurationList: UUID;
buildConfigurationList_comment: string;
buildPhases: Array<{
value: UUID;
comment: string;
}>;
buildRules: [];
dependencies: [];
name: string;
productName: string;
productReference: UUID;
productReference_comment: string;
productType: string;
}
interface PBXBuildFile {
isa: 'PBXBuildFile';
fileRef: UUID;
// "AppDelegate.m"
fileRef_comment: string;
}
interface XCConfigurationList {
isa: 'XCConfigurationList';
buildConfigurations: Array<{
value: UUID;
comment: string | 'Release' | 'Debug';
}>;
defaultConfigurationIsVisible: number;
defaultConfigurationName: string;
}
interface XCBuildConfiguration {
isa: 'XCBuildConfiguration';
baseConfigurationReference: UUID;
baseConfigurationReference_comment: string;
buildSettings: Record<string, string | undefined | number | Array<unknown>> & {
// '"$(TARGET_NAME)"',
PRODUCT_NAME?: string;
// '"io.expo.demo.$(PRODUCT_NAME:rfc1034identifier)"',
PRODUCT_BUNDLE_IDENTIFIER?: string;
PROVISIONING_PROFILE_SPECIFIER?: string;
// '"$(BUILT_PRODUCTS_DIR)/rni.app/rni"'
TEST_HOST?: any;
DEVELOPMENT_TEAM?: string;
CODE_SIGN_IDENTITY?: string;
CODE_SIGN_STYLE?: string;
// '"$(TEST_HOST)"'
BUNDLE_LOADER?: string;
GCC_PREPROCESSOR_DEFINITIONS?: Array<unknown>;
INFOPLIST_FILE?: string;
IPHONEOS_DEPLOYMENT_TARGET?: string;
LD_RUNPATH_SEARCH_PATHS?: string;
OTHER_LDFLAGS?: Array<unknown>;
ASSETCATALOG_COMPILER_APPICON_NAME?: string;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME?: string;
CLANG_ANALYZER_NONNULL?: string;
CLANG_WARN_DOCUMENTATION_COMMENTS?: string;
CLANG_WARN_INFINITE_RECURSION?: string;
CLANG_WARN_SUSPICIOUS_MOVE?: string;
DEBUG_INFORMATION_FORMAT?: string;
ENABLE_TESTABILITY?: string;
GCC_NO_COMMON_BLOCKS?: string;
// 'appletvos'
SDKROOT?: string;
TARGETED_DEVICE_FAMILY?: number | string;
// '10.0'
TVOS_DEPLOYMENT_TARGET?: string;
};
name: string;
}
type ProductType =
| 'com.apple.product-type.application'
| 'com.apple.product-type.app-extension'
| 'com.apple.product-type.bundle'
| 'com.apple.product-type.tool'
| 'com.apple.product-type.library.dynamic'
| 'com.apple.product-type.framework'
| 'com.apple.product-type.library.static'
| 'com.apple.product-type.bundle.unit-test'
| 'com.apple.product-type.application.watchapp'
| 'com.apple.product-type.application.watchapp2'
| 'com.apple.product-type.watchkit-extension'
| 'com.apple.product-type.watchkit2-extension';
interface PBXGroup {
isa: 'PBXGroup';
children: Array<{
value: UUID;
comment?: string;
}>;
name: string;
path?: string;
sourceTree: '"<group>"' | unknown;
}
export class XcodeProject {
/**
* `.pbxproj` file path.
*/
public filepath: string;
// Ex: '$(TARGET_NAME)'
public productName: string;
public hash: {
headComment: string;
project: {
archiveVersion: number;
objectVersion: number;
objects: {
[T in XCObjectType]: Record<
string,
{
isa: T;
name: string;
[key: string]: any;
}
>;
};
rootObject: string;
rootObject_comment: string;
};
};
constructor(pbxprojPath: string);
// ------------------------------------------------------------------------
//
// `.pbxproj` related operation - starting & ending point.
//
// ------------------------------------------------------------------------
/**
* First step to be executed while working with `.pbxproj` file.
*/
public parse(callback?: (err: Error | null, results?: string) => void): this;
public parseSync(): void;
/**
* @returns Content of .pbxproj file.
*/
public writeSync(options?: { omitEmptyValues?: boolean }): string;
public allUuids(): UUID[];
public generateUuid(): UUID;
public addPluginFile(path: unknown, opt: unknown): unknown;
public removePluginFile(path: unknown, opt: unknown): unknown;
public addProductFile(targetPath: unknown, opt: unknown): unknown;
public removeProductFile(path: unknown, opt: unknown): unknown;
public addSourceFile(path: string, opt: unknown, group: string): unknown;
public removeSourceFile(path: string, opt: unknown, group: string): unknown;
public addHeaderFile(path: string, opt: unknown, group: string): unknown;
public removeHeaderFile(path: string, opt: unknown, group: string): unknown;
public addResourceFile(path: string, opt: unknown, group: string): unknown;
public removeResourceFile(path: string, opt: unknown, group: string): unknown;
public addFramework(fpath: unknown, opt: unknown): unknown;
public removeFramework(fpath: unknown, opt: unknown): unknown;
public addCopyfile(fpath: unknown, opt: unknown): unknown;
public pbxCopyfilesBuildPhaseObj(target: unknown): unknown;
public addToPbxCopyfilesBuildPhase(file: unknown): void;
public removeCopyfile(fpath: unknown, opt: unknown): unknown;
public removeFromPbxCopyfilesBuildPhase(file: unknown): void;
public addStaticLibrary(path: unknown, opt: unknown): unknown;
/**
* Adds to `PBXBuildFile` section
*/
public addToPbxBuildFileSection(file: PBXFile): void;
public removeFromPbxBuildFileSection(file: unknown): void;
public addPbxGroup(
filePathsArray: string[],
name: string,
path: string,
sourceTree?: string,
): { uuid: UUID; pbxGroup: PBXGroup };
public removePbxGroup(groupName: unknown): void;
public addToPbxProjectSection(target: unknown): void;
public addToPbxNativeTargetSection(target: unknown): void;
public addToPbxFileReferenceSection(file: any): void;
public removeFromPbxFileReferenceSection(file: unknown): unknown;
public addToXcVersionGroupSection(file: unknown): void;
public addToPluginsPbxGroup(file: unknown): void;
public removeFromPluginsPbxGroup(file: unknown): unknown;
public addToResourcesPbxGroup(file: unknown): void;
public removeFromResourcesPbxGroup(file: unknown): unknown;
public addToFrameworksPbxGroup(file: unknown): void;
public removeFromFrameworksPbxGroup(file: unknown): unknown;
public addToPbxEmbedFrameworksBuildPhase(file: unknown): void;
public removeFromPbxEmbedFrameworksBuildPhase(file: unknown): void;
public addToProductsPbxGroup(file: unknown): void;
public removeFromProductsPbxGroup(file: unknown): unknown;
public addToPbxSourcesBuildPhase(file: unknown): void;
public removeFromPbxSourcesBuildPhase(file: unknown): void;
/**
* Adds to PBXResourcesBuildPhase` section
* @param resourcesBuildPhaseSectionKey Because there's might more than one `Resources` build phase we need to ensure file is placed under correct one.
*/
public addToPbxResourcesBuildPhase(file: PBXFile): void;
public removeFromPbxResourcesBuildPhase(file: unknown): void;
public addToPbxFrameworksBuildPhase(file: unknown): void;
public removeFromPbxFrameworksBuildPhase(file: unknown): void;
public addXCConfigurationList(
configurationObjectsArray: unknown,
defaultConfigurationName: unknown,
comment: unknown,
): {
uuid: unknown;
xcConfigurationList: {
isa: string;
buildConfigurations: Array<unknown>;
defaultConfigurationIsVisible: number;
defaultConfigurationName: unknown;
};
};
public addTargetDependency(
target: unknown,
dependencyTargets: unknown,
): {
uuid: unknown;
target: unknown;
};
public addBuildPhase(
filePathsArray: unknown,
buildPhaseType: unknown,
comment: unknown,
target: unknown,
optionsOrFolderType: unknown,
subfolderPath: unknown,
): {
uuid: unknown;
buildPhase: {
isa: unknown;
buildActionMask: number;
files: Array<unknown>;
runOnlyForDeploymentPostprocessing: number;
};
};
/**
* Retrieves main part describing PBXProjects that are available in `.pbxproj` file.
*/
public pbxProjectSection(): Record<UUID, PBXProject> & Record<UUIDComment, string>;
public pbxBuildFileSection(): Record<UUID, PBXBuildFile> & Record<UUIDComment, string>;
public pbxXCBuildConfigurationSection(): Record<UUID, XCBuildConfiguration> &
Record<UUIDComment, string>;
public pbxFileReferenceSection(): Record<UUID, PBXFile> & Record<UUIDComment, string>;
public pbxNativeTargetSection(): Record<UUID, PBXNativeTarget> & Record<UUIDComment, string>;
public xcVersionGroupSection(): unknown;
public pbxXCConfigurationList(): Record<UUID, XCConfigurationList> & Record<UUIDComment, string>;
public pbxGroupByName(name: string): PBXGroup | undefined;
/**
* @param targetName in most cases it's the name of the application
*/
public pbxTargetByName(targetName: string): PBXNativeTarget | undefined;
public findTargetKey(name: string): string;
public pbxItemByComment(name: string, pbxSectionName: unknown): unknown;
public pbxSourcesBuildPhaseObj(target: unknown): unknown;
public pbxResourcesBuildPhaseObj(target: unknown): unknown;
public pbxFrameworksBuildPhaseObj(target: unknown): unknown;
public pbxEmbedFrameworksBuildPhaseObj(target: unknown): unknown;
public buildPhase(group: unknown, target: unknown): string;
public buildPhaseObject(name: string, group: unknown, target: unknown): unknown;
public addBuildProperty(prop: unknown, value: unknown, build_name: unknown): void;
public removeBuildProperty(prop: unknown, build_name: unknown): void;
public updateBuildProperty(prop: string, value: unknown, build: string): void;
public updateProductName(name: string): void;
public removeFromFrameworkSearchPaths(file: unknown): void;
public addToFrameworkSearchPaths(file: unknown): void;
public removeFromLibrarySearchPaths(file: unknown): void;
public addToLibrarySearchPaths(file: unknown): void;
public removeFromHeaderSearchPaths(file: unknown): void;
public addToHeaderSearchPaths(file: unknown): void;
public addToOtherLinkerFlags(flag: unknown): void;
public removeFromOtherLinkerFlags(flag: unknown): void;
public addToBuildSettings(buildSetting: unknown, value: unknown): void;
public removeFromBuildSettings(buildSetting: unknown): void;
/**
* Checks whether there is a file with given `filePath` in the project.
*/
public hasFile(filePath: string): PBXFile | false;
public addTarget(
name: unknown,
type: unknown,
subfolder: unknown,
): {
uuid: unknown;
pbxNativeTarget: {
isa: string;
name: string;
productName: string;
productReference: unknown;
productType: string;
buildConfigurationList: unknown;
buildPhases: Array<unknown>;
buildRules: Array<unknown>;
dependencies: Array<unknown>;
};
};
/**
* Get First PBXProject that can be found in `.pbxproj` file.
*/
public getFirstProject(): { uuid: UUID; firstProject: PBXProject };
public getFirstTarget(): {
uuid: UUID;
firstTarget: unknown;
};
/**
* Retrieves PBXNativeTarget by the type
*/
public getTarget(productType: ProductType): { uuid: UUID; target: PBXNativeTarget } | null;
public addToPbxGroupType(file: unknown, groupKey: unknown, groupType: unknown): void;
public addToPbxVariantGroup(file: unknown, groupKey: unknown): void;
public addToPbxGroup(file: PBXFile, groupKey: UUID): void;
public pbxCreateGroupWithType(name: unknown, pathName: unknown, groupType: unknown): unknown;
public pbxCreateVariantGroup(name: unknown): unknown;
public pbxCreateGroup(name: string, pathName: string): UUID;
public removeFromPbxGroupAndType(file: unknown, groupKey: unknown, groupType: unknown): void;
public removeFromPbxGroup(file: unknown, groupKey: unknown): void;
public removeFromPbxVariantGroup(file: unknown, groupKey: unknown): void;
public getPBXGroupByKeyAndType(key: unknown, groupType: unknown): unknown;
/**
* @param groupKey UUID.
*/
public getPBXGroupByKey(groupKey: string): PBXGroup | undefined;
public getPBXVariantGroupByKey(key: unknown): unknown;
public findPBXGroupKeyAndType(criteria: unknown, groupType: unknown): string;
/**
* @param criteria Params that should be used to locate desired PBXGroup.
*/
public findPBXGroupKey(criteria: { name?: string; path?: string }): UUID | undefined;
public findPBXVariantGroupKey(criteria: unknown): string;
public addLocalizationVariantGroup(
name: unknown,
): {
uuid: unknown;
fileRef: unknown;
basename: unknown;
};
public addKnownRegion(name: string): void;
public removeKnownRegion(name: string): void;
public hasKnownRegion(name: string): boolean;
public getPBXObject(name: string): unknown;
/**
* - creates `PBXFile`
* - adds to `PBXFileReference` section
* - adds to `PBXGroup` or `PBXVariantGroup` if applicable
* @returns `null` if file is already in `pbxproj`.
*/
public addFile(
path: string,
group?: string,
opt?: {
plugin?: string;
target?: string;
variantGroup?: string;
lastKnownFileType?: string;
defaultEncoding?: 4;
customFramework?: true;
explicitFileType?: number;
weak?: true;
compilerFLags?: string;
embed?: boolean;
sign?: boolean;
},
): PBXFile | null;
public removeFile(path: unknown, group: unknown, opt: unknown): unknown;
public getBuildProperty(prop: unknown, build: unknown): unknown;
public getBuildConfigByName(name: unknown): object;
public addDataModelDocument(filePath: unknown, group: unknown, opt: unknown): unknown;
public addTargetAttribute(prop: unknown, value: unknown, target: unknown): void;
public removeTargetAttribute(prop: unknown, target: unknown): void;
}
export function project(projectPath: string): XcodeProject;
}
declare module 'xcode/lib/pbxFile' {
export default class PBXFile implements pbxFile {
public basename: string;
public lastKnownFileType?: string;
public group?: string;
public path?: string;
public fileEncoding?: number;
public defaultEncoding?: number;
public sourceTree: string;
public includeInIndex?: number;
public explicitFileType?: unknown;
public settings?: object;
public uuid?: string;
public fileRef: string;
public target?: string;
constructor(file: string);
}
}
+6 -1
View File
@@ -10,5 +10,10 @@
},
"rulesDirectory": [
"node_modules/tslint-eslint-rules/dist/rules"
]
],
"linterOptions": {
"exclude": [
"src/types/xcode.d.ts"
]
}
}
+537 -150
View File
File diff suppressed because it is too large. Load diff