上傳程式到AppStore上,遇到了很多問題,下面把在網上找的一些資料和處理問題的方法摘抄在一起.
1.首先要在itunesconnect.apple.com上面建立一個應用,並把描述什麼的都寫上,具體見網址http://www.cocoachina.com/bbs/read.php?tid-7923.html
2.之後要用Application
Loader 上傳你的程式, Application Loader,在 /Developer/Applications/Utilities 裡就有。上面會顯示你“Waiting
For Upload”狀態的程式,選擇一個,並上傳你壓縮好的zip檔案。上傳成功之後itunesconnect.apple.com上面就變成了“Waiting
For Review”狀態。
遇到的問題如下:
1.當上傳一半因為網路原因或者自己取消,重新上傳時會提示“an
existing transporter instance is currently uploading this package”。解決分為兩種情況:
(1).如果是沒傳完的應用處於“waiting for
review”狀態,reject 後重新上傳即可。有些同學可能找不到在哪reject。點擊“view details”按鈕,
Links
Version Summary |
Binary Details |
Status History |
在你上傳的表徵圖旁邊,也就是右上方,有所示,點擊Binary Details按鈕,之後在右上方有“reject This binary”按鈕就可以reject了。
(2).如果此時應用處於“waiting for upload”狀態,刪除
~/.itmstransporter/UploadTokens/ 目錄內所有檔案,即可重新上傳。
2.上傳zip檔案時,提示:iPhone/iPod
Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6處理辦法,轉載其他同學的解決辦法。
如下:
產生這個錯誤,很是疑惑,嘗試了幾個辦法,都失敗了,無奈之下,只好求助偉大的stackoverflow。解決辦法翻譯如下:
如果你的xcode是4.2以上的版本的話,請嘗試一下的解決辦法:
1.點擊你的項目名稱(在左側欄),之後點擊Target:
2.點擊'Build Settings' (在右側欄):
3.開啟‘Architectures’標籤,點擊名稱為 'Release' 或者 'Distribution' 的行,選擇'Other...':
4.雙擊名稱為'$(ARCHS_STANDARD_32_BIT)'的行,使之成為可編輯狀態,刪除文字,輸入armv6。再點擊左下角的“+”號,在出現的欄中輸入armv7。最後點擊“done”按鈕。
以上就是解決方案了,下面你再嘗試“build/archive”就可能不會出現上述的錯誤資訊了。
如果問題依舊,請嘗試該連結this answer from justinxreese,就是在你的info.plist檔案中的"Required Device Capabilities"加入全部的 armv6 和 armv7的資訊。
stackoverflow的連結地址如下:http://stackoverflow.com/questions/4198676/warning-iphone-apps-should-include-an-armv6-architecture-even-with-build-config
3.還遇到UIBackgroundModes錯誤,解決辦法找到工程中的App-info.plist,首碼不一定是這個,把Required background modes項的值填上,具體選項的解釋引用其他同學的解釋,其實不用在程式裡面加,直接更改plist就可以了。
iOS從4.0之後支援後台播放聲音了。下面是實現音效檔播放,並且使用者關閉螢幕之後仍然能夠播放音效檔。具體的實現方法如下:
在plist檔案中加入下面的欄位:
聲明內容如下:
Info.plist中添加UIBackgroundModes索引值,它包含一個或多個string的值,包括
audio:在後台提供聲音播放功能,包括音頻流和播放視頻時的聲音
location:在後台可以保持使用者的位置資訊
voip:在後台使用VOIP功能
在程式中添加:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
聲明聲音在後台運行。最後運行程式,關閉程式,聲音則在後台成功播放。