diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/100.png b/Limelight/Images.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 00000000..904d0afb Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/100.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/102.png b/Limelight/Images.xcassets/AppIcon.appiconset/102.png new file mode 100644 index 00000000..3efb6cf6 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/102.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/1024.png b/Limelight/Images.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 00000000..4f7f5a35 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/1024.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/1024x icon.png b/Limelight/Images.xcassets/AppIcon.appiconset/1024x icon.png deleted file mode 100644 index 93eca38b..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/1024x icon.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/114.png b/Limelight/Images.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 00000000..d3ba5362 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/114.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/120.png b/Limelight/Images.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 00000000..86d3a9d2 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/120.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/128.png b/Limelight/Images.xcassets/AppIcon.appiconset/128.png new file mode 100644 index 00000000..bfaf16ec Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/128.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/144.png b/Limelight/Images.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 00000000..a174e3df Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/144.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/152.png b/Limelight/Images.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 00000000..752c6821 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/152.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/16.png b/Limelight/Images.xcassets/AppIcon.appiconset/16.png new file mode 100644 index 00000000..f2e61f16 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/16.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/167.png b/Limelight/Images.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 00000000..186acd56 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/167.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/172.png b/Limelight/Images.xcassets/AppIcon.appiconset/172.png new file mode 100644 index 00000000..eaf65676 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/172.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/180.png b/Limelight/Images.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 00000000..3ff88bb7 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/180.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/196.png b/Limelight/Images.xcassets/AppIcon.appiconset/196.png new file mode 100644 index 00000000..576e5d56 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/196.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/20.png b/Limelight/Images.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 00000000..cd355535 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/20.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/216.png b/Limelight/Images.xcassets/AppIcon.appiconset/216.png new file mode 100644 index 00000000..c4de9e4d Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/216.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/256.png b/Limelight/Images.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 00000000..f1ed6451 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/256.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/29.png b/Limelight/Images.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 00000000..0558c250 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/29.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/32.png b/Limelight/Images.xcassets/AppIcon.appiconset/32.png new file mode 100644 index 00000000..fdfd84ed Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/32.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/40.png b/Limelight/Images.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 00000000..0714a2e7 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/40.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/48.png b/Limelight/Images.xcassets/AppIcon.appiconset/48.png new file mode 100644 index 00000000..82ec9f98 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/48.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/50.png b/Limelight/Images.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 00000000..e4183d34 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/50.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/512.png b/Limelight/Images.xcassets/AppIcon.appiconset/512.png new file mode 100644 index 00000000..f3dc6475 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/512.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/55.png b/Limelight/Images.xcassets/AppIcon.appiconset/55.png new file mode 100644 index 00000000..c91bd235 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/55.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/57.png b/Limelight/Images.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 00000000..b0b79bb4 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/57.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/58.png b/Limelight/Images.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 00000000..b295b468 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/58.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/60.png b/Limelight/Images.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 00000000..2e8ae522 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/60.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/64.png b/Limelight/Images.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 00000000..6ac70b48 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/64.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/66.png b/Limelight/Images.xcassets/AppIcon.appiconset/66.png new file mode 100644 index 00000000..9aa93b22 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/66.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/72.png b/Limelight/Images.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 00000000..acdf2393 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/72.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/76.png b/Limelight/Images.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 00000000..1b0d9e5a Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/76.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/80.png b/Limelight/Images.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 00000000..27e2ba1e Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/80.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/87.png b/Limelight/Images.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 00000000..d0c1b645 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/87.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/88.png b/Limelight/Images.xcassets/AppIcon.appiconset/88.png new file mode 100644 index 00000000..17cae2e9 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/88.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/92.png b/Limelight/Images.xcassets/AppIcon.appiconset/92.png new file mode 100644 index 00000000..5692e36b Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/92.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Contents.json b/Limelight/Images.xcassets/AppIcon.appiconset/Contents.json index 1a88ad37..ffab2548 100644 --- a/Limelight/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Limelight/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,112 +1 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x-1.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x-1.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "1024x icon.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"102.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"45x45","expected-size":"102","role":"appLauncher"},{"idiom":"watch","filename":"92.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"46x46","expected-size":"92","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"idiom":"watch","filename":"66.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"33x33","expected-size":"66","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} \ No newline at end of file diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 49a6d8cf..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png deleted file mode 100644 index 4b027705..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index 4b027705..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index 2d84c50f..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index fa7bb64b..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png deleted file mode 100644 index 10d955b9..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 10d955b9..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 2bb7d5ef..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 2bb7d5ef..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 29bed7e9..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 958f7ae9..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index c3c4861d..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 284e50a7..00000000 Binary files a/Limelight/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_01.png b/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_01.png new file mode 100644 index 00000000..a70245ce Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_01.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_02.png b/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_02.png new file mode 100644 index 00000000..4f7f5a35 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/Other/1024x1024_02.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Other/128x128.png b/Limelight/Images.xcassets/AppIcon.appiconset/Other/128x128.png new file mode 100644 index 00000000..88a68d3b Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/Other/128x128.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Other/256x256.png b/Limelight/Images.xcassets/AppIcon.appiconset/Other/256x256.png new file mode 100644 index 00000000..a3d79dfb Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/Other/256x256.png differ diff --git a/Limelight/Images.xcassets/AppIcon.appiconset/Other/64x64.png b/Limelight/Images.xcassets/AppIcon.appiconset/Other/64x64.png new file mode 100644 index 00000000..44bc57e1 Binary files /dev/null and b/Limelight/Images.xcassets/AppIcon.appiconset/Other/64x64.png differ diff --git a/Limelight/Limelight-Info.plist b/Limelight/Limelight-Info.plist index 7d95d89b..e480a490 100644 --- a/Limelight/Limelight-Info.plist +++ b/Limelight/Limelight-Info.plist @@ -9,7 +9,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - ${PRODUCT_NAME} + 这不是披萨 CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/Limelight/Network/AppListResponse.m b/Limelight/Network/AppListResponse.m index d5d30108..39e079ed 100644 --- a/Limelight/Network/AppListResponse.m +++ b/Limelight/Network/AppListResponse.m @@ -112,42 +112,6 @@ - (void) parseData { } xmlFreeDoc(docPtr); - -#ifdef ENABLE_APP_STORE_RESTRICTIONS - // APP STORE REVIEW COMPLIANCE - // - // Remove default Steam entry from the app list to comply with Apple App Store Guideline 4.2.7d: - // - // The UI appearing on the client does not resemble an iOS or App Store view, does not provide a store-like interface, - // or include the ability to browse, select, or purchase software not already owned or licensed by the user. - // - // However, if the user manually adds Steam themselves, then we will display it. - TemporaryApp* officialSteamApp = nil; - TemporaryApp* manuallyAddedSteamApp = nil; - for (TemporaryApp* app in _appList) { - if (app.installPath != nil && [[app.installPath lowercaseString] hasSuffix:@"\\steam\\"]) { - // The official Steam app is marked as HDR supported, while manually added ones are not. - if ([app.name isEqualToString:@"Steam"] && app.hdrSupported) { - officialSteamApp = app; - } - else { - manuallyAddedSteamApp = app; - } - } - } - - // To be safe, don't do anything if we didn't find an HDR-enabled Steam app. - if (officialSteamApp != nil) { - // If we didn't find a manually added Steam app, remove the official one to - // comply with the App Store guidelines. - if (manuallyAddedSteamApp == nil) { - [_appList removeObject:officialSteamApp]; - } - else { - [_appList removeObject:manuallyAddedSteamApp]; - } - } -#endif } - (NSSet*) getAppList { diff --git a/Limelight/Network/DiscoveryManager.m b/Limelight/Network/DiscoveryManager.m index a72df635..8214eeed 100644 --- a/Limelight/Network/DiscoveryManager.m +++ b/Limelight/Network/DiscoveryManager.m @@ -81,44 +81,6 @@ + (BOOL) isAddressLAN:(in_addr_t)addr { return NO; } -// This ensures that only RFC 1918 IPv4 addresses can be passed to -// the Add PC dialog. This is required to comply with Apple App Store -// Guideline 4.2.7a. -+ (BOOL) isProhibitedAddress:(NSString*)address { -#ifdef ENABLE_APP_STORE_RESTRICTIONS - struct addrinfo hints; - struct addrinfo* result; - int err; - - // We're explicitly using AF_INET here because we don't want to - // ever receive a synthesized IPv6 address here, even on NAT64. - // IPv6 addresses are not restricted here because we cannot easily - // tell whether they are local or not. - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET; - err = getaddrinfo([address UTF8String], NULL, &hints, &result); - if (err != 0 || result == NULL) { - Log(LOG_W, @"getaddrinfo(%@) failed: %d", address, err); - return NO; - } - - if (result->ai_family != AF_INET) { - // This should never happen due to our hints - assert(result->ai_family == AF_INET); - Log(LOG_W, @"Unexpected address family: %d", result->ai_family); - freeaddrinfo(result); - return NO; - } - - BOOL ret = ![DiscoveryManager isAddressLAN:((struct sockaddr_in*)result->ai_addr)->sin_addr.s_addr]; - freeaddrinfo(result); - - return ret; -#else - return NO; -#endif -} - - (ServerInfoResponse*) getServerInfoResponseForAddress:(NSString*)address { HttpManager* hMan = [[HttpManager alloc] initWithAddress:address httpsPort:0 serverCert:nil]; ServerInfoResponse* serverInfoResponse = [[ServerInfoResponse alloc] init]; @@ -127,14 +89,6 @@ - (ServerInfoResponse*) getServerInfoResponseForAddress:(NSString*)address { } - (void) discoverHost:(NSString *)hostAddress withCallback:(void (^)(TemporaryHost *, NSString*))callback { - BOOL prohibitedAddress = [DiscoveryManager isProhibitedAddress:hostAddress]; - NSString* prohibitedAddressMessage = [NSString stringWithFormat: @"Moonlight only supports adding PCs on your local network on %s.", - #if TARGET_OS_TV - "tvOS" - #else - "iOS" - #endif - ]; ServerInfoResponse* serverInfoResponse = [self getServerInfoResponseForAddress:hostAddress]; TemporaryHost* host = nil; @@ -146,40 +100,7 @@ - (void) discoverHost:(NSString *)hostAddress withCallback:(void (^)(TemporaryHo // Check if this is a new PC if (![self getHostInDiscovery:host.uuid]) { - // Enforce LAN restriction for App Store Guideline 4.2.7a - if ([DiscoveryManager isProhibitedAddress:hostAddress]) { - // We have a prohibited address. This might be because the user specified their WAN address - // instead of their LAN address. If that's the case, we'll try their LAN address and if we - // can reach it through that address, we'll allow it. - ServerInfoResponse* lanInfo = [self getServerInfoResponseForAddress:host.localAddress]; - if ([lanInfo isStatusOk]) { - TemporaryHost* lanHost = [[TemporaryHost alloc] init]; - [lanInfo populateHost:lanHost]; - - if (![lanHost.uuid isEqualToString:host.uuid]) { - // This is a different host, so it's prohibited - prohibitedAddress = YES; - } - else { - // This is the same host that is reachable on the LAN - prohibitedAddress = NO; - } - } - else { - // LAN request failed, so it's a prohibited address - prohibitedAddress = YES; - } - } - else { - // It's an RFC 1918 IPv4 address or IPv6 address which counts as LAN - prohibitedAddress = NO; - } - - if (prohibitedAddress) { - callback(nil, prohibitedAddressMessage); - return; - } - else if ([DiscoveryManager isAddressLAN:inet_addr([hostAddress UTF8String])]) { + if ([DiscoveryManager isAddressLAN:inet_addr([hostAddress UTF8String])]) { // Don't send a STUN request if we're connected to a VPN. We'll likely get the VPN // gateway's external address rather than the external address of the LAN. if (![Utils isActiveNetworkVPN]) { @@ -201,10 +122,8 @@ - (void) discoverHost:(NSString *)hostAddress withCallback:(void (^)(TemporaryHo } else { callback(host, nil); } - } else if (!prohibitedAddress) { - callback(nil, @"Could not connect to host.\n\nIf you're hosting using GeForce Experience, make sure you've enabled the toggle on the SHIELD tab.\n\nIf you're hosting using Sunshine, ensure it is running properly. If you're using a non-default port, you will need to include that here."); } else { - callback(nil, prohibitedAddressMessage); + callback(nil, @"Could not connect to host.\n\nIf you're hosting using GeForce Experience, make sure you've enabled the toggle on the SHIELD tab.\n\nIf you're hosting using Sunshine, ensure it is running properly. If you're using a non-default port, you will need to include that here."); } } diff --git a/Moonlight.xcodeproj/project.pbxproj b/Moonlight.xcodeproj/project.pbxproj index 517055a1..01720f7d 100644 --- a/Moonlight.xcodeproj/project.pbxproj +++ b/Moonlight.xcodeproj/project.pbxproj @@ -1351,7 +1351,6 @@ GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( NDEBUG, - ENABLE_APP_STORE_RESTRICTIONS, ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1377,7 +1376,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = DM46QST4M7; + DEVELOPMENT_TEAM = R59XCD7GM4; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Limelight/Limelight-Prefix.pch"; HEADER_SEARCH_PATHS = ( @@ -1406,7 +1405,7 @@ "$(PROJECT_DIR)/libs/FFmpeg/lib/iOS-Sim", ); MARKETING_VERSION = 9.0.2; - PRODUCT_BUNDLE_IDENTIFIER = "com.moonlight-stream.Moonlight"; + PRODUCT_BUNDLE_IDENTIFIER = "cn.yiluoe.moonlight-stream.Moonlight"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; @@ -1427,7 +1426,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = DM46QST4M7; + DEVELOPMENT_TEAM = R59XCD7GM4; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "Limelight/Limelight-Prefix.pch"; HEADER_SEARCH_PATHS = ( @@ -1456,7 +1455,7 @@ "$(PROJECT_DIR)/libs/FFmpeg/lib/iOS-Sim", ); MARKETING_VERSION = 9.0.2; - PRODUCT_BUNDLE_IDENTIFIER = "com.moonlight-stream.Moonlight"; + PRODUCT_BUNDLE_IDENTIFIER = "cn.yiluoe.moonlight-stream.Moonlight"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; diff --git a/README.md b/README.md index 6580a883..f465606f 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,23 @@ -# Moonlight iOS/tvOS +# [![AppVeyor Build Status](https://github.com/yiluoe/moonlight-ios/blob/yiluoe/Limelight/Images.xcassets/AppIcon.appiconset/Other/64x64.png?raw=true)](https://ci.appveyor.com/project/cgutman/moonlight-ios/branch/master) Moonlight(yiluoe) -[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/kwv8vpwr457lqn25/branch/master?svg=true)](https://ci.appveyor.com/project/cgutman/moonlight-ios/branch/master) +IOS版Moonlight可让您将全套游戏和应用程序从功能强大的台式电脑传输到 iOS 设备,例如 IPhone、IPad 和 Apple TV,甚至是 Apple Vision 和 Apple Watch。 -[Moonlight for iOS/tvOS](https://moonlight-stream.org) is an open source client for [Sunshine](https://github.com/LizardByte/Sunshine) and NVIDIA GameStream. Moonlight for iOS/tvOS allows you to stream your full collection of games and apps from your powerful desktop computer to your iOS device or Apple TV. +Moonlight 也有 [PC 端](https://github.com/moonlight-stream/moonlight-qt) 和 [Android 端](https://github.com/moonlight-stream/moonlight-android)。 -Moonlight also has a [PC client](https://github.com/moonlight-stream/moonlight-qt) and [Android client](https://github.com/moonlight-stream/moonlight-android). +## 怎么构建呢? -Check out [the Moonlight wiki](https://github.com/moonlight-stream/moonlight-docs/wiki) for more detailed project information, setup guide, or troubleshooting steps. +* 从 [App Store 页面](https://apps.apple.com/us/app/xcode/id497799835) 安装 Xcode +* 运行 `git clone --recursive https://github.com/yiluoe/moonlight-ios` + * 如果你已经克隆了仓库那么你可以直接在项目目录下运行 `git submodule update --init --recursive` +* 在 Xcode 中打开 Moonlight.xcodeproj +* 要在真实设备上运行,您需要在本地修改签名选项: + * 点击左侧边栏顶部的 "Moonlight" + * 点击 "Signing & Capabilities" 选项卡 + * 在 "Targets" 下如果是 iOS/iPadOS 选择 "Moonlight", 如果是 tvOS 选择 "Moonlight TV" + * 在 "Team" 下拉菜单中, 选择你的账户. 如果没有你的账户名,您需要先使用 Apple 帐户登录 Xcode + * 将 "Bundle Identifier" 更改为其他内容. 例如 cn.你的名字.moonlight + * 然后你就可以将你的设备作为目标编译并运行啦~ -[![Moonlight for iOS and tvOS](https://moonlight-stream.org/images/App_Store_Badge_135x40.svg)](https://apps.apple.com/us/app/moonlight-game-streaming/id1000551566) +## 贡献者 -## Building -* Install Xcode from the [App Store page](https://apps.apple.com/us/app/xcode/id497799835) -* Run `git clone --recursive https://github.com/moonlight-stream/moonlight-ios.git` - * If you've already clone the repo without `--recursive`, run `git submodule update --init --recursive` -* Open Moonlight.xcodeproj in Xcode -* To run on a real device, you will need to locally modify the signing options: - * Click on "Moonlight" at the top of the left sidebar - * Click on the "Signing & Capabilities" tab - * Under "Targets", select "Moonlight" (for iOS/iPadOS) or "Moonlight TV" (for tvOS) - * In the "Team" dropdown, select your name. If your name doesn't appear, you may need to sign into Xcode with your Apple account. - * Change the "Bundle Identifier" to something different. You can add your name or some random letters to make it unique. - * Now you can select your Apple device in the top bar as a target and click the Play button to run. +![Contributors](https://contrib.rocks/image?repo=yiluoe/moonlight-ios)