Merge pull request #16 from nventive/dev/jela/ios

Enable iOS build generation
This commit is contained in:
Jérôme Laban 2019-05-21 15:27:04 -04:00 committed by GitHub
commit c4dd2b9128
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 312 additions and 15 deletions

View file

@ -32,4 +32,4 @@ jobs:
inputs: inputs:
pathToPublish: $(build.artifactstagingdirectory) pathToPublish: $(build.artifactstagingdirectory)
artifactType: container artifactType: container
artifactName: UnoBanner artifactName: Calculator

75
.vsts-ci.iOS.yml Normal file
View file

@ -0,0 +1,75 @@
jobs:
- job: iOS
pool:
vmImage: 'macOS-10.14'
variables:
NUGET_PACKAGES: $(build.sourcesdirectory)/.nuget
steps:
- checkout: self
clean: true
- bash: /bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_18_1"
displayName: Select Xamarin Version
- bash: |
shopt -s nullglob
function join_by { local IFS="$1"; shift; echo "$*"; }
lib_path=$(join_by ';' $(Agent.WorkFolder)/_tasks/GitVersion*/4.0.*/lib/osx)
echo LD_LIBRARY_PATH: $lib_path
echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$lib_path"
displayName: Update LD_LIBRARY_PATH for GitVersion
- task: GitVersion@4
inputs:
updateAssemblyInfo: false
- task: InstallAppleCertificate@2
displayName: 'Install an Apple certificate'
inputs:
certSecureFile: 'nventive-appstore-prod-20190521.p12'
certPwd: '$(iOSSigning.CertificatePwd)'
signingIdentity: '$(iOSSigning.CertificateIdentity)'
- task: InstallAppleProvisioningProfile@1
displayName: 'Install an Apple provisioning profile'
inputs:
provProfileSecureFile: 'Uno_Calculator.mobileprovision'
- bash: |
cd $(build.sourcesdirectory)/src/CalcManager
chmod +x build_ios.sh
./build_ios.sh
displayName: Build native CalcManager
- task: MSBuild@1
inputs:
solution: '$(build.sourcesdirectory)/src/Calculator.iOS/Calculator.iOS.csproj'
msbuildLocationMethod: version
msbuildVersion: latest
msbuildArchitecture: x86
msbuildArguments: /r /p:Configuration=Release /p:Platform=iPhone /detailedsummary /m:16 /nr:false "/p:InformationalVersion=%GITVERSION_InformationalVersion%"
clean: false
maximumCpuCount: true
restoreNugetPackages: false
logProjectEvents: true
createLogFile: true
- task: CopyFiles@2
displayName: 'Publish iOS Binaries'
inputs:
SourceFolder: $(build.sourcesdirectory)/src/Calculator.iOS/bin/iPhone/Release
Contents: '*.ipa'
TargetFolder: $(build.artifactstagingdirectory)
CleanTargetFolder: false
OverWrite: false
flattenFolders: false
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(build.artifactstagingdirectory)
ArtifactName: Uno-Calculator-iOS
ArtifactType: Container

View file

@ -6,3 +6,4 @@ resources:
jobs: jobs:
- template: .vsts-ci.Windows.yml - template: .vsts-ci.Windows.yml
- template: .vsts-ci.Linux.yml - template: .vsts-ci.Linux.yml
- template: .vsts-ci.iOS.yml

View file

@ -1,6 +1,9 @@
#!/bin/bash
xcrun -sdk iphoneos clang \ xcrun -sdk iphoneos clang \
-x c++ \ -x c++ \
-arch arm64 \ -arch arm64 \
-miphoneos-version-min=10.0 \
-std=c++1z \ -std=c++1z \
-stdlib=libc++ \ -stdlib=libc++ \
-c \ -c \

View file

@ -26,6 +26,13 @@
<MtouchLink>None</MtouchLink> <MtouchLink>None</MtouchLink>
<MtouchDebug>true</MtouchDebug> <MtouchDebug>true</MtouchDebug>
<MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs> <MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs>
<MtouchSdkVersion>
</MtouchSdkVersion>
<CodesignKey>iPhone Developer</CodesignKey>
<CodesignProvision />
<CodesignExtraArgs />
<CodesignResourceRules />
<CodesignEntitlements />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
<DebugType>portable</DebugType> <DebugType>portable</DebugType>
@ -37,6 +44,11 @@
<MtouchArch>x86_64</MtouchArch> <MtouchArch>x86_64</MtouchArch>
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
<MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs> <MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs>
<CodesignKey>iPhone Distribution</CodesignKey>
<CodesignProvision />
<CodesignExtraArgs />
<CodesignResourceRules />
<CodesignEntitlements />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -52,6 +64,7 @@
<CodesignKey>iPhone Developer</CodesignKey> <CodesignKey>iPhone Developer</CodesignKey>
<MtouchDebug>true</MtouchDebug> <MtouchDebug>true</MtouchDebug>
<MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs> <MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs>
<BuildIpa>true</BuildIpa>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<DebugType>none</DebugType> <DebugType>none</DebugType>
@ -59,11 +72,18 @@
<OutputPath>bin\iPhone\Release</OutputPath> <OutputPath>bin\iPhone\Release</OutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements> <CodesignEntitlements>
</CodesignEntitlements>
<MtouchArch>ARM64</MtouchArch> <MtouchArch>ARM64</MtouchArch>
<ConsolePause>false</ConsolePause> <ConsolePause>false</ConsolePause>
<CodesignKey>iPhone Developer</CodesignKey> <MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++" --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep</MtouchExtraArgs>
<MtouchExtraArgs>-gcc_flags "-lc++ -lstdc++"</MtouchExtraArgs> <CodesignProvision>Uno Calculator</CodesignProvision>
<CodesignKey>iPhone Distribution</CodesignKey>
<CodesignExtraArgs />
<CodesignResourceRules />
<MtouchUseLlvm>true</MtouchUseLlvm>
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
<BuildIpa>true</BuildIpa>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
<DebugType>none</DebugType> <DebugType>none</DebugType>
@ -90,6 +110,9 @@
<CodesignProvision>Automatic:AppStore</CodesignProvision> <CodesignProvision>Automatic:AppStore</CodesignProvision>
<CodesignKey>iPhone Distribution</CodesignKey> <CodesignKey>iPhone Distribution</CodesignKey>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(RunConfiguration)' == 'Default' ">
<AppExtensionDebugBundleId />
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Main.cs" /> <Compile Include="Main.cs" />
<None Include="Info.plist"> <None Include="Info.plist">
@ -105,7 +128,36 @@
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" /> <Reference Include="Xamarin.iOS" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\Contents.json">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\ios-marketing-1024x1024@1x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPad-76x76@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPad-84x84@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPhone-20x20@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPhone-20x20@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPhone-40x40@3x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\iPhone-60x60@2x.png">
<Visible>false</Visible>
</ImageAsset>
<ImageAsset Include="Media.xcassets\LaunchImages.launchimage\Contents.json">
<Visible>false</Visible>
</ImageAsset>
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\Fonts\winjs-symbols.ttf" /> <BundleResource Include="Resources\Fonts\winjs-symbols.ttf" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>UnoQuickStart.iOS</string> <string>Uno Calculator</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.companyname.WindowsCalculator</string> <string>uno.platform.calculator</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.0</string> <string>1.0</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
@ -13,7 +13,7 @@
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>9.0</string> <string>10.0</string>
<key>UIDeviceFamily</key> <key>UIDeviceFamily</key>
<array> <array>
<integer>1</integer> <integer>1</integer>
@ -38,10 +38,12 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIAppFonts</key> <key>UIAppFonts</key>
<array> <array>
<string>Fonts/winjs-symbols.ttf</string> <string>Fonts/winjs-symbols.ttf</string>
<string>Fonts/CalcMDL2.ttf</string> <string>Fonts/CalcMDL2.ttf</string>
</array> </array>
<key>UIRequiresFullScreen</key>
<true/>
</dict> </dict>
</plist> </plist>

View file

@ -0,0 +1,106 @@
{
"images": [
{
"scale": "2x",
"size": "29x29",
"idiom": "iphone"
},
{
"scale": "3x",
"size": "29x29",
"idiom": "iphone"
},
{
"scale": "2x",
"size": "40x40",
"idiom": "iphone"
},
{
"scale": "3x",
"size": "60x60",
"idiom": "iphone"
},
{
"scale": "1x",
"size": "20x20",
"idiom": "ipad"
},
{
"scale": "2x",
"size": "20x20",
"idiom": "ipad"
},
{
"scale": "1x",
"size": "29x29",
"idiom": "ipad"
},
{
"scale": "2x",
"size": "29x29",
"idiom": "ipad"
},
{
"scale": "1x",
"size": "40x40",
"idiom": "ipad"
},
{
"scale": "2x",
"size": "40x40",
"idiom": "ipad"
},
{
"scale": "1x",
"size": "76x76",
"idiom": "ipad"
},
{
"scale": "2x",
"size": "20x20",
"idiom": "iphone",
"filename": "iPhone-20x20@2x.png"
},
{
"scale": "3x",
"size": "20x20",
"idiom": "iphone",
"filename": "iPhone-20x20@3x.png"
},
{
"scale": "3x",
"size": "40x40",
"idiom": "iphone",
"filename": "iPhone-40x40@3x.png"
},
{
"scale": "2x",
"size": "60x60",
"idiom": "iphone",
"filename": "iPhone-60x60@2x.png"
},
{
"scale": "2x",
"size": "76x76",
"idiom": "ipad",
"filename": "iPad-76x76@2x.png squaretile-sdk-ipad.png"
},
{
"scale": "2x",
"size": "83.5x83.5",
"idiom": "ipad",
"filename": "iPad-84x84@2x.png"
},
{
"scale": "1x",
"size": "1024x1024",
"idiom": "ios-marketing",
"filename": "ios-marketing-1024x1024@1x.png"
}
],
"properties": {},
"info": {
"version": 1,
"author": "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,58 @@
{
"images": [
{
"orientation": "portrait",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"size": "640x960",
"idiom": "iphone"
},
{
"orientation": "portrait",
"extent": "full-screen",
"minimum-system-version": "7.0",
"subtype": "retina4",
"scale": "2x",
"size": "640x1136",
"idiom": "iphone"
},
{
"orientation": "portrait",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "1x",
"size": "768x1024",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "1x",
"size": "1024x768",
"idiom": "ipad"
},
{
"orientation": "portrait",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"size": "1536x2048",
"idiom": "ipad"
},
{
"orientation": "landscape",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"size": "2048x1536",
"idiom": "ipad"
}
],
"properties": {},
"info": {
"version": 1,
"author": ""
}
}