大猫 (Madao) - まるでダメなおっさん

使用 PhoneGap 在 AppStore 发布

by bigCat 14 Comments

appstore

在做宫缩+ 的时候,PhoneGap build ios 之后直接就是个 xCode 项目,双击打开,绑定下证书直接发布,这特么就是用户体验啊!


现实是残酷的

bug1

先遇到了(还弹两次…)

Could not change executable permissions on the applications.

一顿研(gu)究(ge)之后,发现是机器原来用不同项目同样包名装过了 (我用的都是 ooxx.me.uc)
Android 在 IntelliJ IDEA 里遇到此类包名一样签名或其他不一样的问题直接问我要不要拆了新装一个啊,xCode 君请给力

bug2

接着是

Contraction+ exited unexpectedly  
lost connection

一般拔掉测试机或关掉模拟器,而非 xCode 里点停止会触发
但我那非同常人的人生啊,我发誓我完全没有误操作

一顿研(gu)究(ge)之后,发现是,删除 xCode 缓存,重置模拟器即可… …

bug3

还有

iOS Simulator failed to install the application.

一般要么SDK选错,要么target版本高于模拟器版本会报这个错
但我那非同常人的人生啊,我用iPod touch4 new iPad都能跑起来,模拟器在这俩同样环境下装不起来,切其他模拟器设置又可以装… 妈蛋啊,具体为啥 failed 能报个错咩
最后重置模拟器搞定…

bug4

目测都妥妥了,但是…

Could not launch "Contraction+.app"  
failed to get the task for process xxx

这个是我错了… Project target 要跑模拟器或调试必须用开发证书而非发布证书

bug5

添加测试设备到账户的时候,需要等三五分钟才能用…一个个人版最多能添加100台

bug6

这,根,本,不,是 architecture 的问题!
应该是我app名字里有+,executable_name不允许特殊字符,修改了导致
要注意的是改回来还是不行…重建了项目才搞定,可能修改的时候自动关联修改了其他地方,改回来的时候有没关联回来
当然 architecture 问题也会导致这个报错

还有那个每时每刻都在缓存的模拟器…测试多语言的时候改了模拟器语言,app就打不开了..需要重新build…

bug7

嗷嗷耶,可以提交咯~

ERROR ITMS-9000:"This bundle is invalid. The executable name ,as reported by  
CFBundleExecutable in the Info.plist file, may not contain any of these 
characters:\ [] {} parenthesis . + *" at  
SoftwareAssets/SoftwareAsset(MZItmspSoftwareAssetPackage)

还是我app名字里有+,executable_name不允许特殊字符,这个后续再开贴教你们如何名字里有特殊字符(九零后可不就爱非主流咩)

bug8

Error ITMS-9000: "Missing Code signing Entitlements. No entitlements found in bundle 'ooxx.me.uc' for executable  
'Payload/Contraction+.app/Contraction+'." "at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)"

这个问题上面我卡了2天… 问题出在 PhoneGap 上,详见http://community.phonegap.com/nitobi/topics/error_itms_9000_missing_code_signing_entitlements
要问我如何解决的…

  1. 删除 xCode 项目缓存 rm -rf ~/Library/Developer/Xcode/DerivedData
  2. 重置模拟器
  3. 重新生成证书
  4. 重建项目

都没用!!!
特么的啥也没干,突然有一天早上就提交上去了…
当时已经放弃挣扎准备对照着App Distribution Guide手动生成 entitlement 进行 resign…

bug9

以上流程中时不时来一发

bug10

看到这里悲伤逆流成河

bug11

交钱的时候发现连 Chrome 都不支持了…字符问号,按钮错位

苹果爷爷我给你跪了

这件事情告诉我们,有事儿没事儿开个 snapshot ,xCode 忒难伺候,摸不着头脑的时候果断 restore snapshot 才是正经事儿

Comments ( 14 )

  1. Reply毕扬
    进度挺快啊
  2. Reply宇外探索网
    苹果的玩法真折腾呀!
  3. ReplyHanYec
    看不好苹果的封闭式设计,可能我是个开放的人吧?
    • ReplyJanine
      I'm not quite sure how to say this; you made it exrmlteey easy for me!
  4. Replyvfhky
    mac的界面做的太华丽了。
  5. Reply曦曦是半成品
    iOS Simulator failed to install the application. 这个问题有可能是因为你模拟器里已经安装了一个相同bundle id的程序造成的,删除掉所有相同bundle id的应用再运行下试试看,应该就可以解决了。 第一次iOS开发肯定纠结哈,itunes很不给力,多纠结纠结就习惯了~ 模拟器不靠谱,建议尽量真机测试吧,尤其是iOS7上面,模拟器就更不靠谱了
    • ReplybigCat

      @曦曦是半成品 感激不尽~ 各种不靠谱啊,泪流满面

  6. Reply楼梯扶手
    有人喜欢有人不喜欢
  7. ReplyTimman
    您好, 請問要如何在 executable_name 裡面使用 + 等等特殊字符呢??
    • ReplybigCat

      @Timman 项目里不要加,然后在语言包里加,否则各种悲剧

      • ReplyTimman
        @bigCat Post author 請問你的意思是指在 xx.string 內建立 "EXECUTABLE_NAME" = "Project+"; 這樣嗎??
        • ReplybigCat

          @Timman 搜索下iOS i18n

          • ReplyTimman
            @bigCat Post author 按照你的方法, 有解決了, 非常感謝你..
  8. Replyfb.mu
    正在看big nerd的书,学习制作app,phonegap迟点也许会用到

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>