diff --git a/.vsts-ci.Windows.yml b/.vsts-ci.Windows.yml index c4246f36..0bb13cc3 100644 --- a/.vsts-ci.Windows.yml +++ b/.vsts-ci.Windows.yml @@ -32,4 +32,4 @@ jobs: inputs: pathToPublish: $(build.artifactstagingdirectory) artifactType: container - artifactName: UnoBanner + artifactName: Calculator diff --git a/.vsts-ci.iOS.yml b/.vsts-ci.iOS.yml new file mode 100644 index 00000000..51f6d4aa --- /dev/null +++ b/.vsts-ci.iOS.yml @@ -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 diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 8a41e23e..32caa33e 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -6,3 +6,4 @@ resources: jobs: - template: .vsts-ci.Windows.yml - template: .vsts-ci.Linux.yml +- template: .vsts-ci.iOS.yml diff --git a/src/CalcManager/build_ios.sh b/src/CalcManager/build_ios.sh index 6dc4cf04..889f516f 100755 --- a/src/CalcManager/build_ios.sh +++ b/src/CalcManager/build_ios.sh @@ -1,6 +1,9 @@ +#!/bin/bash + xcrun -sdk iphoneos clang \ -x c++ \ -arch arm64 \ + -miphoneos-version-min=10.0 \ -std=c++1z \ -stdlib=libc++ \ -c \ diff --git a/src/Calculator.iOS/Calculator.iOS.csproj b/src/Calculator.iOS/Calculator.iOS.csproj index 209ef912..e26c8d7b 100644 --- a/src/Calculator.iOS/Calculator.iOS.csproj +++ b/src/Calculator.iOS/Calculator.iOS.csproj @@ -26,6 +26,13 @@ None true -gcc_flags "-lc++ -lstdc++" + + + iPhone Developer + + + + portable @@ -37,6 +44,11 @@ x86_64 false -gcc_flags "-lc++ -lstdc++" + iPhone Distribution + + + + true @@ -52,6 +64,7 @@ iPhone Developer true -gcc_flags "-lc++ -lstdc++" + true none @@ -59,11 +72,18 @@ bin\iPhone\Release prompt 4 - Entitlements.plist + + ARM64 false - iPhone Developer - -gcc_flags "-lc++ -lstdc++" + -gcc_flags "-lc++ -lstdc++" --setenv=MONO_GC_PARAMS=soft-heap-limit=512m,nursery-size=64m,evacuation-threshold=66,major=marksweep,concurrent-sweep + Uno Calculator + iPhone Distribution + + + true + true + true none @@ -90,6 +110,9 @@ Automatic:AppStore iPhone Distribution + + + @@ -105,7 +128,36 @@ - + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + @@ -123,4 +175,4 @@ - \ No newline at end of file + diff --git a/src/Calculator.iOS/Info.plist b/src/Calculator.iOS/Info.plist index 3d4e5835..b8010540 100644 --- a/src/Calculator.iOS/Info.plist +++ b/src/Calculator.iOS/Info.plist @@ -1,11 +1,11 @@ - + CFBundleDisplayName - UnoQuickStart.iOS + Uno Calculator CFBundleIdentifier - com.companyname.WindowsCalculator + uno.platform.calculator CFBundleShortVersionString 1.0 CFBundleVersion @@ -13,7 +13,7 @@ LSRequiresIPhoneOS MinimumOSVersion - 9.0 + 10.0 UIDeviceFamily 1 @@ -38,10 +38,12 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - UIAppFonts - - Fonts/winjs-symbols.ttf - Fonts/CalcMDL2.ttf - + UIAppFonts + + Fonts/winjs-symbols.ttf + Fonts/CalcMDL2.ttf + + UIRequiresFullScreen + diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/Contents.json b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/Contents.json new file mode 100644 index 00000000..8292de75 --- /dev/null +++ b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/Contents.json @@ -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" + } +} diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-76x76@2x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-76x76@2x.png new file mode 100644 index 00000000..5b02c03d Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-76x76@2x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-84x84@2x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-84x84@2x.png new file mode 100644 index 00000000..5f38288d Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPad-84x84@2x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@2x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@2x.png new file mode 100644 index 00000000..15c895f3 Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@2x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@3x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@3x.png new file mode 100644 index 00000000..7c034c51 Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-20x20@3x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-40x40@3x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-40x40@3x.png new file mode 100644 index 00000000..5835894a Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-40x40@3x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-60x60@2x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-60x60@2x.png new file mode 100644 index 00000000..5835894a Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/iPhone-60x60@2x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/ios-marketing-1024x1024@1x.png b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/ios-marketing-1024x1024@1x.png new file mode 100644 index 00000000..7601500a Binary files /dev/null and b/src/Calculator.iOS/Media.xcassets/AppIcons.appiconset/ios-marketing-1024x1024@1x.png differ diff --git a/src/Calculator.iOS/Media.xcassets/LaunchImages.launchimage/Contents.json b/src/Calculator.iOS/Media.xcassets/LaunchImages.launchimage/Contents.json new file mode 100644 index 00000000..69555e44 --- /dev/null +++ b/src/Calculator.iOS/Media.xcassets/LaunchImages.launchimage/Contents.json @@ -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": "" + } +} \ No newline at end of file