MSIX SDK
Перейти к файлу
Phil Smith 8c648bdbaf 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
2018-02-01 01:48:01 +00:00
.vscode openssl stuff 2017-11-22 14:19:53 -08:00
AppxPackaging Merged PR 1189137: Add schema validation of [content_types].xml 2017-12-08 19:57:41 +00:00
certs Add Microsoft MarketPlace PCA 2011 certificate. 2017-11-29 12:04:29 -08:00
cmake Merged PR 1322910: Enable arm64 ios build 2018-01-18 00:51:06 +00:00
lib Merged PR 1304570: Remove dead/unused submodules from project. 2018-01-12 00:49:27 +00:00
sample Merged PR 1317796: ExtractContentsSample don't create subdirectories approperly for non-Win platforms. 2018-01-17 02:06:16 +00:00
src Merged PR 1384642: Unpack store signed appx packages on Win7 2018-02-01 01:06:20 +00:00
test Merged PR 1386317: Enable iOS BVT 2018-02-01 01:48:01 +00:00
.gitignore Android App boilerplate 2018-01-17 09:30:45 -08:00
.gitmodules Merged PR 1304570: Remove dead/unused submodules from project. 2018-01-12 00:49:27 +00:00
CMakeLists.txt Merged PR 1386317: Enable iOS BVT 2018-02-01 01:48:01 +00:00
CMakeSettings.json Merged PR 1015588: Merge cmake to feature 2017-10-25 00:40:45 +00:00
LICENSE Add attribution text to existing license text file to meet CELA compliance for OSS project. 2018-01-16 16:53:40 -08:00
Microsoft.xPlat.AppxPackaging.targets Merged PR 1116488: Create a real native nuget package 2017-11-17 01:15:02 +00:00
Package.nuspec.cmakein update package nuspec 2018-01-17 17:16:00 -08:00
ProjectIcon.png Merged PR 1028022: Merge xerces to feature 2017-10-27 18:48:31 +00:00
README.md Updated README.md 2017-12-12 00:51:19 +00:00
makeaosp-arm Merged PR 1303562: Remove C++ runtime static dependency on Android 2018-01-11 23:31:31 +00:00
makeaosp-arm64 Merged PR 1303562: Remove C++ runtime static dependency on Android 2018-01-11 23:31:31 +00:00
makeaosp-armv7a Merged PR 1303562: Remove C++ runtime static dependency on Android 2018-01-11 23:31:31 +00:00
makeaosp-x86 Merged PR 1303562: Remove C++ runtime static dependency on Android 2018-01-11 23:31:31 +00:00
makeaosponmacx86.sh Add path of NDK 2018-01-19 16:25:16 -08:00
makeaosponmacx86chk.sh Merged PR 1386317: Enable iOS BVT 2018-02-01 01:48:01 +00:00
makeaosponwinx86.cmd Merged PR 1303562: Remove C++ runtime static dependency on Android 2018-01-11 23:31:31 +00:00
makeiosarm64 Merged PR 1322910: Enable arm64 ios build 2018-01-18 00:51:06 +00:00
makeiossim Merged PR 1322910: Enable arm64 ios build 2018-01-18 00:51:06 +00:00
makeiossimchk Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
makelinux Push release builds to as small as possible. Will add chk builds in a subsequent patch. 2017-12-12 14:55:32 -08:00
makelinuxchk Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
makemac Push release builds to as small as possible. Will add chk builds in a subsequent patch. 2017-12-12 14:55:32 -08:00
makemacchk Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
makewin.cmd Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
makewin32.cmd Push release builds to as small as possible. Will add chk builds in a subsequent patch. 2017-12-12 14:55:32 -08:00
makewin32chk.cmd Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
makewin32x64.cmd Push release builds to as small as possible. Will add chk builds in a subsequent patch. 2017-12-12 14:55:32 -08:00
makewin32x64chk.cmd Merged PR 1358121: Create new CHK flavored build scripts. 2018-01-26 00:10:10 +00:00
release_master.cmd Fix release break due to CMakeList.txt dependency on description containing 3+ parts (which doesn't happen on first build with specified tag) 2017-10-27 15:05:33 -07:00
release_master.ps1 Fix release break due to CMakeList.txt dependency on description containing 3+ parts (which doesn't happen on first build with specified tag) 2017-10-27 15:05:33 -07:00
testaosponmac.sh Add dumping the results 2018-01-22 13:45:29 -08:00

README.md

xPlatAppx

Copyright (c) 2017 Microsoft Corp. 
All rights reserved.

DESCRIPTION

The xPlatAppx project is an effort to enable developers on a variety of platforms to package and unpackage 
application packages for the purposes of distribution from either the Microsoft Windows Apps Store, or 
2nd/3rd party stores.  To that end, the file format of these packages need to be in a format that is easily 
digestible to through the Microsoft Windows Apps Store back-end ingestion processes; which means that the 
file format for these packages will be an .AppX package.

OVERVIEW

The xPlatAppx project includes:

  1. Cross platform API support for unpacakge of .appx package
  2. Developer tooling to build .appx package on Windows, MacOS and Linux.

The scheduling of the highlevel work listed above will be determined with respect to the relative priorities.

The xPlatAppx project includes:

    xPlatAppx       - A shared library (DLL on Win32, dylib on MacOs, SO on Linux) that exports a subset
                      of the functionality contained within appxpackaging.dll on Windows.  See:
                      https://msdn.microsoft.com/en-us/library/windows/desktop/hh446766(v=vs.85).aspx
                      for additional details.

                      On platforms that do not support COM (e.g. anything _other_ than Windows) instead of
                      CoCreating IAppxFactory, a c-style export: CoCreateAppxFactory is provided instead.
                      See sample folder at root of package for cross platform consumption examples

                      Finally, there are two additional exports: 'Pack' and 'Unpack' that provide
                      simplified package and unpackage implementations respectively.
                      
    MakeXplatAppx   - A command line wrapper over the Pack and Unpack implementations.  This tool exists
                      primarily as a means of validating the implementation of xPlatAppx internal routines
                      and is compiled for Win32, MacOS, and Linux platforms.

SETUP INSTRUCTIONS

Step 1: Clone the repository:
    git clone https://microsoft.visualstudio.com/DefaultCollection/_git/xPlatAppx
Step 2: Initialize git submodules:
    git submodule init
    git submodule update

ISSUES

If you are using Visual Studio 2017 and you run into errors about not being able to find the v140 toolset, then 1st:
    step 1: Install the Microsoft Build Tools (https://chocolatey.org/packages/microsoft-build-tools)
    step 2: start -> visual studio installer -> Visual Studio Build Tools 2017 -> Modify the 2014 toolset -> individual components 
    step 3: make sure that VC++ 2015.3 v140 toolset for desktop is selected and then unselect VC++ 2017 141 toolset
    step 4: close, then re-open the solution.

INSTALLATION

TODO: write stuffs here

PREREQUISITES

Make sure that you have CMAKE installed on your machine 

* https://cmake.org/download/

VS 2017 clients: 
----------------
Open Visual Studio 2017
File->Open Folder->navigate to project root and select "CMakeLists.txt"

See: https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/
for details regarding how to configure your environment.

Xcode clients: 
--------------
open terminal, from project root:
mkdir build && cd build && cmake -DMACOS=on -G"Xcode" ..
open xcode
File->Open->navigate to project root/build and select "Project.xcodeproj"

See: https://www.johnlamp.net/cmake-tutorial-2-ide-integration.html#section-Xcode for additional details

Make Android on Windows:
------------------------
Unpack the latest Android NDK to c:\android-ndk
Unpack Ninja-build to c:\ninja
Add c:\ninja to the path environment variable
Create a folder under the root of the enlistment called "android", cd into that folder, then run the following command to create ninja build files:

cmake -DCMAKE_ANDROID_NDK=c:/android-ndk ^
    -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang ^
    -DCMAKE_SYSTEM_NAME=Android ^
    -DCMAKE_SYSTEM_VERSION=27 ^
    -DCMAKE_ANDROID_ARCH_ABI=x86 ^
    -DCMAKE_ANDROID_STL_TYPE=c++_static ^
    -DCMAKE_BUILD_TYPE=Release ^
    -DAOSP=on ^
    -G"Ninja" ..

To compile, run the following command from the android folder:

ninja


Ninja-build:
------------
https://github.com/ninja-build/ninja/releases

Android NDK:
------------
https://developer.android.com/ndk/downloads/index.html

Clang/LLVM:
-----------
http://releases.llvm.org/download.html

BUILD

On Windows using Visual Studio 2017 nmake:
    makewin32.cmd

On Mac using make: 
    ./makemac

SUPPORT

TODO: write stuffs here

HOW TO CONTRIBUTE TO xPlatAppx

TODO: write stuffs here