diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock index 6ddd7f766a5c8..7a6f2c8ddf96c 100644 --- a/apps/bare-expo/ios/Podfile.lock +++ b/apps/bare-expo/ios/Podfile.lock @@ -818,6 +818,6 @@ SPEC CHECKSUMS: Yoga: ba3d99dbee6c15ea6bbe3783d1f0cb1ffb79af0f ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb -PODFILE CHECKSUM: f8c0544004c7ca9ffcae29a1b9efb91846964d98 +PODFILE CHECKSUM: f9b310a7da0a72b720dd3e0eaf31394e24c3f736 COCOAPODS: 1.8.4 diff --git a/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml b/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml index c4473d8cfab21..8c0dbea79e340 100644 --- a/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml +++ b/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml @@ -72,6 +72,8 @@ CACHE_KEYS: FILES: - "../../../../packages/expo-application/ios/EXApplication/EXApplication.h" - "../../../../packages/expo-application/ios/EXApplication/EXApplication.m" + - "../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h" + - "../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.m" PROJECT_NAME: EXApplication SPECS: - EXApplication (2.0.0) diff --git a/apps/bare-expo/ios/Pods/EXApplication.xcodeproj/project.pbxproj b/apps/bare-expo/ios/Pods/EXApplication.xcodeproj/project.pbxproj index 29f69aa0b615a..e621917fe9122 100644 --- a/apps/bare-expo/ios/Pods/EXApplication.xcodeproj/project.pbxproj +++ b/apps/bare-expo/ios/Pods/EXApplication.xcodeproj/project.pbxproj @@ -7,13 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0560D794600CFE40E188E00EBF945672 /* EXApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = 942BA3DCC31B49B1C7AE247F63CCD1D9 /* EXApplication.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3E0A6E117CE1EB645AD6CB5366F3CB6B /* EXApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F49A07610E8DBAD5E3325969C38D4D1 /* EXApplication.m */; }; - FC2CFD78B2352D3B7A770827466B91D1 /* EXApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BD39DA3713290E1FBFBF644FEC37580 /* EXApplication-dummy.m */; }; + 6006F8BCB338392C4840802E78258109 /* EXProvisioningProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = FCD09223BE8BA98359BAB3F3B6E2C378 /* EXProvisioningProfile.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 967988573BD1C463F2D68DA4E81E4782 /* EXApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = FDA07064C97E9CA44220AA025B0277A1 /* EXApplication.m */; }; + AACC7490A272E513C6A4FACF311EFC48 /* EXApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BDD770EC605D4026F01E0A23E293DE3A /* EXApplication-dummy.m */; }; + DE81588EC64BD00A405B9588CFC9E4C7 /* EXProvisioningProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 92FCE6B04C68A17137CAADC31CA3E66E /* EXProvisioningProfile.m */; }; + F3D6F7E4E7BB4886A17FDCE58D6E2ADE /* EXApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = E5365CB76DAB444D94EF4ABC71C9D4E4 /* EXApplication.h */; settings = {ATTRIBUTES = (Project, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 232BCB2183874FDAC000FD63AC31D35D /* PBXContainerItemProxy */ = { + B6BE829E166BB7A8E45B0500A70DF3E4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D235D9A92F093BF19BC4BA36FEA73BBB /* UMCore.xcodeproj */; proxyType = 1; @@ -23,18 +25,20 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 4BD39DA3713290E1FBFBF644FEC37580 /* EXApplication-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXApplication-dummy.m"; sourceTree = ""; }; - 4DC40075816071A63B7E17AEF2D6BA67 /* EXApplication.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EXApplication.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 942BA3DCC31B49B1C7AE247F63CCD1D9 /* EXApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXApplication.h; path = EXApplication/EXApplication.h; sourceTree = ""; }; - 9A878CD3B762F5E2C37C5FDE648235DA /* EXApplication-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXApplication-prefix.pch"; sourceTree = ""; }; - 9F49A07610E8DBAD5E3325969C38D4D1 /* EXApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXApplication.m; path = EXApplication/EXApplication.m; sourceTree = ""; }; + 025B549F4E70B5BC49734E7C075AB9F4 /* EXApplication.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EXApplication.xcconfig; sourceTree = ""; }; + 34CAFC2C3AFDA8467578ACF8129D7A3E /* EXApplication-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXApplication-prefix.pch"; sourceTree = ""; }; + 910CF845517F9CA85E417536E2EAA5F4 /* EXApplication.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EXApplication.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 92FCE6B04C68A17137CAADC31CA3E66E /* EXProvisioningProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXProvisioningProfile.m; path = EXApplication/EXProvisioningProfile.m; sourceTree = ""; }; + BDD770EC605D4026F01E0A23E293DE3A /* EXApplication-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXApplication-dummy.m"; sourceTree = ""; }; BFCD5C75F9FE3DC04DD407A746ADA642 /* libEXApplication.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libEXApplication.a; path = libEXApplication.a; sourceTree = BUILT_PRODUCTS_DIR; }; - CA7D83934AA422C23B9D8B5C8AEB8633 /* EXApplication.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EXApplication.xcconfig; sourceTree = ""; }; D235D9A92F093BF19BC4BA36FEA73BBB /* UMCore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCore; path = UMCore.xcodeproj; sourceTree = ""; }; + E5365CB76DAB444D94EF4ABC71C9D4E4 /* EXApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXApplication.h; path = EXApplication/EXApplication.h; sourceTree = ""; }; + FCD09223BE8BA98359BAB3F3B6E2C378 /* EXProvisioningProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXProvisioningProfile.h; path = EXApplication/EXProvisioningProfile.h; sourceTree = ""; }; + FDA07064C97E9CA44220AA025B0277A1 /* EXApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXApplication.m; path = EXApplication/EXApplication.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 9255D6350930E7CD19A44CCC63B351F3 /* Frameworks */ = { + 2707AFA9FF26AFA4E645C0B89CDEFF79 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -52,14 +56,25 @@ name = Dependencies; sourceTree = ""; }; - 0ECFD93DA6EFE6CED12F59640F952F98 /* Pod */ = { + 2A615AC188FA6B9D125ECE8999C10BBA /* Pod */ = { isa = PBXGroup; children = ( - 4DC40075816071A63B7E17AEF2D6BA67 /* EXApplication.podspec */, + 910CF845517F9CA85E417536E2EAA5F4 /* EXApplication.podspec */, ); name = Pod; sourceTree = ""; }; + 2FC2E263C2C2B4B856D588061F6352FC /* Support Files */ = { + isa = PBXGroup; + children = ( + 025B549F4E70B5BC49734E7C075AB9F4 /* EXApplication.xcconfig */, + BDD770EC605D4026F01E0A23E293DE3A /* EXApplication-dummy.m */, + 34CAFC2C3AFDA8467578ACF8129D7A3E /* EXApplication-prefix.pch */, + ); + name = "Support Files"; + path = "../../../apps/bare-expo/ios/Pods/Target Support Files/EXApplication"; + sourceTree = ""; + }; 4F69F4E33FB642DF98685F05332A47A8 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -79,30 +94,21 @@ isa = PBXGroup; children = ( 05A17C8F20C101D99717A0C3B596FDB8 /* Dependencies */, - BF2C1B516F504961064EC0569FB4ABC3 /* EXApplication */, + A6C3F17B76A00096F040C18D8131D8C2 /* EXApplication */, 4F69F4E33FB642DF98685F05332A47A8 /* Frameworks */, 722B5EA932844751279F881434696DB3 /* Products */, ); sourceTree = ""; }; - B075C95AD445C56AB4069FB28A6126D9 /* Support Files */ = { + A6C3F17B76A00096F040C18D8131D8C2 /* EXApplication */ = { isa = PBXGroup; children = ( - CA7D83934AA422C23B9D8B5C8AEB8633 /* EXApplication.xcconfig */, - 4BD39DA3713290E1FBFBF644FEC37580 /* EXApplication-dummy.m */, - 9A878CD3B762F5E2C37C5FDE648235DA /* EXApplication-prefix.pch */, - ); - name = "Support Files"; - path = "../../../apps/bare-expo/ios/Pods/Target Support Files/EXApplication"; - sourceTree = ""; - }; - BF2C1B516F504961064EC0569FB4ABC3 /* EXApplication */ = { - isa = PBXGroup; - children = ( - 942BA3DCC31B49B1C7AE247F63CCD1D9 /* EXApplication.h */, - 9F49A07610E8DBAD5E3325969C38D4D1 /* EXApplication.m */, - 0ECFD93DA6EFE6CED12F59640F952F98 /* Pod */, - B075C95AD445C56AB4069FB28A6126D9 /* Support Files */, + E5365CB76DAB444D94EF4ABC71C9D4E4 /* EXApplication.h */, + FDA07064C97E9CA44220AA025B0277A1 /* EXApplication.m */, + FCD09223BE8BA98359BAB3F3B6E2C378 /* EXProvisioningProfile.h */, + 92FCE6B04C68A17137CAADC31CA3E66E /* EXProvisioningProfile.m */, + 2A615AC188FA6B9D125ECE8999C10BBA /* Pod */, + 2FC2E263C2C2B4B856D588061F6352FC /* Support Files */, ); name = EXApplication; path = "../../../../packages/expo-application/ios"; @@ -111,11 +117,12 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 0C2F63669D938DDCD0A35350E116F0B5 /* Headers */ = { + 14BB78C12F295FDD1FEAB2BFF022A31B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0560D794600CFE40E188E00EBF945672 /* EXApplication.h in Headers */, + F3D6F7E4E7BB4886A17FDCE58D6E2ADE /* EXApplication.h in Headers */, + 6006F8BCB338392C4840802E78258109 /* EXProvisioningProfile.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -124,16 +131,16 @@ /* Begin PBXNativeTarget section */ 2C391225329DE46C6566ED1ADF52F10D /* EXApplication */ = { isa = PBXNativeTarget; - buildConfigurationList = FEEFB4AB56C57085A27915BDC9541EAD /* Build configuration list for PBXNativeTarget "EXApplication" */; + buildConfigurationList = FEE3E852AB6EA3B2E17EFE58FD9AAE85 /* Build configuration list for PBXNativeTarget "EXApplication" */; buildPhases = ( - 0C2F63669D938DDCD0A35350E116F0B5 /* Headers */, - 34E4C9EF26DF7341C08F11F01CF55B1D /* Sources */, - 9255D6350930E7CD19A44CCC63B351F3 /* Frameworks */, + 14BB78C12F295FDD1FEAB2BFF022A31B /* Headers */, + 183DF83BCCD3A5D517C108C9D471A528 /* Sources */, + 2707AFA9FF26AFA4E645C0B89CDEFF79 /* Frameworks */, ); buildRules = ( ); dependencies = ( - FF8CE4BA148A2B373996A4F7860F4A0D /* PBXTargetDependency */, + BE3B4427B5E02AF46BCE3E5F26FC07CE /* PBXTargetDependency */, ); name = EXApplication; productName = EXApplication; @@ -173,29 +180,55 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 34E4C9EF26DF7341C08F11F01CF55B1D /* Sources */ = { + 183DF83BCCD3A5D517C108C9D471A528 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC2CFD78B2352D3B7A770827466B91D1 /* EXApplication-dummy.m in Sources */, - 3E0A6E117CE1EB645AD6CB5366F3CB6B /* EXApplication.m in Sources */, + AACC7490A272E513C6A4FACF311EFC48 /* EXApplication-dummy.m in Sources */, + 967988573BD1C463F2D68DA4E81E4782 /* EXApplication.m in Sources */, + DE81588EC64BD00A405B9588CFC9E4C7 /* EXProvisioningProfile.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - FF8CE4BA148A2B373996A4F7860F4A0D /* PBXTargetDependency */ = { + BE3B4427B5E02AF46BCE3E5F26FC07CE /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = UMCore; - targetProxy = 232BCB2183874FDAC000FD63AC31D35D /* PBXContainerItemProxy */; + targetProxy = B6BE829E166BB7A8E45B0500A70DF3E4 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0C6831D705632E28B531CB7688B82C7F /* Debug */ = { + 12B58607DD0DF859F0BB3070236194AD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 025B549F4E70B5BC49734E7C075AB9F4 /* EXApplication.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EXApplication/EXApplication-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EXApplication; + PRODUCT_NAME = EXApplication; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58565DA7C3BD57706CF5AC6AB30FE1F1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CA7D83934AA422C23B9D8B5C8AEB8633 /* EXApplication.xcconfig */; + baseConfigurationReference = 025B549F4E70B5BC49734E7C075AB9F4 /* EXApplication.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -281,31 +314,6 @@ }; name = Debug; }; - BF40F3360294712E06E11F7FD8D65F80 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CA7D83934AA422C23B9D8B5C8AEB8633 /* EXApplication.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EXApplication/EXApplication-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EXApplication; - PRODUCT_NAME = EXApplication; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; E36E8865092FC1C145DEA61C717851BD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -378,11 +386,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FEEFB4AB56C57085A27915BDC9541EAD /* Build configuration list for PBXNativeTarget "EXApplication" */ = { + FEE3E852AB6EA3B2E17EFE58FD9AAE85 /* Build configuration list for PBXNativeTarget "EXApplication" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0C6831D705632E28B531CB7688B82C7F /* Debug */, - BF40F3360294712E06E11F7FD8D65F80 /* Release */, + 58565DA7C3BD57706CF5AC6AB30FE1F1 /* Debug */, + 12B58607DD0DF859F0BB3070236194AD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/apps/bare-expo/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h b/apps/bare-expo/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h new file mode 120000 index 0000000000000..c3eebf383f491 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h b/apps/bare-expo/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h new file mode 120000 index 0000000000000..c3eebf383f491 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Manifest.lock b/apps/bare-expo/ios/Pods/Manifest.lock index 6ddd7f766a5c8..7a6f2c8ddf96c 100644 --- a/apps/bare-expo/ios/Pods/Manifest.lock +++ b/apps/bare-expo/ios/Pods/Manifest.lock @@ -818,6 +818,6 @@ SPEC CHECKSUMS: Yoga: ba3d99dbee6c15ea6bbe3783d1f0cb1ffb79af0f ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb -PODFILE CHECKSUM: f8c0544004c7ca9ffcae29a1b9efb91846964d98 +PODFILE CHECKSUM: f9b310a7da0a72b720dd3e0eaf31394e24c3f736 COCOAPODS: 1.8.4 diff --git a/apps/test-suite/tests/Application.js b/apps/test-suite/tests/Application.js index 1c58c1946bd99..38b9329523ebd 100644 --- a/apps/test-suite/tests/Application.js +++ b/apps/test-suite/tests/Application.js @@ -52,6 +52,18 @@ export async function test({ describe, it, expect, jasmine }) { expect(error).toBeNull(); }); + it('Application.getIosApplicationReleaseTypeAsync() returns a number', async () => { + const appReleaseType = await Application.getIosApplicationReleaseTypeAsync(); + expect(appReleaseType).toBeDefined(); + expect(appReleaseType).toEqual(jasmine.any(Number)); + }); + + it('Application.getIosPushNotificationServiceEnvironmentAsync() returns a string', async () => { + const apnsEnvironment = await Application.getIosPushNotificationServiceEnvironmentAsync(); + expect(apnsEnvironment).toBeDefined(); + expect(apnsEnvironment).toEqual(jasmine.any(String)); + }); + describe(`doesn't get Android-only constants`, () => { it('Application.androidId is null', () => { expect(Application.androidId).toBeNull(); diff --git a/ios/Exponent.xcodeproj/project.pbxproj b/ios/Exponent.xcodeproj/project.pbxproj index 19123f66fe39a..f81b9630987ac 100644 --- a/ios/Exponent.xcodeproj/project.pbxproj +++ b/ios/Exponent.xcodeproj/project.pbxproj @@ -102,6 +102,7 @@ 31E44FBF20C975BB008AA62F /* EXScopedModuleRegistryDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E44FBE20C975BB008AA62F /* EXScopedModuleRegistryDelegate.m */; }; 31E6D47E20B8451B0082B09F /* EXSensorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E6D47D20B8451B0082B09F /* EXSensorManager.m */; }; 31E6D48020B845830082B09F /* EXSensorsManagerBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E6D47F20B845830082B09F /* EXSensorsManagerBinding.m */; }; + 31E8B2FD23D090E200E6C2BF /* EXClientReleaseType.m in Sources */ = {isa = PBXBuildFile; fileRef = 31E8B2FC23D090E200E6C2BF /* EXClientReleaseType.m */; }; 3C3C339520E24EC0000F8B92 /* EXSplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3C339420E24EC0000F8B92 /* EXSplashScreen.m */; }; 49B1BDE9E1424AADB8DBE3FC /* RNCConnectionStateWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F5FE9D9529842FCA057BE5A /* RNCConnectionStateWatcher.m */; settings = {COMPILER_FLAGS = "-w"; }; }; 4E3532555D7C4B0392A6AE9D /* RNSVGContextBrush.m in Sources */ = {isa = PBXBuildFile; fileRef = C349E74BFFF643C38858FD6F /* RNSVGContextBrush.m */; settings = {COMPILER_FLAGS = "-w"; }; }; @@ -259,7 +260,6 @@ B5AC39A71E95A90B00540AA7 /* EXKernel.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC398E1E95A90B00540AA7 /* EXKernel.m */; }; B5AC39AA1E95A90B00540AA7 /* EXKernelDevKeyCommands.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC39961E95A90B00540AA7 /* EXKernelDevKeyCommands.m */; }; B5AC39AC1E95A90B00540AA7 /* EXKernelDevMotionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC399A1E95A90B00540AA7 /* EXKernelDevMotionHandler.m */; }; - B5AC39AD1E95A90B00540AA7 /* EXProvisioningProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC399D1E95A90B00540AA7 /* EXProvisioningProfile.m */; }; B5AC39AF1E95A90B00540AA7 /* EXVersions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC39A11E95A90B00540AA7 /* EXVersions.m */; }; B5AC39B01E95A90B00540AA7 /* EXUserNotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC39A41E95A90B00540AA7 /* EXUserNotificationManager.m */; }; B5AC39B11E95A90B00540AA7 /* EXRemoteNotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AC39A61E95A90B00540AA7 /* EXRemoteNotificationManager.m */; }; @@ -543,6 +543,8 @@ 31E6D47D20B8451B0082B09F /* EXSensorManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EXSensorManager.m; sourceTree = ""; }; 31E6D47F20B845830082B09F /* EXSensorsManagerBinding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EXSensorsManagerBinding.m; sourceTree = ""; }; 31E6D48120B845920082B09F /* EXSensorsManagerBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EXSensorsManagerBinding.h; sourceTree = ""; }; + 31E8B2FB23D090E200E6C2BF /* EXClientReleaseType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EXClientReleaseType.h; sourceTree = ""; }; + 31E8B2FC23D090E200E6C2BF /* EXClientReleaseType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EXClientReleaseType.m; sourceTree = ""; }; 3451876A2368FE9E008C4171 /* cp-bundle-resources-conditionally.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "cp-bundle-resources-conditionally.sh"; sourceTree = ""; }; 35005E2F0ED24BB98E4DC990 /* RNCMaskedView.m */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; path = RNCMaskedView.m; sourceTree = ""; }; 36BC76754E88A8F5C6E57DDD /* Pods-Exponent.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Exponent.release.xcconfig"; path = "Pods/Target Support Files/Pods-Exponent/Pods-Exponent.release.xcconfig"; sourceTree = ""; }; @@ -876,8 +878,6 @@ B5AC39961E95A90B00540AA7 /* EXKernelDevKeyCommands.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EXKernelDevKeyCommands.m; sourceTree = ""; }; B5AC39991E95A90B00540AA7 /* EXKernelDevMotionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXKernelDevMotionHandler.h; sourceTree = ""; }; B5AC399A1E95A90B00540AA7 /* EXKernelDevMotionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EXKernelDevMotionHandler.m; sourceTree = ""; }; - B5AC399C1E95A90B00540AA7 /* EXProvisioningProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXProvisioningProfile.h; sourceTree = ""; }; - B5AC399D1E95A90B00540AA7 /* EXProvisioningProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EXProvisioningProfile.m; sourceTree = ""; }; B5AC39A01E95A90B00540AA7 /* EXVersions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXVersions.h; sourceTree = ""; }; B5AC39A11E95A90B00540AA7 /* EXVersions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EXVersions.m; sourceTree = ""; }; B5AC39A31E95A90B00540AA7 /* EXUserNotificationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXUserNotificationManager.h; sourceTree = ""; }; @@ -1869,10 +1869,10 @@ B58F125B20B73455003E13F1 /* EXEnvironment.m */, B5D0D65E204F4BF500DDFC99 /* EXLog.h */, B5D0D65D204F4BF400DDFC99 /* EXLog.m */, - B5AC399C1E95A90B00540AA7 /* EXProvisioningProfile.h */, - B5AC399D1E95A90B00540AA7 /* EXProvisioningProfile.m */, B5AC39A01E95A90B00540AA7 /* EXVersions.h */, B5AC39A11E95A90B00540AA7 /* EXVersions.m */, + 31E8B2FB23D090E200E6C2BF /* EXClientReleaseType.h */, + 31E8B2FC23D090E200E6C2BF /* EXClientReleaseType.m */, ); path = Environment; sourceTree = ""; @@ -2629,7 +2629,6 @@ 31AD9A382285B53100F19090 /* AIRMapPolygon.m in Sources */, B5A72C2120A0D13E00974CCE /* EXCachedResource.m in Sources */, B5FB745C1FF6DADB001C764B /* EXContainerView.m in Sources */, - B5AC39AD1E95A90B00540AA7 /* EXProvisioningProfile.m in Sources */, 78C832EA23546BD400448582 /* RNLongPressHandler.m in Sources */, BBE8539422B98829001FF9C2 /* EXScopedFontLoader.m in Sources */, 7043DF8F2283303800272D74 /* RNSVGRect.m in Sources */, @@ -2775,6 +2774,7 @@ 31AD99DE2285B51100F19090 /* AIRGoogleMapPolygonManager.m in Sources */, B5A72C3020A0D1BF00974CCE /* EXAppFetcher.m in Sources */, 78C832B023545ECE00448582 /* REAEventNode.m in Sources */, + 31E8B2FD23D090E200E6C2BF /* EXClientReleaseType.m in Sources */, 255A630A2154FB89009FDFC6 /* EXPendingNotification.m in Sources */, 7043DFA42283303800272D74 /* RNSVGGroup.m in Sources */, B5AC39AA1E95A90B00540AA7 /* EXKernelDevKeyCommands.m in Sources */, diff --git a/ios/Exponent/Kernel/AppLoader/EXFileDownloader.m b/ios/Exponent/Kernel/AppLoader/EXFileDownloader.m index 17bf9debb69cd..2e0c894eaf85d 100644 --- a/ios/Exponent/Kernel/AppLoader/EXFileDownloader.m +++ b/ios/Exponent/Kernel/AppLoader/EXFileDownloader.m @@ -6,7 +6,7 @@ #import "EXSession.h" #import "EXVersions.h" #import "EXKernelUtil.h" -#import "EXProvisioningProfile.h" +#import "EXClientReleaseType.h" #import @@ -98,7 +98,6 @@ - (void)setHTTPHeaderFields:(NSMutableURLRequest *)request clientEnvironment = @"EXPO_SIMULATOR"; #endif } - NSString * clientReleaseType= [EXProvisioningProfile clientReleaseTypeToString:[EXProvisioningProfile clientReleaseType]]; [request setValue:releaseChannel forHTTPHeaderField:@"Expo-Release-Channel"]; [request setValue:@"true" forHTTPHeaderField:@"Expo-JSON-Error"]; @@ -108,7 +107,7 @@ - (void)setHTTPHeaderFields:(NSMutableURLRequest *)request [request setValue:@"application/expo+json,application/json" forHTTPHeaderField:@"Accept"]; [request setValue:@"1" forHTTPHeaderField:@"Expo-Api-Version"]; [request setValue:clientEnvironment forHTTPHeaderField:@"Expo-Client-Environment"]; - [request setValue:clientReleaseType forHTTPHeaderField:@"Expo-Client-Release-Type"]; + [request setValue:[EXClientReleaseType clientReleaseType] forHTTPHeaderField:@"Expo-Client-Release-Type"]; NSString *sessionSecret = [[EXSession sharedInstance] sessionSecret]; if (sessionSecret) { diff --git a/ios/Exponent/Kernel/DevSupport/EXHomeModule.m b/ios/Exponent/Kernel/DevSupport/EXHomeModule.m index 700d408665609..203dc488640a8 100644 --- a/ios/Exponent/Kernel/DevSupport/EXHomeModule.m +++ b/ios/Exponent/Kernel/DevSupport/EXHomeModule.m @@ -4,7 +4,7 @@ #import "EXHomeModule.h" #import "EXSession.h" #import "EXUnversioned.h" -#import "EXProvisioningProfile.h" +#import "EXClientReleaseType.h" #import @@ -41,7 +41,7 @@ + (BOOL)requiresMainQueueSetup - (NSDictionary *)constantsToExport { return @{ @"sdkVersions": _sdkVersions, - @"IOSClientReleaseType": [EXProvisioningProfile clientReleaseTypeToString: [EXProvisioningProfile clientReleaseType]] }; + @"IOSClientReleaseType": [EXClientReleaseType clientReleaseType] }; } #pragma mark - RCTEventEmitter methods diff --git a/ios/Exponent/Kernel/Environment/EXClientReleaseType.h b/ios/Exponent/Kernel/Environment/EXClientReleaseType.h new file mode 100644 index 0000000000000..d75b8f218430c --- /dev/null +++ b/ios/Exponent/Kernel/Environment/EXClientReleaseType.h @@ -0,0 +1,13 @@ +// Copyright 2015-present 650 Industries. All rights reserved. + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface EXClientReleaseType : NSObject + ++ (NSString *)clientReleaseType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Exponent/Kernel/Environment/EXClientReleaseType.m b/ios/Exponent/Kernel/Environment/EXClientReleaseType.m new file mode 100644 index 0000000000000..5b1f521c3f044 --- /dev/null +++ b/ios/Exponent/Kernel/Environment/EXClientReleaseType.m @@ -0,0 +1,41 @@ +// Copyright 2015-present 650 Industries. All rights reserved. + +#import "EXClientReleaseType.h" +#if __has_include() +#import +#endif + +@implementation EXClientReleaseType + ++ (NSString *)clientReleaseType +{ + // The only scenario in which we care about the app release type is when the App Store release of + // the Expo development client is run on a real device so the development client knows to restrict + // projects it can run. We always include expo-application in the App Store release of the + // development client, so we correctly return "APPLE_APP_STORE" in the aforementioned scenario. + // + // In all other scenarios, we don't restrict the projects the client can run and can return either + // the actual release type or "UNKNOWN" for the same behavior, so it doesn't matter whether + // expo-application is linked. +#if __has_include() + EXAppReleaseType releaseType = [[EXProvisioningProfile mainProvisioningProfile] appReleaseType]; + switch (releaseType) { + case EXAppReleaseTypeUnknown: + return @"UNKNOWN"; + case EXAppReleaseSimulator: + return @"SIMULATOR"; + case EXAppReleaseEnterprise: + return @"ENTERPRISE"; + case EXAppReleaseDev: + return @"DEVELOPMENT"; + case EXAppReleaseAdHoc: + return @"ADHOC"; + case EXAppReleaseAppStore: + return @"APPLE_APP_STORE"; + } +#else + return @"UNKNOWN"; +#endif +} + +@end diff --git a/ios/Exponent/Kernel/Environment/EXProvisioningProfile.h b/ios/Exponent/Kernel/Environment/EXProvisioningProfile.h deleted file mode 100644 index e84ea862156ae..0000000000000 --- a/ios/Exponent/Kernel/Environment/EXProvisioningProfile.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2015-present 650 Industries. All rights reserved. - -@import Foundation; - -typedef NS_ENUM(NSInteger, EXClientReleaseType) { - EXClientReleaseTypeUnknown, - EXClientReleaseSimulator, - EXClientReleaseEnterprise, - EXClientReleaseDev, - EXClientReleaseAdHoc, - EXClientReleaseAppStore -}; - -@interface EXProvisioningProfile : NSObject - -+ (instancetype)mainProvisioningProfile; - -@property (nonatomic, readonly, getter=isDevelopment) BOOL development; - -+ (EXClientReleaseType)clientReleaseType; -+ (NSString *)clientReleaseTypeToString:(EXClientReleaseType)releaseType; -@end diff --git a/ios/Exponent/Kernel/Services/Notifications/EXApiV2Client+EXRemoteNotifications.m b/ios/Exponent/Kernel/Services/Notifications/EXApiV2Client+EXRemoteNotifications.m index 1a040edde17b8..92a97f9c78e4a 100644 --- a/ios/Exponent/Kernel/Services/Notifications/EXApiV2Client+EXRemoteNotifications.m +++ b/ios/Exponent/Kernel/Services/Notifications/EXApiV2Client+EXRemoteNotifications.m @@ -2,8 +2,10 @@ #import "EXApiV2Client+EXRemoteNotifications.h" #import "EXKernel.h" -#import "EXProvisioningProfile.h" #import "NSData+EXRemoteNotifications.h" +#if __has_include() +#import +#endif @implementation EXApiV2Client (EXRemoteNotifications) @@ -15,9 +17,18 @@ - (NSURLSessionTask *)updateDeviceToken:(NSData *)deviceToken completionHandler: @"deviceToken": deviceToken.apnsTokenString, @"type": @"apns", }]; - if ([EXProvisioningProfile mainProvisioningProfile].development) { + // Presence of this file is assured in Expo client + // and in ejected projects Expo Push Notifications don't work anyway + // so this codepath shouldn't be executed at all. +#if __has_include() + NSString *environment = [[EXProvisioningProfile mainProvisioningProfile] notificationServiceEnvironment]; + if (!environment) { + DDLogWarn(@"aps-environment is missing from the entitlements; ensure that the provisioning profile enables push notifications"); + } else if ([environment isEqualToString:@"development"]) { arguments[@"development"] = @YES; } +#endif + return [self callRemoteMethod:@"push/updateDeviceToken" arguments:arguments @@ -39,9 +50,17 @@ - (NSURLSessionTask *)getExpoPushTokenForExperience:(NSString *)experienceId @"deviceToken": deviceToken.apnsTokenString, @"type": @"apns", }]; - if ([EXProvisioningProfile mainProvisioningProfile].development) { + // Presence of this file is assured in Expo client + // and in ejected projects Expo Push Notifications don't work anyway + // so this codepath shouldn't be executed at all. +#if __has_include() + NSString *environment = [[EXProvisioningProfile mainProvisioningProfile] notificationServiceEnvironment]; + if (!environment) { + DDLogWarn(@"aps-environment is missing from the entitlements; ensure that the provisioning profile enables push notifications"); + } else if ([environment isEqualToString:@"development"]) { arguments[@"development"] = @YES; } +#endif return [self callRemoteMethod:@"push/getExpoPushToken" arguments:arguments diff --git a/ios/Exponent/Kernel/Services/Notifications/EXRemoteNotificationManager.m b/ios/Exponent/Kernel/Services/Notifications/EXRemoteNotificationManager.m index c905c022f8eb1..61099f6753bce 100644 --- a/ios/Exponent/Kernel/Services/Notifications/EXRemoteNotificationManager.m +++ b/ios/Exponent/Kernel/Services/Notifications/EXRemoteNotificationManager.m @@ -3,7 +3,6 @@ #import "EXApiV2Client+EXRemoteNotifications.h" #import "EXEnvironment.h" #import "EXKernel.h" -#import "EXProvisioningProfile.h" #import "EXRemoteNotificationManager.h" #import "NSData+EXRemoteNotifications.h" #import "EXUserNotificationCenter.h" diff --git a/ios/Pods/.project_cache/installation_cache.yaml b/ios/Pods/.project_cache/installation_cache.yaml index d5ee84f4ca853..68d8fc1d2c9d3 100644 --- a/ios/Pods/.project_cache/installation_cache.yaml +++ b/ios/Pods/.project_cache/installation_cache.yaml @@ -6191,6 +6191,8 @@ CACHE_KEYS: FILES: - "../../packages/expo-application/ios/EXApplication/EXApplication.h" - "../../packages/expo-application/ios/EXApplication/EXApplication.m" + - "../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h" + - "../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.m" PROJECT_NAME: EXApplication SPECS: - EXApplication (2.0.0) diff --git a/ios/Pods/EXApplication.xcodeproj/project.pbxproj b/ios/Pods/EXApplication.xcodeproj/project.pbxproj index 5225d56e42585..7d2d2832da77c 100644 --- a/ios/Pods/EXApplication.xcodeproj/project.pbxproj +++ b/ios/Pods/EXApplication.xcodeproj/project.pbxproj @@ -7,13 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 0560D794600CFE40E188E00EBF945672 /* EXApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = EC6EBB206CF62CA35D4E9D3A22EDB78A /* EXApplication.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3E0A6E117CE1EB645AD6CB5366F3CB6B /* EXApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = EDF5589B8A866BF803E58877A51AB349 /* EXApplication.m */; }; - FC2CFD78B2352D3B7A770827466B91D1 /* EXApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A28B50368F7A91ACFFCD015CB572CDA /* EXApplication-dummy.m */; }; + 6006F8BCB338392C4840802E78258109 /* EXProvisioningProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 43691E954DA5DBB5A2C15C999D4FB784 /* EXProvisioningProfile.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 967988573BD1C463F2D68DA4E81E4782 /* EXApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = CBF8F8474BA9A7BF13F70BAC0BBE09AE /* EXApplication.m */; }; + AACC7490A272E513C6A4FACF311EFC48 /* EXApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE92439B745C2228DFDE149AE612898 /* EXApplication-dummy.m */; }; + DE81588EC64BD00A405B9588CFC9E4C7 /* EXProvisioningProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = ACC441D856900D2A3B18CCCFE76AB737 /* EXProvisioningProfile.m */; }; + F3D6F7E4E7BB4886A17FDCE58D6E2ADE /* EXApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E235C1579B1D94B412BC5BC7915DF33 /* EXApplication.h */; settings = {ATTRIBUTES = (Project, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 232BCB2183874FDAC000FD63AC31D35D /* PBXContainerItemProxy */ = { + B6BE829E166BB7A8E45B0500A70DF3E4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D235D9A92F093BF19BC4BA36FEA73BBB /* UMCore.xcodeproj */; proxyType = 1; @@ -23,18 +25,20 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 5A28B50368F7A91ACFFCD015CB572CDA /* EXApplication-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXApplication-dummy.m"; sourceTree = ""; }; - 87BDFD670EC7DE93BA0E34458ADA71DA /* EXApplication.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EXApplication.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9CDC11D8E6ED6350EAB4205AF76E57F7 /* EXApplication-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXApplication-prefix.pch"; sourceTree = ""; }; - B5DF0E75BA07F6AB32E6C34AC85F14FC /* EXApplication.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EXApplication.xcconfig; sourceTree = ""; }; + 39D4DED2CA5A9AF666E9208BD80EFA4A /* EXApplication-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXApplication-prefix.pch"; sourceTree = ""; }; + 43691E954DA5DBB5A2C15C999D4FB784 /* EXProvisioningProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXProvisioningProfile.h; path = EXApplication/EXProvisioningProfile.h; sourceTree = ""; }; + 7E235C1579B1D94B412BC5BC7915DF33 /* EXApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXApplication.h; path = EXApplication/EXApplication.h; sourceTree = ""; }; + 9FE92439B745C2228DFDE149AE612898 /* EXApplication-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXApplication-dummy.m"; sourceTree = ""; }; + A3802CF7DBD7D9019AC9586611856251 /* EXApplication.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EXApplication.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A92A25AC3ADF22A06B50F243A636AC2A /* EXApplication.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EXApplication.xcconfig; sourceTree = ""; }; + ACC441D856900D2A3B18CCCFE76AB737 /* EXProvisioningProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXProvisioningProfile.m; path = EXApplication/EXProvisioningProfile.m; sourceTree = ""; }; BFCD5C75F9FE3DC04DD407A746ADA642 /* libEXApplication.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libEXApplication.a; path = libEXApplication.a; sourceTree = BUILT_PRODUCTS_DIR; }; + CBF8F8474BA9A7BF13F70BAC0BBE09AE /* EXApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXApplication.m; path = EXApplication/EXApplication.m; sourceTree = ""; }; D235D9A92F093BF19BC4BA36FEA73BBB /* UMCore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCore; path = UMCore.xcodeproj; sourceTree = ""; }; - EC6EBB206CF62CA35D4E9D3A22EDB78A /* EXApplication.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXApplication.h; path = EXApplication/EXApplication.h; sourceTree = ""; }; - EDF5589B8A866BF803E58877A51AB349 /* EXApplication.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXApplication.m; path = EXApplication/EXApplication.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 9255D6350930E7CD19A44CCC63B351F3 /* Frameworks */ = { + 2707AFA9FF26AFA4E645C0B89CDEFF79 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -52,12 +56,15 @@ name = Dependencies; sourceTree = ""; }; - 3D22CD8AD61701F75B6A53512F02D47C /* Pod */ = { + 3FAD14F99BF1BB401EE2930D586A725B /* Support Files */ = { isa = PBXGroup; children = ( - 87BDFD670EC7DE93BA0E34458ADA71DA /* EXApplication.podspec */, + A92A25AC3ADF22A06B50F243A636AC2A /* EXApplication.xcconfig */, + 9FE92439B745C2228DFDE149AE612898 /* EXApplication-dummy.m */, + 39D4DED2CA5A9AF666E9208BD80EFA4A /* EXApplication-prefix.pch */, ); - name = Pod; + name = "Support Files"; + path = "../../../ios/Pods/Target Support Files/EXApplication"; sourceTree = ""; }; 4F69F4E33FB642DF98685F05332A47A8 /* Frameworks */ = { @@ -67,16 +74,12 @@ name = Frameworks; sourceTree = ""; }; - 6912E871167D8F0D92A855E1BE69B70C /* EXApplication */ = { + 6B7CF52E58B00FB2DE4B5CA2CEE18D59 /* Pod */ = { isa = PBXGroup; children = ( - EC6EBB206CF62CA35D4E9D3A22EDB78A /* EXApplication.h */, - EDF5589B8A866BF803E58877A51AB349 /* EXApplication.m */, - 3D22CD8AD61701F75B6A53512F02D47C /* Pod */, - B1055DC89EC488897AF182B12E6EDEF1 /* Support Files */, + A3802CF7DBD7D9019AC9586611856251 /* EXApplication.podspec */, ); - name = EXApplication; - path = "../../packages/expo-application/ios"; + name = Pod; sourceTree = ""; }; 722B5EA932844751279F881434696DB3 /* Products */ = { @@ -91,31 +94,35 @@ isa = PBXGroup; children = ( 05A17C8F20C101D99717A0C3B596FDB8 /* Dependencies */, - 6912E871167D8F0D92A855E1BE69B70C /* EXApplication */, + D8AB590FDFAF2C7781F5B9EEBA5E86EF /* EXApplication */, 4F69F4E33FB642DF98685F05332A47A8 /* Frameworks */, 722B5EA932844751279F881434696DB3 /* Products */, ); sourceTree = ""; }; - B1055DC89EC488897AF182B12E6EDEF1 /* Support Files */ = { + D8AB590FDFAF2C7781F5B9EEBA5E86EF /* EXApplication */ = { isa = PBXGroup; children = ( - B5DF0E75BA07F6AB32E6C34AC85F14FC /* EXApplication.xcconfig */, - 5A28B50368F7A91ACFFCD015CB572CDA /* EXApplication-dummy.m */, - 9CDC11D8E6ED6350EAB4205AF76E57F7 /* EXApplication-prefix.pch */, + 7E235C1579B1D94B412BC5BC7915DF33 /* EXApplication.h */, + CBF8F8474BA9A7BF13F70BAC0BBE09AE /* EXApplication.m */, + 43691E954DA5DBB5A2C15C999D4FB784 /* EXProvisioningProfile.h */, + ACC441D856900D2A3B18CCCFE76AB737 /* EXProvisioningProfile.m */, + 6B7CF52E58B00FB2DE4B5CA2CEE18D59 /* Pod */, + 3FAD14F99BF1BB401EE2930D586A725B /* Support Files */, ); - name = "Support Files"; - path = "../../../ios/Pods/Target Support Files/EXApplication"; + name = EXApplication; + path = "../../packages/expo-application/ios"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 0C2F63669D938DDCD0A35350E116F0B5 /* Headers */ = { + 14BB78C12F295FDD1FEAB2BFF022A31B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0560D794600CFE40E188E00EBF945672 /* EXApplication.h in Headers */, + F3D6F7E4E7BB4886A17FDCE58D6E2ADE /* EXApplication.h in Headers */, + 6006F8BCB338392C4840802E78258109 /* EXProvisioningProfile.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -124,16 +131,16 @@ /* Begin PBXNativeTarget section */ 2C391225329DE46C6566ED1ADF52F10D /* EXApplication */ = { isa = PBXNativeTarget; - buildConfigurationList = FEEFB4AB56C57085A27915BDC9541EAD /* Build configuration list for PBXNativeTarget "EXApplication" */; + buildConfigurationList = FEE3E852AB6EA3B2E17EFE58FD9AAE85 /* Build configuration list for PBXNativeTarget "EXApplication" */; buildPhases = ( - 0C2F63669D938DDCD0A35350E116F0B5 /* Headers */, - 34E4C9EF26DF7341C08F11F01CF55B1D /* Sources */, - 9255D6350930E7CD19A44CCC63B351F3 /* Frameworks */, + 14BB78C12F295FDD1FEAB2BFF022A31B /* Headers */, + 183DF83BCCD3A5D517C108C9D471A528 /* Sources */, + 2707AFA9FF26AFA4E645C0B89CDEFF79 /* Frameworks */, ); buildRules = ( ); dependencies = ( - FF8CE4BA148A2B373996A4F7860F4A0D /* PBXTargetDependency */, + BE3B4427B5E02AF46BCE3E5F26FC07CE /* PBXTargetDependency */, ); name = EXApplication; productName = EXApplication; @@ -173,29 +180,55 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 34E4C9EF26DF7341C08F11F01CF55B1D /* Sources */ = { + 183DF83BCCD3A5D517C108C9D471A528 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC2CFD78B2352D3B7A770827466B91D1 /* EXApplication-dummy.m in Sources */, - 3E0A6E117CE1EB645AD6CB5366F3CB6B /* EXApplication.m in Sources */, + AACC7490A272E513C6A4FACF311EFC48 /* EXApplication-dummy.m in Sources */, + 967988573BD1C463F2D68DA4E81E4782 /* EXApplication.m in Sources */, + DE81588EC64BD00A405B9588CFC9E4C7 /* EXProvisioningProfile.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - FF8CE4BA148A2B373996A4F7860F4A0D /* PBXTargetDependency */ = { + BE3B4427B5E02AF46BCE3E5F26FC07CE /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = UMCore; - targetProxy = 232BCB2183874FDAC000FD63AC31D35D /* PBXContainerItemProxy */; + targetProxy = B6BE829E166BB7A8E45B0500A70DF3E4 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0C6831D705632E28B531CB7688B82C7F /* Debug */ = { + 12B58607DD0DF859F0BB3070236194AD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A92A25AC3ADF22A06B50F243A636AC2A /* EXApplication.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EXApplication/EXApplication-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EXApplication; + PRODUCT_NAME = EXApplication; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58565DA7C3BD57706CF5AC6AB30FE1F1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B5DF0E75BA07F6AB32E6C34AC85F14FC /* EXApplication.xcconfig */; + baseConfigurationReference = A92A25AC3ADF22A06B50F243A636AC2A /* EXApplication.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -281,31 +314,6 @@ }; name = Debug; }; - BF40F3360294712E06E11F7FD8D65F80 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B5DF0E75BA07F6AB32E6C34AC85F14FC /* EXApplication.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EXApplication/EXApplication-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EXApplication; - PRODUCT_NAME = EXApplication; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; E36E8865092FC1C145DEA61C717851BD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -378,11 +386,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FEEFB4AB56C57085A27915BDC9541EAD /* Build configuration list for PBXNativeTarget "EXApplication" */ = { + FEE3E852AB6EA3B2E17EFE58FD9AAE85 /* Build configuration list for PBXNativeTarget "EXApplication" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0C6831D705632E28B531CB7688B82C7F /* Debug */, - BF40F3360294712E06E11F7FD8D65F80 /* Release */, + 58565DA7C3BD57706CF5AC6AB30FE1F1 /* Debug */, + 12B58607DD0DF859F0BB3070236194AD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h b/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h new file mode 120000 index 0000000000000..f84f51000b99b --- /dev/null +++ b/ios/Pods/Headers/Private/EXApplication/EXProvisioningProfile.h @@ -0,0 +1 @@ +../../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h \ No newline at end of file diff --git a/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h b/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h new file mode 120000 index 0000000000000..f84f51000b99b --- /dev/null +++ b/ios/Pods/Headers/Public/EXApplication/EXProvisioningProfile.h @@ -0,0 +1 @@ +../../../../../packages/expo-application/ios/EXApplication/EXProvisioningProfile.h \ No newline at end of file diff --git a/packages/expo-application/build/Application.d.ts b/packages/expo-application/build/Application.d.ts index 819f1ca971f88..fd0d859448f5a 100644 --- a/packages/expo-application/build/Application.d.ts +++ b/packages/expo-application/build/Application.d.ts @@ -5,5 +5,15 @@ export declare const applicationId: string | null; export declare const androidId: string | null; export declare function getInstallReferrerAsync(): Promise; export declare function getIosIdForVendorAsync(): Promise; +export declare enum ApplicationReleaseType { + UNKNOWN = 0, + SIMULATOR = 1, + ENTERPRISE = 2, + DEVELOPMENT = 3, + AD_HOC = 4, + APP_STORE = 5 +} +export declare function getIosApplicationReleaseTypeAsync(): Promise; +export declare function getIosPushNotificationServiceEnvironmentAsync(): Promise; export declare function getInstallationTimeAsync(): Promise; export declare function getLastUpdateTimeAsync(): Promise; diff --git a/packages/expo-application/build/Application.js b/packages/expo-application/build/Application.js index 68c8cc845f835..43471bdf97d8d 100644 --- a/packages/expo-application/build/Application.js +++ b/packages/expo-application/build/Application.js @@ -25,6 +25,27 @@ export async function getIosIdForVendorAsync() { } return await ExpoApplication.getIosIdForVendorAsync(); } +export var ApplicationReleaseType; +(function (ApplicationReleaseType) { + ApplicationReleaseType[ApplicationReleaseType["UNKNOWN"] = 0] = "UNKNOWN"; + ApplicationReleaseType[ApplicationReleaseType["SIMULATOR"] = 1] = "SIMULATOR"; + ApplicationReleaseType[ApplicationReleaseType["ENTERPRISE"] = 2] = "ENTERPRISE"; + ApplicationReleaseType[ApplicationReleaseType["DEVELOPMENT"] = 3] = "DEVELOPMENT"; + ApplicationReleaseType[ApplicationReleaseType["AD_HOC"] = 4] = "AD_HOC"; + ApplicationReleaseType[ApplicationReleaseType["APP_STORE"] = 5] = "APP_STORE"; +})(ApplicationReleaseType || (ApplicationReleaseType = {})); +export async function getIosApplicationReleaseTypeAsync() { + if (!ExpoApplication.getApplicationReleaseTypeAsync) { + throw new UnavailabilityError('expo-application', 'getApplicationReleaseTypeAsync'); + } + return await ExpoApplication.getApplicationReleaseTypeAsync(); +} +export async function getIosPushNotificationServiceEnvironmentAsync() { + if (!ExpoApplication.getPushNotificationServiceEnvironmentAsync) { + throw new UnavailabilityError('expo-application', 'getPushNotificationServiceEnvironmentAsync'); + } + return await ExpoApplication.getPushNotificationServiceEnvironmentAsync(); +} export async function getInstallationTimeAsync() { if (!ExpoApplication.getInstallationTimeAsync) { throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync'); diff --git a/packages/expo-application/build/Application.js.map b/packages/expo-application/build/Application.js.map index a85d29fea1849..21bce7ec3469c 100644 --- a/packages/expo-application/build/Application.js.map +++ b/packages/expo-application/build/Application.js.map @@ -1 +1 @@ -{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GAAkB,eAAe;IACpE,CAAC,CAAC,eAAe,CAAC,wBAAwB,IAAI,IAAI;IAClD,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,kBAAkB,GAAkB,eAAe;IAC9D,CAAC,CAAC,eAAe,CAAC,kBAAkB,IAAI,IAAI;IAC5C,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,eAAe,GAAkB,eAAe;IAC3D,CAAC,CAAC,eAAe,CAAC,eAAe,IAAI,IAAI;IACzC,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,aAAa,GAAkB,eAAe;IACzD,CAAC,CAAC,eAAe,CAAC,aAAa,IAAI,IAAI;IACvC,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,SAAS,GAAkB,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE;QAC5C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;KAC9E;IACD,OAAO,MAAM,eAAe,CAAC,uBAAuB,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;QAC3C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;KAC7E;IACD,OAAO,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE;QAC7C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;KAC/E;IACD,IAAI,gBAAgB,GAAG,MAAM,eAAe,CAAC,wBAAwB,EAAE,CAAC;IACxE,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;QAC3C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;KAC7E;IACD,IAAI,cAAc,GAAG,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;IACpE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import { UnavailabilityError } from '@unimodules/core';\n\nimport ExpoApplication from './ExpoApplication';\n\nexport const nativeApplicationVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeApplicationVersion || null\n : null;\nexport const nativeBuildVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeBuildVersion || null\n : null;\nexport const applicationName: string | null = ExpoApplication\n ? ExpoApplication.applicationName || null\n : null;\nexport const applicationId: string | null = ExpoApplication\n ? ExpoApplication.applicationId || null\n : null;\nexport const androidId: string | null = ExpoApplication ? ExpoApplication.androidId || null : null;\n\nexport async function getInstallReferrerAsync(): Promise {\n if (!ExpoApplication.getInstallReferrerAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallReferrerAsync');\n }\n return await ExpoApplication.getInstallReferrerAsync();\n}\n\nexport async function getIosIdForVendorAsync(): Promise {\n if (!ExpoApplication.getIosIdForVendorAsync) {\n throw new UnavailabilityError('expo-application', 'getIosIdForVendorAsync');\n }\n return await ExpoApplication.getIosIdForVendorAsync();\n}\n\nexport async function getInstallationTimeAsync(): Promise {\n if (!ExpoApplication.getInstallationTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync');\n }\n let installationTime = await ExpoApplication.getInstallationTimeAsync();\n return new Date(installationTime);\n}\n\nexport async function getLastUpdateTimeAsync(): Promise {\n if (!ExpoApplication.getLastUpdateTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getLastUpdateTimeAsync');\n }\n let lastUpdateTime = await ExpoApplication.getLastUpdateTimeAsync();\n return new Date(lastUpdateTime);\n}\n"]} \ No newline at end of file +{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GAAkB,eAAe;IACpE,CAAC,CAAC,eAAe,CAAC,wBAAwB,IAAI,IAAI;IAClD,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,kBAAkB,GAAkB,eAAe;IAC9D,CAAC,CAAC,eAAe,CAAC,kBAAkB,IAAI,IAAI;IAC5C,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,eAAe,GAAkB,eAAe;IAC3D,CAAC,CAAC,eAAe,CAAC,eAAe,IAAI,IAAI;IACzC,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,aAAa,GAAkB,eAAe;IACzD,CAAC,CAAC,eAAe,CAAC,aAAa,IAAI,IAAI;IACvC,CAAC,CAAC,IAAI,CAAC;AACT,MAAM,CAAC,MAAM,SAAS,GAAkB,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE;QAC5C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;KAC9E;IACD,OAAO,MAAM,eAAe,CAAC,uBAAuB,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;QAC3C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;KAC7E;IACD,OAAO,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAN,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,yEAAW,CAAA;IACX,6EAAa,CAAA;IACb,+EAAc,CAAA;IACd,iFAAe,CAAA;IACf,uEAAU,CAAA;IACV,6EAAa,CAAA;AACf,CAAC,EAPW,sBAAsB,KAAtB,sBAAsB,QAOjC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC;IACrD,IAAI,CAAC,eAAe,CAAC,8BAA8B,EAAE;QACnD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;KACrF;IACD,OAAO,MAAM,eAAe,CAAC,8BAA8B,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6CAA6C;IACjE,IAAI,CAAC,eAAe,CAAC,0CAA0C,EAAE;QAC/D,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAC;KACjG;IACD,OAAO,MAAM,eAAe,CAAC,0CAA0C,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE;QAC7C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;KAC/E;IACD,IAAI,gBAAgB,GAAG,MAAM,eAAe,CAAC,wBAAwB,EAAE,CAAC;IACxE,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;QAC3C,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;KAC7E;IACD,IAAI,cAAc,GAAG,MAAM,eAAe,CAAC,sBAAsB,EAAE,CAAC;IACpE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import { UnavailabilityError } from '@unimodules/core';\n\nimport ExpoApplication from './ExpoApplication';\n\nexport const nativeApplicationVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeApplicationVersion || null\n : null;\nexport const nativeBuildVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeBuildVersion || null\n : null;\nexport const applicationName: string | null = ExpoApplication\n ? ExpoApplication.applicationName || null\n : null;\nexport const applicationId: string | null = ExpoApplication\n ? ExpoApplication.applicationId || null\n : null;\nexport const androidId: string | null = ExpoApplication ? ExpoApplication.androidId || null : null;\n\nexport async function getInstallReferrerAsync(): Promise {\n if (!ExpoApplication.getInstallReferrerAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallReferrerAsync');\n }\n return await ExpoApplication.getInstallReferrerAsync();\n}\n\nexport async function getIosIdForVendorAsync(): Promise {\n if (!ExpoApplication.getIosIdForVendorAsync) {\n throw new UnavailabilityError('expo-application', 'getIosIdForVendorAsync');\n }\n return await ExpoApplication.getIosIdForVendorAsync();\n}\n\nexport enum ApplicationReleaseType {\n UNKNOWN = 0,\n SIMULATOR = 1,\n ENTERPRISE = 2,\n DEVELOPMENT = 3,\n AD_HOC = 4,\n APP_STORE = 5,\n}\n\nexport async function getIosApplicationReleaseTypeAsync(): Promise {\n if (!ExpoApplication.getApplicationReleaseTypeAsync) {\n throw new UnavailabilityError('expo-application', 'getApplicationReleaseTypeAsync');\n }\n return await ExpoApplication.getApplicationReleaseTypeAsync();\n}\n\nexport async function getIosPushNotificationServiceEnvironmentAsync(): Promise {\n if (!ExpoApplication.getPushNotificationServiceEnvironmentAsync) {\n throw new UnavailabilityError('expo-application', 'getPushNotificationServiceEnvironmentAsync');\n }\n return await ExpoApplication.getPushNotificationServiceEnvironmentAsync();\n}\n\nexport async function getInstallationTimeAsync(): Promise {\n if (!ExpoApplication.getInstallationTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync');\n }\n let installationTime = await ExpoApplication.getInstallationTimeAsync();\n return new Date(installationTime);\n}\n\nexport async function getLastUpdateTimeAsync(): Promise {\n if (!ExpoApplication.getLastUpdateTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getLastUpdateTimeAsync');\n }\n let lastUpdateTime = await ExpoApplication.getLastUpdateTimeAsync();\n return new Date(lastUpdateTime);\n}\n"]} \ No newline at end of file diff --git a/packages/expo-application/ios/EXApplication/EXApplication.m b/packages/expo-application/ios/EXApplication/EXApplication.m index 238d819ac332d..ddbc15b20460c 100644 --- a/packages/expo-application/ios/EXApplication/EXApplication.m +++ b/packages/expo-application/ios/EXApplication/EXApplication.m @@ -2,6 +2,7 @@ #import #import #import +#import @implementation EXApplication @@ -31,6 +32,18 @@ - (dispatch_queue_t)methodQueue } } +UM_EXPORT_METHOD_AS(getApplicationReleaseTypeAsync, getApplicationReleaseTypeAsyncWithResolver:(UMPromiseResolveBlock)resolve rejecter:(UMPromiseRejectBlock)reject) +{ + EXProvisioningProfile *mainProvisioningProfile = [EXProvisioningProfile mainProvisioningProfile]; + resolve(@([mainProvisioningProfile appReleaseType])); +} + +UM_EXPORT_METHOD_AS(getPushNotificationServiceEnvironmentAsync, getPushNotificationServiceEnvironmentAsyncWithResolver:(UMPromiseResolveBlock)resolve rejecter:(UMPromiseRejectBlock)reject) +{ + EXProvisioningProfile *mainProvisioningProfile = [EXProvisioningProfile mainProvisioningProfile]; + resolve([mainProvisioningProfile notificationServiceEnvironment]); +} + - (NSDictionary *)constantsToExport { return @{ diff --git a/packages/expo-application/ios/EXApplication/EXProvisioningProfile.h b/packages/expo-application/ios/EXApplication/EXProvisioningProfile.h new file mode 100644 index 0000000000000..28ab616fdd1db --- /dev/null +++ b/packages/expo-application/ios/EXApplication/EXProvisioningProfile.h @@ -0,0 +1,22 @@ +// Copyright 2015-present 650 Industries. All rights reserved. + +#import + +// Keep in sync with ApplicationReleaseType in JS +typedef NS_ENUM(NSInteger, EXAppReleaseType) { + EXAppReleaseTypeUnknown, + EXAppReleaseSimulator, + EXAppReleaseEnterprise, + EXAppReleaseDev, + EXAppReleaseAdHoc, + EXAppReleaseAppStore +}; + +@interface EXProvisioningProfile : NSObject + ++ (instancetype)mainProvisioningProfile; + +- (EXAppReleaseType)appReleaseType; +- (nullable NSString *)notificationServiceEnvironment; + +@end diff --git a/ios/Exponent/Kernel/Environment/EXProvisioningProfile.m b/packages/expo-application/ios/EXApplication/EXProvisioningProfile.m similarity index 73% rename from ios/Exponent/Kernel/Environment/EXProvisioningProfile.m rename to packages/expo-application/ios/EXApplication/EXProvisioningProfile.m index 52320628edcc4..9056b9a746af5 100644 --- a/ios/Exponent/Kernel/Environment/EXProvisioningProfile.m +++ b/packages/expo-application/ios/EXApplication/EXProvisioningProfile.m @@ -1,7 +1,6 @@ // Copyright 2015-present 650 Industries. All rights reserved. -#import "EXProvisioningProfile.h" -#import "EXKernelUtil.h" +#import @implementation EXProvisioningProfile { NSDictionary *_plist; @@ -21,29 +20,57 @@ + (instancetype)mainProvisioningProfile - (instancetype)initWithPlist:(NSDictionary *)plist { if (self = [super init]) { - _plist = [plist copy]; + _plist = plist; } return self; } -- (BOOL)isDevelopment +- (nullable NSString *)notificationServiceEnvironment { if (!_plist) { - return NO; + return nil; } - + NSDictionary *entitlements = _plist[@"Entitlements"]; NSString *apsEnvironment = entitlements[@"aps-environment"]; - if (!apsEnvironment) { - DDLogWarn(@"aps-environment is missing from the entitlements; ensure that the provisioning profile enables push notifications"); - return NO; + return apsEnvironment; +} + +- (EXAppReleaseType)appReleaseType { + NSString *provisioningPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]; + if (!provisioningPath) { + // provisioning profile does not exist +#if TARGET_IPHONE_SIMULATOR + return EXAppReleaseSimulator; +#else + return EXAppReleaseAppStore; +#endif + } + + NSDictionary *mobileProvision = _plist; + if (!mobileProvision) { + // failure to read other than it simply not existing + return EXAppReleaseTypeUnknown; + } else if ([[mobileProvision objectForKey:@"ProvisionsAllDevices"] boolValue]) { + // enterprise distribution contains ProvisionsAllDevices - true + return EXAppReleaseEnterprise; + } else if ([mobileProvision objectForKey:@"ProvisionedDevices"] && [[mobileProvision objectForKey:@"ProvisionedDevices"] count] > 0) { + // development contains UDIDs and get-task-allow is true + // ad hoc contains UDIDs and get-task-allow is false + NSDictionary *entitlements = [mobileProvision objectForKey:@"Entitlements"]; + if ([[entitlements objectForKey:@"get-task-allow"] boolValue]) { + return EXAppReleaseDev; + } else { + return EXAppReleaseAdHoc; + } + } else { + // app store contains no UDIDs (if the file exists at all?) + return EXAppReleaseAppStore; } - - return [apsEnvironment isEqualToString:@"development"]; } /** embedded.mobileprovision plist format: - + AppIDName, // string — TextDetective ApplicationIdentifierPrefix[], // [ string - 66PK3K3KEV ] CreationData, // date — 2013-01-17T14:18:05Z @@ -62,7 +89,7 @@ - (BOOL)isDevelopment UUID, // string — 79F37E8E-CC8D-4819-8C13-A678479211CE Version, // integer — 1 ProvisionsAllDevices // true or false ***NB: not sure if this is where this is - + */ + (NSDictionary *)_readProvisioningProfilePlist { @@ -70,90 +97,38 @@ + (NSDictionary *)_readProvisioningProfilePlist if (!profilePath) { return nil; } - + NSError *error; NSString *profileString = [NSString stringWithContentsOfFile:profilePath encoding:NSASCIIStringEncoding error:&error]; if (!profileString) { - DDLogError(@"Error reading provisioning profile: %@", error.localizedDescription); + NSLog(@"Error reading provisioning profile: %@", error.localizedDescription); return nil; } - + NSScanner *scanner = [NSScanner scannerWithString:profileString]; BOOL readPrelude = [scanner scanUpToString:@"" intoString:nil]; if (!readPrelude) { return nil; } - + NSString *plistString; BOOL readPlist = [scanner scanUpToString:@"" intoString:&plistString]; if (!readPlist) { return nil; } plistString = [plistString stringByAppendingString:@""]; - + NSData *plistData = [plistString dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary *plistDictionary = [NSPropertyListSerialization propertyListWithData:plistData options:NSPropertyListImmutable format:NULL error:&error]; if (!plistDictionary) { - DDLogError(@"Error unserializing provisioning profile plist: %@", error.localizedDescription); + NSLog(@"Error unserializing provisioning profile plist: %@", error.localizedDescription); return nil; } - - return plistDictionary; -} -+ (EXClientReleaseType)clientReleaseType { - NSString *provisioningPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]; - if (!provisioningPath) { - // provisioning profile does not exist -#if TARGET_IPHONE_SIMULATOR - return EXClientReleaseSimulator; -#else - return EXClientReleaseAppStore; -#endif - } - - NSDictionary *mobileProvision = [self _readProvisioningProfilePlist]; - if (!mobileProvision) { - // failure to read other than it simply not existing - return EXClientReleaseTypeUnknown; - } else if ([[mobileProvision objectForKey:@"ProvisionsAllDevices"] boolValue]) { - // enterprise distribution contains ProvisionsAllDevices - true - return EXClientReleaseEnterprise; - } else if ([mobileProvision objectForKey:@"ProvisionedDevices"] && [[mobileProvision objectForKey:@"ProvisionedDevices"] count] > 0) { - // development contains UDIDs and get-task-allow is true - // ad hoc contains UDIDs and get-task-allow is false - NSDictionary *entitlements = [mobileProvision objectForKey:@"Entitlements"]; - if ([[entitlements objectForKey:@"get-task-allow"] boolValue]) { - return EXClientReleaseDev; - } else { - return EXClientReleaseAdHoc; - } - } else { - // app store contains no UDIDs (if the file exists at all?) - return EXClientReleaseAppStore; - } -} - -+ (NSString *)clientReleaseTypeToString:(EXClientReleaseType)releaseType -{ - switch (releaseType) - { - case EXClientReleaseTypeUnknown: - return @"UNKNOWN"; - case EXClientReleaseSimulator: - return @"SIMULATOR"; - case EXClientReleaseEnterprise: - return @"ENTERPRISE"; - case EXClientReleaseDev: - return @"DEVELOPMENT"; - case EXClientReleaseAdHoc: - return @"ADHOC"; - case EXClientReleaseAppStore: - return @"APPLE_APP_STORE"; - } + return plistDictionary; } @end diff --git a/packages/expo-application/src/Application.ts b/packages/expo-application/src/Application.ts index 8dbc53acb297d..b41c3e35db20c 100644 --- a/packages/expo-application/src/Application.ts +++ b/packages/expo-application/src/Application.ts @@ -30,6 +30,29 @@ export async function getIosIdForVendorAsync(): Promise { return await ExpoApplication.getIosIdForVendorAsync(); } +export enum ApplicationReleaseType { + UNKNOWN = 0, + SIMULATOR = 1, + ENTERPRISE = 2, + DEVELOPMENT = 3, + AD_HOC = 4, + APP_STORE = 5, +} + +export async function getIosApplicationReleaseTypeAsync(): Promise { + if (!ExpoApplication.getApplicationReleaseTypeAsync) { + throw new UnavailabilityError('expo-application', 'getApplicationReleaseTypeAsync'); + } + return await ExpoApplication.getApplicationReleaseTypeAsync(); +} + +export async function getIosPushNotificationServiceEnvironmentAsync(): Promise { + if (!ExpoApplication.getPushNotificationServiceEnvironmentAsync) { + throw new UnavailabilityError('expo-application', 'getPushNotificationServiceEnvironmentAsync'); + } + return await ExpoApplication.getPushNotificationServiceEnvironmentAsync(); +} + export async function getInstallationTimeAsync(): Promise { if (!ExpoApplication.getInstallationTimeAsync) { throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync');