Sure would be handy if Apple included some information about the requirement to open Xcode to complete the agreement process.
Post
Replies
Boosts
Views
Activity
I'm seeing the same issue, with a Unity-generated project. I don't think moving headers around in the project is a solution for Unity-generated projects, since the whole project gets regenerated every time I build. I can just do a "Clean Build Folder" and then it builds again without having to regenerate the whole project. I hope Apple fixes this issue, but I have low hopes that they're paying attention.
I have figured this out. What's not obvious is that this project has a Watch Extension target. I am sharing many of the classes between the main iPhone target and the watch target, which requires checking the box for the watch target when the class is under the phone project structure. I had forgotten to check the box for the watch to have access to the new class BleMessenger.swift.
It would be extremely helpful if the error message was more specific, but I guess it's just something to remember.
When I put the class file "BleMessenger.swift" into the "Data" group, the classes in the "Gadgets" group can't see it.
If I move the "BleMessenger.swift" file into the Gadgets group, suddenly the classes in the "Gadgets" group see it.
As shown, the BleMessenger class is currently empty.
Here are screenshots of the issue:
Ok, my example wasn't exactly my use case. I'll revise...
Group A
-ClassA
-Group B (is inside of Group A)
--ClassB
ClassB cannot see ClassA.
(edit: This works in a new project, so I guess I'll have to get screenshots from my actual project.)
I think I found the answer I wanted in "overlay", which allows anchoring additional items within the space of another item, at corners or centered along edges.
//
// MainView.swift
// DB5 Remote
//
// Created by Todd Gillissie on 1/10/22.
//
import SwiftUI
struct MainView: View {
@State private var playingVideoId = ""
@State private var mode = AppMode.MODIFICATIONS
var body: some View {
ZStack {
GeometryReader { geometry in
Image("BackingTexture100")
.resizable()
.aspectRatio(contentMode: .fill)
.scaledToFill()
.ignoresSafeArea()
}
// Top left & right
// VStack
// {
// HStack {
// Image("007LogoWhite")
// .resizable()
// .scaledToFit()
// .frame(width: 120, height: 40, alignment: .topLeading)
// Spacer()
//
// PancakeMenu()
// }
// Spacer()
// }
// .padding(.horizontal, 8)
// Horizontally centered from top to bottom of screen.
VStack
{
Image("MI6logo")
.padding(.bottom, 6.0)
DB5LogoTitle(mode: mode)
// switch statements don't work in views for some reason..
if (mode == AppMode.MODIFICATIONS)
{
ModificationsView()
}
else if (mode == AppMode.VIDEOS)
{
VideoList()
}
else if (mode == AppMode.CREDITS)
{
Rectangle().foregroundColor(.yellow)
}
}
.overlay(alignment: .topLeading) {
Image("007LogoWhite").resizable()
.scaledToFit()
.frame(width: 120, height: 40, alignment: .topLeading)
}
.overlay(alignment: .topTrailing) { PancakeMenu() }
.padding(.horizontal, 8)
if (playingVideoId != "")
{
VStack
{
Spacer()
PlayingVideo()
}
.padding(.horizontal, -4.0)
.ignoresSafeArea()
}
}
}
}
enum AppMode: Int {
case MODIFICATIONS = 0
case VIDEOS = 1
case CREDITS = 2
}
struct MainView_Previews: PreviewProvider {
static var previews: some View {
MainView()
}
}
This is how I'm currently doing it. There's a separate VStack just for the top right and top left elements ("007LogoWhite" and PancakeMenu)
struct ContentView: View {
var body: some View {
ZStack {
GeometryReader { geometry in
Image("BackingTexture100")
.resizable()
.aspectRatio(contentMode: .fill)
.scaledToFill()
.ignoresSafeArea()
}
// Top left & right
VStack
{
HStack {
Image("007LogoWhite")
.resizable()
.scaledToFit()
.frame(width: 120, height: 40, alignment: .topLeading)
Spacer()
PancakeMenu()
}
Spacer()
}
.padding(.horizontal, 8)
// Horizontally centered from top to bottom of screen.
VStack
{
Image("MI6logo")
DB5LogoTitle()
.padding(.top)
Spacer()
}
.padding(.horizontal, 8)
}
}
}
Here's what it loooks like so far... obviously it will have more things in the second VStack for more content under the DB5LogoTitle() element.
Thanks for the link, I'll check it out.
I still think that naming anything "complications" in software development is a horrible idea. This isn't clockmaking. That's like naming a feature a "bug" because that was the traditional word in some ancient profession.
Interestingly, I found that the products work in my local device build, so I will assume that they will also work in TestFlight builds. Still yet to find out for sure.
Another note on this ridiculous issue... even if your app is displayed in portrait mode, the app review image has to be landscape. So, I had to rotate my screenshot 90 degrees for the portal to accept it. 1920x1080 instead of 1080x1920.
[edit] Ok, nevermind that. It appeared to take my 1920x1080 image (it showed in the preview box), but when clicking Save, the top of the form said I need to upload a valid preview image, so it didn't actually accept it.
[edit 2] Inexplicably, uploading at 1242x2208 was accepted.
I just discovered this issue as well, and it was confusing me that successfully replacing an existing signature was considered an error. Please fix, Apple.
I ran into this too. It turns out to be a glitch in Apple's developer web site, as far as notifications displaying properly there to tell you what you need to agree to. It turned out that I had a banking contract that was updated and needed agreement, but that wasn't what was shown and linked to from the warning message at the top of the page.