V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
HeartJ
V2EX  ›  iDev

求助:关于提交程序到 Mac App Store

  •  
  •   HeartJ · 2015-09-25 23:44:09 +08:00 · 3772 次点击
    这是一个创建于 3338 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新手一枚,在 os x 上开发了一个程序准备提交到 Mac App Store 。
    开发环境, OS X 10.9.5 , xcode 6.1.1 。
    提交之后,被拒了几次,拒绝信息如下

    2.2 - Apps that exhibit bugs will be rejected
        Here is how we found this bug:
        The app produces no users interface or windows when launched. There is no apparent menus or items to display a main wiondow.
    

    似乎是程序启动后没有界面。

    提交程序做了以下操作:
    1 、在 Member Center 中
    (1). 添加了 app id
    (2). 创建了 certificate ,类型为 Production: Mac App Store ,下载病安装
    (3). 创建 Provisioning Profile ,类型为 Distribution: Mac App Store ,下载并安装

    2 、在 xcode 中,

    (1). TARGETS->General->Identity->Singing ,选择 Mac App Store; Team 选择我的开发者帐号
    (2). TARGETS->Build Settings->Code Singing->Code Singing identity->Release ,选择 3rd Party Mac Developer Application; Provisioning Profile ,选择在 Member Center 中创建的文件
    

    程序仅启用了 Sandbox ,没有使用 icloud 等功能。

    在 Archive 之后, Validate 可通过, Submit 也通过。

    不明白问题出在什么地方?

    后来在 Archive 之后, Export 进行测试。
    在使用 distribution 类型的 certificate 和 provisioning file 进行 Export ,

    (1). Export a Developer ID-signed Application ,程序可以运行,进入软件的操作界面
    (2). Save for Mac App Store Deployment ,程序 crash ,错误提示“ code Signature invalid ”
    (3). Export as a Mac Installer Package, 程序 crash ,错误提示“ code Signature invalid ”
    (4). Export as a Mac Application, 程序 crash ,错误提示“ code Signature invalid ”
    

    查看文档,发现在本机测试提交到 Mac App Store 上的程序时,使用 Export 时的签名文件应该用 Development 类型的,于是又重新 Export ,使用的是 Development 类型的 certificate 和 Provisioning file ,

    (1). Export a Developer ID-signed Application ,程序可以运行,进入软件的操作界面
    (2). Save for Mac App Store Deployment ,程序 crash ,错误提示“ code Signature invalid ”
    (3). Export as a Mac Installer Package, 程序 crash ,错误提示“ code Signature invalid ”
    (4). Export as a Mac Application, 程序可以运行,进入软件的操作界面
    

    请各位大侠帮帮忙,指点一下,到底是哪出了问题? Apple 拒绝是因为签名的问题,还是因为代码的问题?
    如果是代码的问题,应该怎么去排查?因为在本机上要么因为“ code Signature invalid ”程序崩溃,要么就可以正常启动程序。

    先谢谢大家了,已经被这个问题困扰好久了。

    15 条回复    2015-12-12 22:54:04 +08:00
    wzqcongcong
        1
    wzqcongcong  
       2015-09-26 10:21:00 +08:00
    看 Apple 回复是说你的 app 启动后用户看不到任何界面啊~你的 app 长啥样~
    wzqcongcong
        2
    wzqcongcong  
       2015-09-26 10:36:11 +08:00
    @wzqcongcong ,还有,你打包出的 package 用 3rd Party Mac Developer Installer 签名了吗?
    HeartJ
        3
    HeartJ  
    OP
       2015-09-26 11:24:50 +08:00 via iPhone
    请大家帮忙看看什么原因,谢谢。
    HeartJ
        4
    HeartJ  
    OP
       2015-09-26 11:33:09 +08:00
    @wzqcongcong 界面是类似文本编辑器的样子,有输入区域和一些按钮。
    在 export 出 package 时,有一个 Summary 界面, Singing identity 显示采用的是 3rd Party Mac Developer Installer 。刚开始用 V2EX ,不知道怎么贴图。抱歉。
    code4life
        7
    code4life  
       2015-09-26 13:22:12 +08:00
    There is no apparent menus or items to display a main wiondow.
    你没给程序做菜单?这个不符合苹果的界面设计规范的
    wzqcongcong
        9
    wzqcongcong  
       2015-09-26 20:22:11 +08:00
    @HeartJ 从 Export 截图里看,你的 pkg 应该用 3rd Party Mac Developer Installer 签名,而不是 3rd Party Mac Developer Application ,这个是用来给 app 签的。
    HeartJ
        10
    HeartJ  
    OP
       2015-09-29 19:33:03 +08:00
    @wzqcongcong 您好,我看到了指出的问题。我想试着用 3rd Party Mac Developer Installer 来签名,但是我在 member center 中没找到在哪里可以创建使用“ Mac Installer Distribution ”的 provisioning file ,只能创建“ Mac App Distribution ”的 provisioning file 。
    另外,“ The app produces no users interface or windows when launched. There is no apparent menus or items to display a main window ”。这句话的意思是我的程序启动的时候就 crash 了,还是可以启动,但启动后什么也没有?
    谢谢。
    wzqcongcong
        11
    wzqcongcong  
       2015-09-29 20:29:35 +08:00
    @HeartJ pkg 本身的签名不需要 provisioning file 啊,它又不是 app ,直接用 cert 来签啊,我们就是这样的。至于审核的现象到底怎样,可以考虑邮件问问苹果,让它给你截个图啥的~。我觉得如果直接 crash 的话,应该能看到一个弹出框的,但审核的人好像没提到这个。
    HeartJ
        12
    HeartJ  
    OP
       2015-09-30 18:34:36 +08:00
    @wzqcongcong 今天已经问苹果了,是 crash 了还是可以启动但没有界面的问题。
    用 cert 来签名 pkg 怎么做,麻烦指点一下,谢谢。
    HeartJ
        13
    HeartJ  
    OP
       2015-10-02 01:09:20 +08:00
    @code4life
    @wzqcongcong
    刚刚收到 apple 的回复

    The app launches but no UI appears. No crashes or logs are generated. The user must quit the app via File > Quit DraftNote since no other actions are possible.

    应该是 app 可以启动,但是不会显示用户界面的意思吧。这一般是因为什么引起的呢?因为在本地测试是可以启动的啊。
    code4life
        14
    code4life  
       2015-10-02 15:31:02 +08:00
    从这句来看 The user must quit the app via File > Quit DraftNote since no other actions are possible. 程序是在后台的,就是不被显示。你的界面应该有什么机制控制主界面的显示或隐藏吧?

    苹果这个封闭环境有利有弊,这种情况只能依赖他们给你更多地信息去判断了。
    HeartJ
        15
    HeartJ  
    OP
       2015-12-12 22:54:04 +08:00
    问题目前搞清楚了。我更新了系统到 OSX 10.11.1 , Xcode 更新为 7.1.1 。 Apple 反馈给我的无界面的问题复现了,经过排查,是因为为 NSFont 赋值的时候,内容为 nil 。当时使用的字体是 Simsun ,跟新系统后,没有这个字体,所以界面就会卡住。现在,这个问题已经解决。但在提交的过程中,又遇到了新的问题, ls 两位大哥,如果有空的话,请帮忙看看。谢谢了。
    @code4life
    @wzqcongcong
    新问题: http://www.v2ex.com/t/243119#reply0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2606 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:41 · PVG 23:41 · LAX 07:41 · JFK 10:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.