Программа rejected после review, есть вопрос. Update программа ready for sale!


#1

Наконец добрался до submission в mac app store. Прислали первые замечания что исправить.

Одно касалось лишних entitlements для sandbox. Убрал лишнее.

Но одно замечание я не совсем понимаю. Текст с претензиями следующий.

Design Preamble
The user interface of your app is not consistent with the macOS Human Interface Guidelines.

Specifically, we found that when the user closes the main application window there is no menu item to re-open it.

Next Steps

It would be appropriate for the app to implement a Window menu that lists the main window so it can be reopened, or provide similar functionality in another menu item. macOS Human Interface Guidelines state that “The menu bar [a]lways contains [a] Window menu”.

Alternatively, if the application is a single-window app, it might be appropriate to save data and quit the app when the main window is closed.

For information on managing windows in macOS, please review the following sections in Apple Human Interface Guidelines:

  • The Menu Bar and Its Menus
  • The Window Menu
  • The File Menu
  • Clicking in the Dock
  • Window Behavior

Please evaluate how you can implement the appropriate changes, and resubmit your app for review.

В программе не было Window menu в Main menu. На мой взгляд лишнее в моей программе, но если хотят нет проблем, вернул Window menu в Main menu. Но в Window menu нет item для reopen window если окно закрыто. В других программах тоже этой опции нет.

Для открытия программы из Dock использую следующий код, и у меня из дока программа открывается после закрытия.

Если вопрос был только чтобы вернуть Window menu в Main menu то все ясно, но если вопрос еще о том чтобы reopen после закрытия программы то не понимаю где проблема, из док у меня открывается а из Window menu такой опции для reopen нет - после minimise есть но после close нет.

@IBOutlet weak var myWindow: NSWindow!

// function to reopen from Dock
    func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool
        {
        if flag == false
        {
            myWindow!.orderFront(self)
        }
        else
        {
            myWindow!.makeKeyAndOrderFront(self)
         }
        return true
    }

#2

Поискал ответ. Толком ничего нет. Но такой же вопрос уже возникал. Точного ответа не нашел, но какой то намек есть - https://forums.developer.apple.com/thread/96725

“You need to strongly reference the NSWindow/Controller somewhere for the lifetime of the window. macOS 10.13 introduced a behavior where NSWindow will retain itself for as long as it is “open”, but previous versions of the OS didn’t have this behavior. As a result, if you aren’t retaining the window, it’ll be deallocated and removed from the screen.”

Хотя у меня и работает открытие программы из дока в Mojave, в других версиях macOS это возможно не работает из-за того что есть weak var а не strong reference для NSWindow ? -

@IBOutlet weak var myWindow: NSWindow! 

Можно использовать взамен var windows из NSApplication. У меня в программе одно window поэтому из array - NSApplication.windows проверяем первое window. Можно было бы использовать for loop чтобы реоткрыть все возможные окна из windows array, но если я так делаю то открытые popover Views после закрытия и открытия основного окна не закрываются. Если только первое окно - sender.windows[0], тогда popover Views ведут себя нормально.

// function to reopen from Dock 
 func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool
{
    if flag == true
    {
        return false
    }
    else
    {
        sender.windows[0].makeKeyAndOrderFront(self)
    }
    return true
}

#3

Все, все вопросы решил и программа ready for sale !!! и поскольку выбрал автоматический релиз, то программа уже фактически в mac App Store. Хотя, пока ее не вижу (прошло около часа после получения статуса ready for sale) если перейти по ссылке в App Store из App Store connect, по-видимому это вопрос времени. Программа для молекулярных биологов.

Всем кто помогал найти ответы на мои вопросы огромное спасибо, особенно haymob !!! Конечно, спасибо создателям этого форума! Хотя моя программа для мака, и в основном здесь вопросы по iOS, тем не мене ценные советы для старого доброго мака здесь тоже можно получить!


#4

Поздравляю! Рад за вас :+1:


#5

Программа теперь видна в mac App Store - https://apps.apple.com/us/app/biolabdonkey/id1470827582?ls=1&mt=12

Помню как то админу обещал рассказать о чем программа. Сделал сайт с подробностями о программе - https://molbiolinfo.home.blog

Советы/замечания всегда welcome.