Merged PR 1386317: Enable iOS BVT

Vide proof of life available at: https://microsoft-my.sharepoint.com/✌️/p/psmith_ntdev/EZBv5Wwz6g5ModJ0i4JU_hoBZjFD0XCL8_4lOEz-V-3USw?e=QOpsnU

Related work items: #15424308
This commit is contained in:
Phil Smith 2018-02-01 01:48:01 +00:00
Родитель 33b3e86a14
Коммит 8c648bdbaf
20 изменённых файлов: 1021 добавлений и 44 удалений

Просмотреть файл

@ -144,10 +144,12 @@ ELSE()
ENDIF()
IF(MACOS)
IF((MACOS) OR (IOS))
if ((CMAKE_BUILD_TYPE MATCHES Release) OR (CMAKE_BUILD_TYPE MATCHES MinSizeRel))
MESSAGE (STATUS "optimized build, symbol generation turned-OFF" )
# on optimized builds, do NOT turn-on symbol generation.
else()
MESSAGE (STATUS "non-optimized build, symbol generation turned-ON" )
# Incredibly, for both clang and g++, while a single compile-and-link
# invocation will create an executable.dSYM/ dir with debug info,
# with separate compilation the final link does NOT create the
@ -202,4 +204,6 @@ ADD_DEPENDENCIES(SRC LIBS)
MESSAGE (STATUS "dependencies added")
add_subdirectory(sample)
MESSAGE (STATUS "sample processed")
add_subdirectory(test)
MESSAGE (STATUS "tests processed")
MESSAGE (STATUS "DONE!")

Просмотреть файл

@ -1,5 +1,6 @@
#!/bin/bash
# script to build on mac
mkdir .vs
cd .vs

10
test/CMakeLists.txt Normal file
Просмотреть файл

@ -0,0 +1,10 @@
# xplat\test
# Copyright (C) 2017 Microsoft
# Created by Phil Smith (psmith@microsoft.com) on 01/29/2018
cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR)
ADD_CUSTOM_TARGET(TEST)
IF (IOS)
add_subdirectory(mobile)
ENDIF()

Просмотреть файл

@ -0,0 +1,10 @@
# xplat\test\mobile
# Copyright (C) 2017 Microsoft
# Created by Phil Smith (psmith@microsoft.com) on 01/29/2018
cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR)
ADD_CUSTOM_TARGET(MOBILE)
IF (IOS)
add_subdirectory(common)
ENDIF()

Просмотреть файл

@ -0,0 +1,46 @@
# xplat\test\mobile\common
# Copyright (C) 2017 Microsoft
# Created by Phil Smith (psmith@microsoft.com) on 01/29/2018
cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake) # main (top) cmake dir
set(LIBRARY_NAME xPlatAppxTestCommon)
project(${LIBRARY_NAME})
# Visibility variables for non-win32 platforms
IF(IOS)
# on Apple platforms you can explicitly define which symbols are exported
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(DEFINE_EXPORTS "-exported_symbols_list ${CMAKE_PROJECT_ROOT}/test/mobile/common/exports.def")
ENDIF()
set(LIB_PUBLIC_HEADERS
MobileTests.hpp
)
set(LIB_SOURCES
MobileTests.cpp
)
# Define the library
add_library(${LIBRARY_NAME} SHARED ${LIB_SOURCES} ${LIB_PUBLIC_HEADERS} )
# specify that this library is to be built with C++14
set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD 14)
# Set the build version. It will be used in the name of the lib, with corresponding
# symlinks created. SOVERSION could also be specified for api version.
set_target_properties(${LIBRARY_NAME} PROPERTIES
VERSION ${VERSION} # ${VERSION} was defined in the main CMakeLists.
FRAMEWORK FALSE
PUBLIC_HEADER "${LIB_PUBLIC_HEADERS}" # specify the public headers
)
include_directories(
${include_directories}
${CMAKE_PROJECT_ROOT}/src/inc
)
target_link_libraries(${PROJECT_NAME} PRIVATE xPlatAppx)

Просмотреть файл

@ -1,3 +1,5 @@
#include "AppxPackaging.hpp"
#include "AppxWindows.hpp"
#include <cstdlib>
#include <string>
#include <codecvt>
@ -13,14 +15,14 @@
// Used for test results
bool g_TestFailed = false;
std::string utf16_to_utf8(const std::wstring& utf16string)
static std::string utf16_to_utf8(const std::wstring& utf16string)
{
auto converted = std::wstring_convert<std::codecvt_utf8<wchar_t>>{}.to_bytes(utf16string.data());
std::string result(converted.begin(), converted.end());
return result;
}
std::wstring utf8_to_utf16(const std::string& utf8string)
static std::wstring utf8_to_utf16(const std::string& utf8string)
{
auto converted = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(utf8string.data());
std::wstring result(converted.begin(), converted.end());
@ -28,7 +30,7 @@ std::wstring utf8_to_utf16(const std::string& utf8string)
}
// not all POSIX implementations provide an implementation of mkdirp
int mkdirp(std::wstring& utf16Path)
static int mkdirp(std::wstring& utf16Path)
{
std::string utf8Path = utf16_to_utf8(utf16Path);
auto lastSlash = utf8Path.find_last_of("/");
@ -116,7 +118,7 @@ protected:
};
// Cleans a directory
void RemoveContent(std::string subPath)
static void RemoveContent(std::string subPath)
{
DIR *dir;
if ((dir = opendir(subPath.data())))
@ -148,7 +150,7 @@ FootprintFilesType footprintFilesType[FootprintFilesCount] = {
{APPX_FOOTPRINT_FILE_TYPE_CODEINTEGRITY, "CI catalog", false }, // this is ONLY required iff there exists 1+ PEs
};
HRESULT GetOutputStream(LPCWSTR path, LPCWSTR fileName, IStream** stream)
static HRESULT GetOutputStream(LPCWSTR path, LPCWSTR fileName, IStream** stream)
{
HRESULT hr = S_OK;
const int MaxFileNameLength = 200;
@ -163,7 +165,7 @@ HRESULT GetOutputStream(LPCWSTR path, LPCWSTR fileName, IStream** stream)
return hr;
}
HRESULT ExtractFile(IAppxFile* file, LPCWSTR outputPath)
static HRESULT ExtractFile(IAppxFile* file, LPCWSTR outputPath)
{
HRESULT hr = S_OK;
LPWSTR fileName = nullptr;
@ -200,7 +202,7 @@ HRESULT ExtractFile(IAppxFile* file, LPCWSTR outputPath)
return hr;
}
HRESULT ExtractFootprintFiles(IAppxPackageReader* package, LPCWSTR outputPath)
static HRESULT ExtractFootprintFiles(IAppxPackageReader* package, LPCWSTR outputPath)
{
HRESULT hr = S_OK;
for (int i = 0; SUCCEEDED(hr) && (i < FootprintFilesCount); i++)
@ -216,7 +218,7 @@ HRESULT ExtractFootprintFiles(IAppxPackageReader* package, LPCWSTR outputPath)
return hr;
}
HRESULT ExtractPayloadFiles(IAppxPackageReader* package, LPCWSTR outputPath)
static HRESULT ExtractPayloadFiles(IAppxPackageReader* package, LPCWSTR outputPath)
{
HRESULT hr = S_OK;
ComPtr<IAppxFilesEnumerator> files;
@ -253,7 +255,7 @@ protected:
void Cleanup() { if (content) { std::free(content); content = nullptr; } }
};
HRESULT GetPackageReader(State& state, IAppxPackageReader** package)
static HRESULT GetPackageReader(State& state, IAppxPackageReader** package)
{
HRESULT hr = S_OK;
ComPtr<IAppxFactory> appxFactory;
@ -270,7 +272,7 @@ HRESULT GetPackageReader(State& state, IAppxPackageReader** package)
return hr;
}
HRESULT RunTest(std::string packageName, std::string unpackFolder, APPX_VALIDATION_OPTION flags, int expectedResult)
static HRESULT RunTest(std::string packageName, std::string unpackFolder, APPX_VALIDATION_OPTION flags, int expectedResult)
{
HRESULT hr = S_OK;
State state;
@ -328,20 +330,21 @@ HRESULT RunTest(std::string packageName, std::string unpackFolder, APPX_VALIDATI
return hr;
}
HRESULT RunTests(std::string path)
static HRESULT RunTestsInternal(std::string source, std::string target)
{
HRESULT hr = S_OK;
// Create output directory
std::string unpackFolder = path + "unpack";
std::string unpackFolder = target + "unpack";
if (-1 == mkdir(unpackFolder.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) && errno != EEXIST)
{ return HRESULT_FROM_WIN32(errno);
}
std::ofstream results(path + "testResults.txt");
std::ofstream results(target + "testResults.txt");
auto oldcout = std::cout.rdbuf(results.rdbuf());
// Reference from other tests
APPX_VALIDATION_OPTION sv = APPX_VALIDATION_OPTION::APPX_VALIDATION_OPTION_ALLOWSIGNATUREORIGINUNKNOWN;
APPX_VALIDATION_OPTION ss = APPX_VALIDATION_OPTION::APPX_VALIDATION_OPTION_SKIPSIGNATURE;
APPX_VALIDATION_OPTION full = APPX_VALIDATION_OPTION::APPX_VALIDATION_OPTION_FULL;
@ -349,30 +352,30 @@ HRESULT RunTests(std::string path)
// expected result last four digits, but in decimal, not hex. e.g. 0x8bad0002 == 2, 0x8bad0041 == 65, etc...
// common codes:
// AppxSignatureInvalid = ERROR_FACILITY + 0x0041 == 65
hr = RunTest(path + "Empty.appx", unpackFolder, sv, 2);
hr = RunTest(path + "HelloWorld.appx", unpackFolder, ss, 0);
hr = RunTest(path + "SignatureNotLastPart-ERROR_BAD_FORMAT.appx", unpackFolder, full, 66);
hr = RunTest(path + "SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(path + "SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx", unpackFolder, sv, 65);
hr = RunTest(path + "SignedTamperedCD-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(path + "SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(path + "SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(path + "SignedUntrustedCert-CERT_E_CHAINING.appx", unpackFolder, full, 66);
hr = RunTest(path + "StoreSigned_Desktop_x64_MoviesTV.appx", unpackFolder, full, 0);
hr = RunTest(path + "TestAppxPackage_Win32.appx", unpackFolder, ss, 0);
hr = RunTest(path + "TestAppxPackage_x64.appx", unpackFolder, ss, 0);
hr = RunTest(path + "UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx", unpackFolder, full, 18);
hr = RunTest(path + "FileDoesNotExist.appx", unpackFolder, ss, 1);
hr = RunTest(path + "BlockMap/Missing_Manifest_in_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(path + "BlockMap/ContentTypes_in_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(path + "BlockMap/Invalid_Bad_Block.appx", unpackFolder, ss, 65);
hr = RunTest(path + "BlockMap/Size_wrong_uncompressed.appx", unpackFolder, ss, 0);
hr = RunTest(path + "BlockMap/HelloWorld.appx", unpackFolder, ss, 0);
hr = RunTest(path + "BlockMap/Extra_file_in_blockmap.appx", unpackFolder, ss, 2);
hr = RunTest(path + "BlockMap/File_missing_from_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(path + "BlockMap/No_blockmap.appx", unpackFolder, ss, 2);
hr = RunTest(path + "BlockMap/Bad_Namespace_Blockmap.appx", unpackFolder, ss, 4099);
hr = RunTest(path + "BlockMap/Duplicate_file_in_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(source + "Empty.appx", unpackFolder, sv, 2);
hr = RunTest(source + "HelloWorld.appx", unpackFolder, ss, 0);
hr = RunTest(source + "SignatureNotLastPart-ERROR_BAD_FORMAT.appx", unpackFolder, full, 66);
hr = RunTest(source + "SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(source + "SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx", unpackFolder, sv, 65);
hr = RunTest(source + "SignedTamperedCD-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(source + "SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(source + "SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx", unpackFolder, full, 66);
hr = RunTest(source + "SignedUntrustedCert-CERT_E_CHAINING.appx", unpackFolder, full, 66);
hr = RunTest(source + "StoreSigned_Desktop_x64_MoviesTV.appx", unpackFolder, full, 0);
hr = RunTest(source + "TestAppxPackage_Win32.appx", unpackFolder, ss, 0);
hr = RunTest(source + "TestAppxPackage_x64.appx", unpackFolder, ss, 0);
hr = RunTest(source + "UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx", unpackFolder, full, 18);
hr = RunTest(source + "FileDoesNotExist.appx", unpackFolder, ss, 1);
hr = RunTest(source + "BlockMap/Missing_Manifest_in_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(source + "BlockMap/ContentTypes_in_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(source + "BlockMap/Invalid_Bad_Block.appx", unpackFolder, ss, 65);
hr = RunTest(source + "BlockMap/Size_wrong_uncompressed.appx", unpackFolder, ss, 0);
hr = RunTest(source + "BlockMap/HelloWorld.appx", unpackFolder, ss, 0);
hr = RunTest(source + "BlockMap/Extra_file_in_blockmap.appx", unpackFolder, ss, 2);
hr = RunTest(source + "BlockMap/File_missing_from_blockmap.appx", unpackFolder, ss, 81);
hr = RunTest(source + "BlockMap/No_blockmap.appx", unpackFolder, ss, 2);
hr = RunTest(source + "BlockMap/Bad_Namespace_Blockmap.appx", unpackFolder, ss, 4099);
hr = RunTest(source + "BlockMap/Duplicate_file_in_blockmap.appx", unpackFolder, ss, 81);
std::cout << "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" << std::endl;
if(g_TestFailed)
@ -385,4 +388,9 @@ HRESULT RunTests(std::string path)
std::cout.rdbuf(oldcout);
return S_OK;
}
__attribute__((visibility("default"))) signed long RunTests(char* source, char* target)
{
return static_cast<signed long>(RunTestsInternal(source, target));
}

Просмотреть файл

@ -1,5 +1,2 @@
// xPlat Mobile Test
#include "AppxPackaging.hpp"
#include "AppxWindows.hpp"
HRESULT RunTests(std::string path);
extern "C" signed long RunTests(char* source, char* target);

Просмотреть файл

@ -0,0 +1,7 @@
# exports.def
# written 1/29/2018 by Phil Smith (psmith@microsoft.com)
# This file defines the list of c-style exports for common test shared library
# do not remove, reorder, or overload, these exported functions as doing so
# will break the ABI contract with clients.
# ---------------------------------------------------------------------------
_RunTests

7
test/mobile/iOSBVT.xcworkspace/contents.xcworkspacedata сгенерированный Normal file
Просмотреть файл

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:iOSBVT/iOSBVT.xcodeproj">
</FileRef>
</Workspace>

Просмотреть файл

@ -0,0 +1,557 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 48;
objects = {
/* Begin PBXBuildFile section */
EEE4055020225CDF007B25CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE4054F20225CDF007B25CE /* AppDelegate.m */; };
EEE4055320225CDF007B25CE /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE4055220225CDF007B25CE /* ViewController.m */; };
EEE4055620225CDF007B25CE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EEE4055420225CDF007B25CE /* Main.storyboard */; };
EEE4055820225CDF007B25CE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EEE4055720225CDF007B25CE /* Assets.xcassets */; };
EEE4055B20225CDF007B25CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EEE4055920225CDF007B25CE /* LaunchScreen.storyboard */; };
EEE4055E20225CDF007B25CE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EEE4055D20225CDF007B25CE /* main.m */; };
EEE4056620225E04007B25CE /* libxPlatAppx.0.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = EEE4056420225E04007B25CE /* libxPlatAppx.0.0.0.dylib */; };
EEE4056720225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = EEE4056520225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib */; };
EEE4056920225E20007B25CE /* libxPlatAppx.0.0.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4056420225E04007B25CE /* libxPlatAppx.0.0.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
EEE4056A20225E20007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4056520225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
EEE4058820225EF5007B25CE /* Bad_Namespace_Blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4056D20225EF5007B25CE /* Bad_Namespace_Blockmap.appx */; };
EEE4058920225EF5007B25CE /* ContentTypes_in_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4056E20225EF5007B25CE /* ContentTypes_in_blockmap.appx */; };
EEE4058A20225EF5007B25CE /* Duplicate_file_in_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4056F20225EF5007B25CE /* Duplicate_file_in_blockmap.appx */; };
EEE4058B20225EF5007B25CE /* Extra_file_in_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057020225EF5007B25CE /* Extra_file_in_blockmap.appx */; };
EEE4058C20225EF5007B25CE /* File_missing_from_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057120225EF5007B25CE /* File_missing_from_blockmap.appx */; };
EEE4058D20225EF5007B25CE /* HelloWorld.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057220225EF5007B25CE /* HelloWorld.appx */; };
EEE4058E20225EF5007B25CE /* Invalid_Bad_Block.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057320225EF5007B25CE /* Invalid_Bad_Block.appx */; };
EEE4058F20225EF5007B25CE /* Missing_Manifest_in_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057420225EF5007B25CE /* Missing_Manifest_in_blockmap.appx */; };
EEE4059020225EF5007B25CE /* No_blockmap.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057520225EF5007B25CE /* No_blockmap.appx */; };
EEE4059120225EF5007B25CE /* Size_wrong_uncompressed.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057620225EF5007B25CE /* Size_wrong_uncompressed.appx */; };
EEE4059220225EF5007B25CE /* CentennialCoffee.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057720225EF5007B25CE /* CentennialCoffee.appx */; };
EEE4059320225EF5007B25CE /* Empty.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057820225EF5007B25CE /* Empty.appx */; };
EEE4059420225EF5007B25CE /* HelloWorld.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057920225EF5007B25CE /* HelloWorld.appx */; };
EEE4059520225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057A20225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx */; };
EEE4059620225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057B20225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx */; };
EEE4059720225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057C20225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx */; };
EEE4059820225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057D20225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx */; };
EEE4059920225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057E20225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx */; };
EEE4059A20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4057F20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx */; };
EEE4059B20225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058020225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx */; };
EEE4059C20225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058120225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx */; };
EEE4059D20225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058220225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx */; };
EEE4059E20225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058320225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx */; };
EEE4059F20225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058420225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx */; };
EEE405A020225EF5007B25CE /* TestAppxPackage_Win32.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058520225EF5007B25CE /* TestAppxPackage_Win32.appx */; };
EEE405A120225EF5007B25CE /* TestAppxPackage_x64.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058620225EF5007B25CE /* TestAppxPackage_x64.appx */; };
EEE405A220225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx in Resources */ = {isa = PBXBuildFile; fileRef = EEE4058720225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx */; };
EEE405A420227EC1007B25CE /* CentennialCoffee.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057720225EF5007B25CE /* CentennialCoffee.appx */; };
EEE405A520227EC1007B25CE /* Empty.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057820225EF5007B25CE /* Empty.appx */; };
EEE405A620227EC1007B25CE /* HelloWorld.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057920225EF5007B25CE /* HelloWorld.appx */; };
EEE405A720227EC1007B25CE /* InvalidSignatureBadCodeIntegrity.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057A20225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx */; };
EEE405A820227EC1007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057B20225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx */; };
EEE405A920227EC1007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057C20225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx */; };
EEE405AA20227EC1007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057D20225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx */; };
EEE405AB20227EC1007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057E20225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx */; };
EEE405AC20227EC1007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057F20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx */; };
EEE405AD20227EC1007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058020225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx */; };
EEE405AE20227EC1007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058120225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx */; };
EEE405AF20227EC1007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058220225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx */; };
EEE405B020227EC1007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058320225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx */; };
EEE405B120227EC1007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058420225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx */; };
EEE405B220227EC1007B25CE /* TestAppxPackage_Win32.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058520225EF5007B25CE /* TestAppxPackage_Win32.appx */; };
EEE405B320227EC1007B25CE /* TestAppxPackage_x64.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058620225EF5007B25CE /* TestAppxPackage_x64.appx */; };
EEE405B420227EC1007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4058720225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx */; };
EEE405B620227ED8007B25CE /* Bad_Namespace_Blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4056D20225EF5007B25CE /* Bad_Namespace_Blockmap.appx */; };
EEE405B720227ED8007B25CE /* ContentTypes_in_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4056E20225EF5007B25CE /* ContentTypes_in_blockmap.appx */; };
EEE405B820227ED8007B25CE /* Duplicate_file_in_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4056F20225EF5007B25CE /* Duplicate_file_in_blockmap.appx */; };
EEE405B920227ED8007B25CE /* Extra_file_in_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057020225EF5007B25CE /* Extra_file_in_blockmap.appx */; };
EEE405BA20227ED8007B25CE /* File_missing_from_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057120225EF5007B25CE /* File_missing_from_blockmap.appx */; };
EEE405BB20227ED8007B25CE /* HelloWorld.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057220225EF5007B25CE /* HelloWorld.appx */; };
EEE405BC20227ED8007B25CE /* Invalid_Bad_Block.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057320225EF5007B25CE /* Invalid_Bad_Block.appx */; };
EEE405BD20227ED8007B25CE /* Missing_Manifest_in_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057420225EF5007B25CE /* Missing_Manifest_in_blockmap.appx */; };
EEE405BE20227ED8007B25CE /* No_blockmap.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057520225EF5007B25CE /* No_blockmap.appx */; };
EEE405BF20227ED8007B25CE /* Size_wrong_uncompressed.appx in CopyFiles */ = {isa = PBXBuildFile; fileRef = EEE4057620225EF5007B25CE /* Size_wrong_uncompressed.appx */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
EEE4056820225E11007B25CE /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
EEE4056920225E20007B25CE /* libxPlatAppx.0.0.0.dylib in CopyFiles */,
EEE4056A20225E20007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
EEE405A320227E6D007B25CE /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 7;
files = (
EEE405A420227EC1007B25CE /* CentennialCoffee.appx in CopyFiles */,
EEE405A520227EC1007B25CE /* Empty.appx in CopyFiles */,
EEE405A620227EC1007B25CE /* HelloWorld.appx in CopyFiles */,
EEE405A720227EC1007B25CE /* InvalidSignatureBadCodeIntegrity.appx in CopyFiles */,
EEE405A820227EC1007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx in CopyFiles */,
EEE405A920227EC1007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx in CopyFiles */,
EEE405AA20227EC1007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx in CopyFiles */,
EEE405AB20227EC1007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx in CopyFiles */,
EEE405AC20227EC1007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx in CopyFiles */,
EEE405AD20227EC1007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx in CopyFiles */,
EEE405AE20227EC1007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx in CopyFiles */,
EEE405AF20227EC1007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx in CopyFiles */,
EEE405B020227EC1007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx in CopyFiles */,
EEE405B120227EC1007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx in CopyFiles */,
EEE405B220227EC1007B25CE /* TestAppxPackage_Win32.appx in CopyFiles */,
EEE405B320227EC1007B25CE /* TestAppxPackage_x64.appx in CopyFiles */,
EEE405B420227EC1007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
EEE405B520227ECB007B25CE /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = BlockMap;
dstSubfolderSpec = 7;
files = (
EEE405B620227ED8007B25CE /* Bad_Namespace_Blockmap.appx in CopyFiles */,
EEE405B720227ED8007B25CE /* ContentTypes_in_blockmap.appx in CopyFiles */,
EEE405B820227ED8007B25CE /* Duplicate_file_in_blockmap.appx in CopyFiles */,
EEE405B920227ED8007B25CE /* Extra_file_in_blockmap.appx in CopyFiles */,
EEE405BA20227ED8007B25CE /* File_missing_from_blockmap.appx in CopyFiles */,
EEE405BB20227ED8007B25CE /* HelloWorld.appx in CopyFiles */,
EEE405BC20227ED8007B25CE /* Invalid_Bad_Block.appx in CopyFiles */,
EEE405BD20227ED8007B25CE /* Missing_Manifest_in_blockmap.appx in CopyFiles */,
EEE405BE20227ED8007B25CE /* No_blockmap.appx in CopyFiles */,
EEE405BF20227ED8007B25CE /* Size_wrong_uncompressed.appx in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
EEE4054B20225CDF007B25CE /* iOSBVT.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOSBVT.app; sourceTree = BUILT_PRODUCTS_DIR; };
EEE4054E20225CDF007B25CE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
EEE4054F20225CDF007B25CE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
EEE4055120225CDF007B25CE /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
EEE4055220225CDF007B25CE /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
EEE4055520225CDF007B25CE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
EEE4055720225CDF007B25CE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
EEE4055A20225CDF007B25CE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
EEE4055C20225CDF007B25CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EEE4055D20225CDF007B25CE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
EEE4056420225E04007B25CE /* libxPlatAppx.0.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxPlatAppx.0.0.0.dylib; path = ../../../build/lib/libxPlatAppx.0.0.0.dylib; sourceTree = "<group>"; };
EEE4056520225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxPlatAppxTestCommon.0.0.0.dylib; path = ../../../build/lib/libxPlatAppxTestCommon.0.0.0.dylib; sourceTree = "<group>"; };
EEE4056D20225EF5007B25CE /* Bad_Namespace_Blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Bad_Namespace_Blockmap.appx; sourceTree = "<group>"; };
EEE4056E20225EF5007B25CE /* ContentTypes_in_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = ContentTypes_in_blockmap.appx; sourceTree = "<group>"; };
EEE4056F20225EF5007B25CE /* Duplicate_file_in_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Duplicate_file_in_blockmap.appx; sourceTree = "<group>"; };
EEE4057020225EF5007B25CE /* Extra_file_in_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Extra_file_in_blockmap.appx; sourceTree = "<group>"; };
EEE4057120225EF5007B25CE /* File_missing_from_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = File_missing_from_blockmap.appx; sourceTree = "<group>"; };
EEE4057220225EF5007B25CE /* HelloWorld.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = HelloWorld.appx; sourceTree = "<group>"; };
EEE4057320225EF5007B25CE /* Invalid_Bad_Block.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Invalid_Bad_Block.appx; sourceTree = "<group>"; };
EEE4057420225EF5007B25CE /* Missing_Manifest_in_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Missing_Manifest_in_blockmap.appx; sourceTree = "<group>"; };
EEE4057520225EF5007B25CE /* No_blockmap.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = No_blockmap.appx; sourceTree = "<group>"; };
EEE4057620225EF5007B25CE /* Size_wrong_uncompressed.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = Size_wrong_uncompressed.appx; sourceTree = "<group>"; };
EEE4057720225EF5007B25CE /* CentennialCoffee.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = CentennialCoffee.appx; sourceTree = "<group>"; };
EEE4057820225EF5007B25CE /* Empty.appx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Empty.appx; sourceTree = "<group>"; };
EEE4057920225EF5007B25CE /* HelloWorld.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = HelloWorld.appx; sourceTree = "<group>"; };
EEE4057A20225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = InvalidSignatureBadCodeIntegrity.appx; sourceTree = "<group>"; };
EEE4057B20225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = InvalidSignatureInvalidCodeIntegrityXML.appx; sourceTree = "<group>"; };
EEE4057C20225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = OPC_E_ZIP_CORRUPTED_ARCHIVE.appx; sourceTree = "<group>"; };
EEE4057D20225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignatureNotLastPart-ERROR_BAD_FORMAT.appx"; sourceTree = "<group>"; };
EEE4057E20225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx"; sourceTree = "<group>"; };
EEE4057F20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx"; sourceTree = "<group>"; };
EEE4058020225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedTamperedCD-TRUST_E_BAD_DIGEST.appx"; sourceTree = "<group>"; };
EEE4058120225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx"; sourceTree = "<group>"; };
EEE4058220225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx"; sourceTree = "<group>"; };
EEE4058320225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SignedUntrustedCert-CERT_E_CHAINING.appx"; sourceTree = "<group>"; };
EEE4058420225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = StoreSigned_Desktop_x64_MoviesTV.appx; sourceTree = "<group>"; };
EEE4058520225EF5007B25CE /* TestAppxPackage_Win32.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestAppxPackage_Win32.appx; sourceTree = "<group>"; };
EEE4058620225EF5007B25CE /* TestAppxPackage_x64.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = TestAppxPackage_x64.appx; sourceTree = "<group>"; };
EEE4058720225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx */ = {isa = PBXFileReference; lastKnownFileType = file; path = "UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
EEE4054820225CDF007B25CE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
EEE4056720225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib in Frameworks */,
EEE4056620225E04007B25CE /* libxPlatAppx.0.0.0.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
EEE4054220225CDE007B25CE = {
isa = PBXGroup;
children = (
EEE4054D20225CDF007B25CE /* iOSBVT */,
EEE4054C20225CDF007B25CE /* Products */,
EEE4056420225E04007B25CE /* libxPlatAppx.0.0.0.dylib */,
EEE4056520225E04007B25CE /* libxPlatAppxTestCommon.0.0.0.dylib */,
EEE4056B20225EF5007B25CE /* appx */,
);
sourceTree = "<group>";
};
EEE4054C20225CDF007B25CE /* Products */ = {
isa = PBXGroup;
children = (
EEE4054B20225CDF007B25CE /* iOSBVT.app */,
);
name = Products;
sourceTree = "<group>";
};
EEE4054D20225CDF007B25CE /* iOSBVT */ = {
isa = PBXGroup;
children = (
EEE4054E20225CDF007B25CE /* AppDelegate.h */,
EEE4054F20225CDF007B25CE /* AppDelegate.m */,
EEE4055120225CDF007B25CE /* ViewController.h */,
EEE4055220225CDF007B25CE /* ViewController.m */,
EEE4055420225CDF007B25CE /* Main.storyboard */,
EEE4055720225CDF007B25CE /* Assets.xcassets */,
EEE4055920225CDF007B25CE /* LaunchScreen.storyboard */,
EEE4055C20225CDF007B25CE /* Info.plist */,
EEE4055D20225CDF007B25CE /* main.m */,
);
path = iOSBVT;
sourceTree = "<group>";
};
EEE4056B20225EF5007B25CE /* appx */ = {
isa = PBXGroup;
children = (
EEE4056C20225EF5007B25CE /* BlockMap */,
EEE4057720225EF5007B25CE /* CentennialCoffee.appx */,
EEE4057820225EF5007B25CE /* Empty.appx */,
EEE4057920225EF5007B25CE /* HelloWorld.appx */,
EEE4057A20225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx */,
EEE4057B20225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx */,
EEE4057C20225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx */,
EEE4057D20225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx */,
EEE4057E20225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx */,
EEE4057F20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx */,
EEE4058020225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx */,
EEE4058120225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx */,
EEE4058220225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx */,
EEE4058320225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx */,
EEE4058420225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx */,
EEE4058520225EF5007B25CE /* TestAppxPackage_Win32.appx */,
EEE4058620225EF5007B25CE /* TestAppxPackage_x64.appx */,
EEE4058720225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx */,
);
name = appx;
path = ../../appx;
sourceTree = "<group>";
};
EEE4056C20225EF5007B25CE /* BlockMap */ = {
isa = PBXGroup;
children = (
EEE4056D20225EF5007B25CE /* Bad_Namespace_Blockmap.appx */,
EEE4056E20225EF5007B25CE /* ContentTypes_in_blockmap.appx */,
EEE4056F20225EF5007B25CE /* Duplicate_file_in_blockmap.appx */,
EEE4057020225EF5007B25CE /* Extra_file_in_blockmap.appx */,
EEE4057120225EF5007B25CE /* File_missing_from_blockmap.appx */,
EEE4057220225EF5007B25CE /* HelloWorld.appx */,
EEE4057320225EF5007B25CE /* Invalid_Bad_Block.appx */,
EEE4057420225EF5007B25CE /* Missing_Manifest_in_blockmap.appx */,
EEE4057520225EF5007B25CE /* No_blockmap.appx */,
EEE4057620225EF5007B25CE /* Size_wrong_uncompressed.appx */,
);
path = BlockMap;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
EEE4054A20225CDF007B25CE /* iOSBVT */ = {
isa = PBXNativeTarget;
buildConfigurationList = EEE4056120225CDF007B25CE /* Build configuration list for PBXNativeTarget "iOSBVT" */;
buildPhases = (
EEE4054720225CDF007B25CE /* Sources */,
EEE4054820225CDF007B25CE /* Frameworks */,
EEE4054920225CDF007B25CE /* Resources */,
EEE4056820225E11007B25CE /* CopyFiles */,
EEE405A320227E6D007B25CE /* CopyFiles */,
EEE405B520227ECB007B25CE /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = iOSBVT;
productName = iOSBVT;
productReference = EEE4054B20225CDF007B25CE /* iOSBVT.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
EEE4054320225CDE007B25CE /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0920;
ORGANIZATIONNAME = Microsoft;
TargetAttributes = {
EEE4054A20225CDF007B25CE = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = EEE4054620225CDE007B25CE /* Build configuration list for PBXProject "iOSBVT" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = EEE4054220225CDE007B25CE;
productRefGroup = EEE4054C20225CDF007B25CE /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
EEE4054A20225CDF007B25CE /* iOSBVT */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
EEE4054920225CDF007B25CE /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EEE4059C20225EF5007B25CE /* SignedTamperedCodeIntegrity-TRUST_E_BAD_DIGEST.appx in Resources */,
EEE4059620225EF5007B25CE /* InvalidSignatureInvalidCodeIntegrityXML.appx in Resources */,
EEE4059020225EF5007B25CE /* No_blockmap.appx in Resources */,
EEE4058D20225EF5007B25CE /* HelloWorld.appx in Resources */,
EEE4059720225EF5007B25CE /* OPC_E_ZIP_CORRUPTED_ARCHIVE.appx in Resources */,
EEE4059420225EF5007B25CE /* HelloWorld.appx in Resources */,
EEE4058A20225EF5007B25CE /* Duplicate_file_in_blockmap.appx in Resources */,
EEE4059D20225EF5007B25CE /* SignedTamperedContentTypes-TRUST_E_BAD_DIGEST.appx in Resources */,
EEE4059B20225EF5007B25CE /* SignedTamperedCD-TRUST_E_BAD_DIGEST.appx in Resources */,
EEE4055B20225CDF007B25CE /* LaunchScreen.storyboard in Resources */,
EEE405A220225EF5007B25CE /* UnsignedZip64WithCI-APPX_E_MISSING_REQUIRED_FILE.appx in Resources */,
EEE4059120225EF5007B25CE /* Size_wrong_uncompressed.appx in Resources */,
EEE4059320225EF5007B25CE /* Empty.appx in Resources */,
EEE405A120225EF5007B25CE /* TestAppxPackage_x64.appx in Resources */,
EEE4058C20225EF5007B25CE /* File_missing_from_blockmap.appx in Resources */,
EEE4059920225EF5007B25CE /* SignedMismatchedPublisherName-ERROR_BAD_FORMAT.appx in Resources */,
EEE4058F20225EF5007B25CE /* Missing_Manifest_in_blockmap.appx in Resources */,
EEE4058820225EF5007B25CE /* Bad_Namespace_Blockmap.appx in Resources */,
EEE405A020225EF5007B25CE /* TestAppxPackage_Win32.appx in Resources */,
EEE4059820225EF5007B25CE /* SignatureNotLastPart-ERROR_BAD_FORMAT.appx in Resources */,
EEE4055820225CDF007B25CE /* Assets.xcassets in Resources */,
EEE4059520225EF5007B25CE /* InvalidSignatureBadCodeIntegrity.appx in Resources */,
EEE4059F20225EF5007B25CE /* StoreSigned_Desktop_x64_MoviesTV.appx in Resources */,
EEE4058920225EF5007B25CE /* ContentTypes_in_blockmap.appx in Resources */,
EEE4058B20225EF5007B25CE /* Extra_file_in_blockmap.appx in Resources */,
EEE4059A20225EF5007B25CE /* SignedTamperedBlockMap-TRUST_E_BAD_DIGEST.appx in Resources */,
EEE4059E20225EF5007B25CE /* SignedUntrustedCert-CERT_E_CHAINING.appx in Resources */,
EEE4059220225EF5007B25CE /* CentennialCoffee.appx in Resources */,
EEE4058E20225EF5007B25CE /* Invalid_Bad_Block.appx in Resources */,
EEE4055620225CDF007B25CE /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
EEE4054720225CDF007B25CE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EEE4055320225CDF007B25CE /* ViewController.m in Sources */,
EEE4055E20225CDF007B25CE /* main.m in Sources */,
EEE4055020225CDF007B25CE /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
EEE4055420225CDF007B25CE /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
EEE4055520225CDF007B25CE /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
EEE4055920225CDF007B25CE /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
EEE4055A20225CDF007B25CE /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
EEE4055F20225CDF007B25CE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
EEE4056020225CDF007B25CE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
EEE4056220225CDF007B25CE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 958H8277WK;
FRAMEWORK_SEARCH_PATHS = "";
INFOPLIST_FILE = iOSBVT/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = /Users/philsmith/Documents/projects/xPlatAppx/build/lib;
PRODUCT_BUNDLE_IDENTIFIER = Microsoft.iOSBVT;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
EEE4056320225CDF007B25CE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 958H8277WK;
FRAMEWORK_SEARCH_PATHS = "";
INFOPLIST_FILE = iOSBVT/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = /Users/philsmith/Documents/projects/xPlatAppx/build/lib;
PRODUCT_BUNDLE_IDENTIFIER = Microsoft.iOSBVT;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
EEE4054620225CDE007B25CE /* Build configuration list for PBXProject "iOSBVT" */ = {
isa = XCConfigurationList;
buildConfigurations = (
EEE4055F20225CDF007B25CE /* Debug */,
EEE4056020225CDF007B25CE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
EEE4056120225CDF007B25CE /* Build configuration list for PBXNativeTarget "iOSBVT" */ = {
isa = XCConfigurationList;
buildConfigurations = (
EEE4056220225CDF007B25CE /* Debug */,
EEE4056320225CDF007B25CE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = EEE4054320225CDE007B25CE /* Project object */;
}

Просмотреть файл

@ -0,0 +1,17 @@
//
// AppDelegate.h
// iOSBVT
//
// Created by Phil Smith on 1/31/18.
// Copyright © 2018 Microsoft. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

Просмотреть файл

@ -0,0 +1,61 @@
//
// AppDelegate.m
// iOSBVT
//
// Created by Phil Smith on 1/31/18.
// Copyright © 2018 Microsoft. All rights reserved.
//
#import "AppDelegate.h"
extern signed long RunTests(char* source, char* target);
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
char str[256] = {0};
NSString* slash = @"/";
NSBundle* mainBundle = [NSBundle mainBundle];
NSString* resourcePath = mainBundle.resourcePath;
NSString* sourcePath = [resourcePath stringByAppendingString:slash];
char* source = [sourcePath UTF8String];
unsigned long result = RunTests(source, "tmp/");
sprintf(str,"0x%08X", result);
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

Просмотреть файл

@ -0,0 +1,98 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "83.5x83.5",
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Просмотреть файл

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

Просмотреть файл

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

Просмотреть файл

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,15 @@
//
// ViewController.h
// iOSBVT
//
// Created by Phil Smith on 1/31/18.
// Copyright © 2018 Microsoft. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end

Просмотреть файл

@ -0,0 +1,29 @@
//
// ViewController.m
// iOSBVT
//
// Created by Phil Smith on 1/31/18.
// Copyright © 2018 Microsoft. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end

Просмотреть файл

@ -0,0 +1,16 @@
//
// main.m
// iOSBVT
//
// Created by Phil Smith on 1/31/18.
// Copyright © 2018 Microsoft. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

Просмотреть файл

@ -74,8 +74,8 @@ Java_com_microsoft_xplatappxandroid_MainActivity_RunTests(JNIEnv* env, jobject /
std::string filePath = GetStringPathFromJString(env, jFilePath);
CopyFilesFromAssets(env, assetManager, filePath, "");
CopyFilesFromAssets(env, assetManager, filePath, "BlockMap");
HRESULT hr = RunTests(filePath);
if(hr == S_OK)
signed long hr = RunTests(const_cast<char*>(filePath.c_str()), const_cast<char*>(filePath.c_str()));
if(hr == 0)
{
output = "Finished running tests";
}